Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs: Macro right-click menu. #1641

Merged
merged 7 commits into from
Dec 13, 2023
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions doc/4-instrument/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,14 +126,25 @@ finally, the sequence of values can be directly edited in the text box at the bo
- in arpeggio macros, a value starting with a `@` is a fixed value as described above.
- in bitmask-style macros, the values are added up in binary and converted to decimal. see [the hexadecimal guide](../1-intro/hex.md) for more info.


in all cases except bitmask macros, right-clicking on the graph opens up an editing menu:
tildearrow marked this conversation as resolved.
Show resolved Hide resolved
- **copy**: copies the macro.
- **paste**: pastes the macro in the clipboard. changes the macro length to match.
ElectricKeet marked this conversation as resolved.
Show resolved Hide resolved
- **clear**: clears the macro.
- **clear contents**: resets all values to 0.
- **offset**:
- **X**: slides the data "horizontally" within the macro, filling the gap with zeroes. data moved past the start or end is lost.
- **Y**: increases or decreases all values, clipping them if they would move past the allowed range.
- **scale**:
- **X**: stretches the macro.
- **Y**: multiplies all values by the scale factor, clipping them if they would exceed the allowed range.
- **randomize**: replaces all values with random values between **Min** and **Max**.

### ADSR

![ADSR macro editor](macro-ADSR.png)

- **Bottom** and **Top** determine the range of outputs generated by the macro. (Bottom can be larger than Top to invert the envelope!) All outputs will be between these two values.
- attack, Decay, Sustain, SusDecay, and Release accept inputs between 0 to 255. these are scaled to the distance between Bottom and Top.
- Attack, Decay, Sustain, SusDecay, and Release accept inputs between 0 to 255. these are scaled to the distance between Bottom and Top.
- **Attack** is how much the value moves toward Top with each tick.
- **Hold** sets how many ticks to stay at Top before Decay.
- **Decay** is how much the value moves to the Sustain level.
Expand Down