In key transpose via Global MIDI and sequenced via MIDI clips#837
Conversation
|
Hmmm I think this can be tied to the other PR from Sean in which a global midi command / channel can be used to transpose the whole song, or it could be also a shorcut using deluge encoders. The thing is that you could set in settings if the command does chromatic transposition by semitones, or it does this behavior of transposition within scale. That's my opinion. It could make sense to join both features into one, and the user can then decide if the transposition should be done by semitone steps or by scale note jumps, but both options share the same up/down encoder shortcut and global midi channel A different feature could be that, for clips individually, you could set the clip to either: record notes that are received, or either transpose in scale the existing notes in the sequencer, based on the received notes. This feature is good to program sequences in a synth and have the input midi move the sequence up or down in tone. There are many synths that have this ability! |
m-m-adams
left a comment
There was a problem hiding this comment.
lgtm - one comment that needs to be moved down a few lines now
|
how do you enable this feature currently? is it working well enough to try out? |
|
The feature is in the nightly builds of the community branch and release 1.1 It is described in the documentation in https://github.com/SynthstromAudible/DelugeFirmware/blob/community/docs/community_features.md (Section 3.3. MIDI, then under #837 MIDI control over transpose / scale.) There's an issue where audition notes getstuck on over a transpose event, which I've fixed but the new PR hasn't been merged yet, it's at #1319 |
|
I'm on the synthstrom discord also if you have any other questions |
|
okay thanks man! do I need an invite to get on the discord ? Im posting alot of dumb 'can you/ how do you' type questions on here and I think this is more a place for devs |
|
This invite link should work! |
…tromAudible#837) * Midi transpose global command proof of concept * Force to stay in scale, and corrected indexing * Snap to nearest scale note on first transposition in new song. Still not quite right! * Flash storage. Snapping fixed. Namespace instead of class instance. * Scale transpose working for new scales * clang format * Added menus and chromatic mode * Added additional MIDI 'channel' to route to transpose. Added menu. * Updated community features doc * WIP to prevent MIDI clips routed to transpose from being affected * Working version with correct scroll for MIDI clips routed to transpose * Tidy, remove printlns, dbt format * Restored vscode settings that crept out of a stash * Removed 'chord' from menu. Suppress transpose popups not from encoders. * MIDI transpose clips cannot be in scale mode if transpose is chromatic * Dbt format * fix comments --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
Addition of transposition performance and sequencing controls to change scale / key / mode etc
Transpose events will affect all synth and MIDI clips that are set to scale mode, and will stay within the scale note of the starting point, eg if the scale is currently C major, then notes CDEFGAB will change the root note and scale to reach D Dorian, E Phyrgian, F Lydian, G mixolydian, A Aeolian and B Locrian.
Octave will be chosen the be closest to current song root note for the first transpose event after each song load, and subsequent octaves will be obeyed. Eg, song root note == 12 (C, one octave up), any incoming 'D' will move up a second. Subsequent notes will change the octave relative to this starting point. This is to avoid having to guess the song root note when sending the first transpose control note and risking shifting multiple octaves away.
Changing to modes of a different major scale deliberately omitted for now - other notes will be ignored.
Some scheme to control this could be added but this is not fully thought out yet.
Add some kind of chord mode that allows in-key movements but also modulation to another key.