From 5255afcda3f1dfdd1a8a892bb645984528126256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mu=C3=B1oz?= Date: Sat, 11 Jan 2025 18:57:15 +0100 Subject: [PATCH] Horizontal menus for arpeggiator's randomizer submenu (#3238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Prefer the 7SEG string for the horizontal menu titles * Horizontal menus for arpeggiator’s randomizer, and fixed documentation * format * Change docs * Format * Revert setting 7Seg name as the default name for horizontal menus * Change order of LFO params to match grid shortcuts * Put arp params in groups and add them to the grid shortcuts as horizontal menus * Update menu hierarchies * Fixed menus for all types: sound, midi, cv, drums * format * Format * Added Randomizer to “Mode” shortcut, visible when horizontal menus are on * format --- docs/features/arpeggiator.md | 76 ++++--- docs/menu_hierarchies.md | 209 +++++++++++------- src/deluge/gui/l10n/english.json | 10 +- src/deluge/gui/l10n/g_english.cpp | 9 +- src/deluge/gui/l10n/g_seven_segment.cpp | 8 +- src/deluge/gui/l10n/seven_segment.json | 8 +- src/deluge/gui/l10n/strings.h | 1 + .../arp_unpatched_param.h} | 10 +- .../gui/menu_item/arpeggiator/chord_type.h | 3 + .../arpeggiator/midi_cv/arp_integer.h | 34 +++ .../arpeggiator/midi_cv/bass_probability.h | 7 +- .../arpeggiator/midi_cv/chord_polyphony.h | 7 +- .../arpeggiator/midi_cv/chord_probability.h | 7 +- .../gui/menu_item/arpeggiator/midi_cv/gate.h | 10 +- .../arpeggiator/midi_cv/note_probability.h | 10 +- .../arpeggiator/midi_cv/ratchet_amount.h | 10 +- .../arpeggiator/midi_cv/ratchet_probability.h | 10 +- .../gui/menu_item/arpeggiator/midi_cv/rate.h | 10 +- .../menu_item/arpeggiator/midi_cv/rhythm.h | 38 +++- .../arpeggiator/midi_cv/sequence_length.h | 10 +- .../arpeggiator/midi_cv/spread_gate.h | 10 +- .../arpeggiator/midi_cv/spread_octave.h | 7 +- .../arpeggiator/midi_cv/spread_velocity.h | 7 +- src/deluge/gui/menu_item/arpeggiator/mode.h | 2 +- .../gui/menu_item/arpeggiator/note_mode.h | 3 + .../gui/menu_item/arpeggiator/octave_mode.h | 3 + .../menu_item/arpeggiator/randomizer_lock.h | 4 +- src/deluge/gui/menu_item/arpeggiator/rate.h | 3 +- src/deluge/gui/menu_item/arpeggiator/rhythm.h | 34 ++- .../gui/menu_item/arpeggiator/step_repeat.h | 3 + src/deluge/gui/menu_item/submenu.cpp | 2 +- src/deluge/gui/menu_item/sync_level.cpp | 2 +- src/deluge/gui/ui/menus.cpp | 111 ++++++---- src/deluge/gui/ui/menus.h | 2 + src/deluge/gui/ui/sound_editor.cpp | 1 + src/deluge/modulation/arpeggiator.cpp | 2 +- 36 files changed, 413 insertions(+), 270 deletions(-) rename src/deluge/gui/menu_item/{unpatched_param/sound_unpatched_param.h => arpeggiator/arp_unpatched_param.h} (76%) create mode 100644 src/deluge/gui/menu_item/arpeggiator/midi_cv/arp_integer.h diff --git a/docs/features/arpeggiator.md b/docs/features/arpeggiator.md index ec9563a228..633b564397 100644 --- a/docs/features/arpeggiator.md +++ b/docs/features/arpeggiator.md @@ -24,10 +24,14 @@ Now the menu options are the following: - **`Enabled (ON)`**: enables the arpeggiator, that is, it internally sets `Mode` to `Arpeggiator`. In the future, this will be replaced by the `Mode` setting, which will have other modes other than `Arpeggiator`. -### Rate -The following parameters define the rate, that is, the speed of the notes: -- **`Sync`**: allows you to set the synced rate between `Off`, `2-Bar`, ..., `128th` notes. -- **`Rate`**: manually sets a sync rate when `Sync` is set to `Off`. +### Basic parameters +The following parameters define the basic parameters of the arpeggiator: +- **`Gate`**: This changes the length of the note, as a relative percentage of the time window set between this note and the next. + A gate of 25 will make the notes last for 50% of the available time window. It can be **automated** and **learned** to + golden knobs and MIDI CC (not automatable in MIDI clips). +- **`Sync`**: allows you to set the synced rate between `Off`, `2-Bar`, ..., `128th` notes, etc. +- **`Rate`**: manually sets a sync rate when `Sync` is set to `Off`. It can be **automated** and **learned** to + golden knobs and MIDI CC (not automatable in MIDI clips). ### Pattern The following parameters will define the pattern of the arpeggio, by ordering the notes you have played, adding extra octaves, @@ -42,12 +46,15 @@ setting how many times they are repeated, and setting the direction in which the the old `Both` mode. - `Random (RAND)` will choose a random octave every time the Notes pattern has played. Tip: Set also Note Mode to Random to have the equivalent to the old `Random` mode. +- **`Chord Simulator (CSIM)`**: is only available for Kit Rows. This allows you to simulate a chord so you + can use `Note Mode` on the Kit Row. It will take the base pitch of the sample and add extra "notes" to + the sequence by pitching the sample up several semitones to form a chord. - **`Note Mode (NMOD)`**: - `Up (UP)` will walk the notes up. - `Down (DOWN)` will walk the notes down. Tip: this mode also works in conjunction with Octave Mode Alternate, which will walk all the notes and octaves all the way down, and then up reversing it. - `Up & Down (UPDN)` will walk the notes up and down, repeating the highest and lowest notes. - - `As played (PLAY)` will walk the notes in the same order that they were played. Tip: this mode + - `Played Order (PLAY)` will walk the notes in the same order that they were played. Tip: this mode also works in conjunction with Octave Mode Alternate, which will walk all the notes and octaves all the way up (with notes as played), and then down reversing the order of played notes. Note: this produces the same effect as Up for Kit Rows. @@ -55,17 +62,11 @@ setting how many times they are repeated, and setting the direction in which the different than Random, then the pattern will play, in the same octave, the same number of random notes as notes are in the held chord and then move to a different octave based on the Octave Mode. Tip: Set also Octave Mode to Random to have the equivalent to the old `Random` mode. -- **`Chord Simulator (CHRD)`**: is only available for Kit Rows. This allows you to simulate a chord so you - can use `Note Mode` on the Kit Row. - **`Step Repeat (REPE)`**: allows you to set how many times the same note in the pattern is repeated - before moving on to the next note of the pattern. - -### Automatable parameters -All the following parameters define other aspects of the arpeggiator and can be **automated** and **learned** to golden knobs and MIDI CC: -- **`Gate`**: This changes the length of the note, as a relative percentage of the time window set between this note and the next. - A gate of 25 will make the notes last for 50% of the available time window. + before moving on to the next one. - **`Rhythm (RHYT)`**: This parameter will play silences in some of the steps. This menu option shows zeroes and dashes, - "0" means "play note", and "-" means "don't play note" (or play a silence). The available options are: + "0" means "play note", and "-" means "don't play note" (or play a silence). It can be **automated** and **learned** to + golden knobs and MIDI CC (not automatable in MIDI clips). The available options are:
Rhythm Options