diff --git a/doc/8-advanced/README.md b/doc/8-advanced/README.md index b1772007..16d83afa 100644 --- a/doc/8-advanced/README.md +++ b/doc/8-advanced/README.md @@ -1,6 +1,12 @@ # advanced -advanced Furnace features, as listed in the `Window` menu. +advanced Furnace features. + +as listed in the "Edit" menu: + +- [find/replace](find-replace.md) + +as listed in the "Window" menu: - [mixer](mixer.md) - [grooves](grooves.md) @@ -10,8 +16,6 @@ advanced Furnace features, as listed in the `Window` menu. - [compatibility flags](compat-flags.md) - [song comments](comments.md) -
- - [piano](piano.md) - [oscilloscope](osc.md) - [oscilloscopes (per-channel)](chanosc.md) diff --git a/doc/8-advanced/find-find.png b/doc/8-advanced/find-find.png new file mode 100644 index 00000000..64f5c0ea Binary files /dev/null and b/doc/8-advanced/find-find.png differ diff --git a/doc/8-advanced/find-replace.md b/doc/8-advanced/find-replace.md new file mode 100644 index 00000000..872abb1c --- /dev/null +++ b/doc/8-advanced/find-replace.md @@ -0,0 +1,60 @@ +# find/replace + +Furnace has a powerful find-and-replace function that can take the repetitive work out of mass editing. + +# find + +![find dialog](find-find.png) + +all data that can be found within a pattern can be searched for here. + +- a find term contains: + - **Note**: note.\ + **Ins**: instrument.\ + **Volume**: volume.\ + **Effect**: effect type.\ + **Value**: effect value. all of these have the following choices for what data will be found: + - **ignore**: ignore this. + - **equals**: match the given value exactly. + - **not equal**: match everything but the given value. + - **between**: match anything between and including the given values. + - **not between**: match anything outside the given range of values. + - **any**: match all values. + - **none**: match blanks only. + - **-**: remove find term. if only one find term exists, it is cleared. + - **Add effect**: adds another Effect and Value to the term, each set representing additional effects columns. + - **Remove effect**: removes last Effect and Value from the term. +- **+**: adds another find term. +- **Search range**: restricts the find to the whole **Song**, the current **Selection**, or the currently viewed **Pattern**. +- **Confine to channels**: restricts the find to the selected channels and the channels between them. +- **Match effect position**: chooses how the order of effect types and effect values will matter when finding them. + - **No**: no attention is paid to what order the effects appear in. + - **Lax**: matches effects if they appear in the same order as selected above. + - **Strict**: effects may only match in their correponding effects columns. +- **Find**: finds everything that matches the terms and displays it in a list. + - the **order**, **row**, and **channel** columns are as they say. + - the **go** column of buttons will snap the pattern cursor to the location of the find. + +# replace + +![replace dialog](find-replace.png) + +- the replacement term contains: + - **Note**: note.\ + **Ins**: instrument.\ + **Volume**: volume.\ + **Effect**: effect type.\ + **Value**: effect value. all of these have the following choices for how they alter the found data: + - **set**: changes found data to this value. + - **add**: adds this value to the found data. it may be negative for subtraction. notes are calculated in semitones. + - **add (overflow)**: as "add" above, but values will wrap around; for example, adding 13 to `FF` will result in `0C`. + - **scale**: multiply value to this percentage; for example, scaling `1A` by `150` results in `27`. not available for "note". + - **clear**: erases data. + - **Add effect**: adds another Effect and Value to be replaced according to how they were found. + - **Remove effect**: removes last Effect and Value. +- **Effect replace mode**: + - **Replace matches only**: replaces only the effect columns that match. + - **Replace matches, then free spaces**: replaces matched effects; if there are effect columns without data, those will be filled in with the additional effect replacements. + - **Clear effects**: overwrites effect data with replacement effects. + - **Insert in free spaces**: replaces nothing; replacement effects are inserted in free effects columns when available. +- **Replace**: finds everything from the "Find" tab and replaces it as directed. diff --git a/doc/8-advanced/find-replace.png b/doc/8-advanced/find-replace.png new file mode 100644 index 00000000..77f46f6e Binary files /dev/null and b/doc/8-advanced/find-replace.png differ