Brendan Clarke Additions to LXR .36 firmware LXR by Julian Schmidt (www.sonic-potions.com) !!!BACK UP YOUR SD CARD!!! NB: The currently developed branch is custom-develop-patload-envmod. It is recommended to download directly from https://github.com/brendanclarke/LXR/tree/custom-develop-patload-envmod Latest additions are at the top of the list. 35. Updates to MIDI on the Global Channel: file (kit or performance) can be changed by Bank Change message. Pattern can be changed by either MIDI Program Change or CC102. Performance controls have MIDI CC assignments: Mute, Roll, and Looper. See lxr-midi-assign.txt 34. Global menu now has an option at the end "file load fast". when this is turned on, a file loaded from 'perf' or 'all' will be enabled immediately, without needing to manually switch pattern to make it active. Also, individual tracks can be loaded from these file types by simply pressing and releasing their voice button (multiple voices can be loaded at the same time by holding more than one voice button, then releasing). Also, in all circumstances when loading any file that contains drum voice data, the data is applied when the voice is next triggered, rather than immediately when the data is loaded. Also, patterns will always be re-aligned to the master sequencer when patterns are changed to allow patterns with different scales to stay in sync. 33. Load Perf, All, and Pattern can now load individual voices. When in one of these load menus, press one or more voice buttons (they will flash to let you know what voices are selected). When the load is performed, the patterns and voice parameters of non-selected voices will remain unchanged. This can also be done while the sequencer is playing, but keep in mind that pattern and global data is always loaded, so make sure that stuff like the BPM is the same! (I plan on changing this eventually so that global settings are ignored when only some instruments are loaded). MIDI bank change messages received on instrument channels will perform an individual performance-load if the global setting 'bank to perf' is on (they load drumkit parameters from the corresponding 'kit' file if this is off). 32. Changes to euklidean pattern generation and pattern rotation - they are combined on the same page now (shift-perf). patterns can be rotated non-destructively, but will be overwritten if the 'STP' parameter is changed. 2 rotation parameters are provided for both main step and sub-step rotation. Note that rotation is made permanent when saving, loading, or changing the current pattern. 31. Looper. In PERF mode, sequencer buttons 9-16 let you repeat the currently playing section of the sequence. button 10 repeats an interval of 64 sub-steps (1/2 bar), button 16 repeats a single sub-step (128th note). The in-between buttons repeat 1/4, 1/8, 1/16, 1/32, and 1/64 intervals respectively. Button 9 will "dot" the loop interval (increase by half). The loop start is quantized based on the shift-record menu. The loop can be overdubbed onto the current sequence by enabling record. 30. Individual Track Pattern Changes - when in PERF mode, hold one (or more) voice buttons. Then press a select button, as you would for changing patterns. Only those voices of the held buttons will switch to the new pattern. There is no visual feedback for this. Voice mutes in PERF have been moved to voice button RELEASE (and they won't be muted if a pattern change is detected). Individual pattern changes can also be performed by sending a PROGRAM CHANGE MIDI message with a value 0-7 on an individual voice's MIDI channel. 29. Shift-Play re-loads the last loaded drum kit parameters. 28. Individual voice morph - morphs only a single voice instead of the whole kit. This appears as a mod destination for macros, step automation, and LFOs. This can also be controlled via MIDI Mod Wheel (CC1) on each voice channel. Be careful, do not assign too many LFOs to voice morph. The morph is limited to only updating at every 32nd note to keep the MIDI bus from being completely saturated, but assigning all the LFOs to morph can slow down the menu interface or possibly crash it. 27. When in 'voice' mode with the sequencer stopped, the currently selected sound can be auditioned by pressing its voice select button again. Also useful when in the voice load menu. 26. Sending a 'Program Change' signal on the global MIDI channel with a value 0-7 will change the sequencer to the corresponding pattern (standard behaviour). Sending PC with value 8-15 will change to the corresponding pattern (PC# modulo 8) but ALSO force the drumkit to reset to the last kit loaded (whether from a 'drumkit' file, 'performance' file, or 'all' file). 25. When loading a 'Performance' or 'All' file while the sequencer is running, the Drumkit will wait to change until a pattern is selected, to be consistent with the behaviour of the pattern data. 24. Improved roll - roll successfully uses the sequencer quantize setting. the shift-record button menu now has a "roll mode" option instead of note lock. the options are as follows: -trig: when a roll is active, it uses note and velocity data from the sequencer, and ignores the perf menu roll options -note: the roll will only trigger if the current sequencer step is active. note derived from the perf menu roll note, velocity from sequencer data -vel: the roll will only trigger if the current sequencer step is active. velocity derived from the perf menu roll velocity, note from sequencer data -both: the roll will only trigger if the current sequencer step is active. velocity and note derived from the perf menu roll options -all: 'normal' roll mode - the roll will always trig, and use the values from the perf menu roll options All the roll modes will be recorded to the sequencer as they are heard when record is active. The 'note' and 'vel' can be particularly useful for overdubbing notes and velocity into previously recorded staps. 23. Track Transpose - in the PERF menu, when SHIFT is held. This is per track. Note that in the custom firmware, shift+track selects, and the active track LED will flash while shift is held. There is a 'transpose amount' and a 'transpose on/off' control available. Transpose is temporary, but will be applied to the sequencer track if RECORD is turned on. While in RECORD mode, transpose is stored per-step in a temporary parameter, and is not applied until RECORD is switched OFF. Therefore, you can turn on record, set some transpose value, and quickly toggle transpose on/off to apply transpose to only a few steps. Choose a new transpose value, and repeat until you have a pattern you like, then turn record OFF to make it permanent. 22. Expanded Performance Menu. There are now 4 pages, the top two can be switched with multiple presses of the 'perf' button, all can be accessed with the encoder. page 1: (mac mac mrp srt) In addition to the usual morph and sample-rate controls there are two 'Performance Macros'. These are assignable controls that can change up to 2 parameters each. They work in the same way as the lfo's - the actual kit parameters are unaffected, only the sound changes. page 2: (shu rol rln rlv) In addition to the usual shuffle and roll rate controls, there are now 'roll note' and 'roll velocity' controls. These allow the sound of a roll to be changed, and help speed up recording to the sequencer with rolls. page 3: (1d1 1a1 1d2 1a2) These are the assignments for 'Performance Macro 1' on page 1. page 4: (2d1 2a1 2d2 2a2) These are the assignments for 'Performance Macro 2' on page 1. 21. (voiceLoad automation - redacted, see above) 20. Step copy and sub-step copy: - Press and hold 'copy', press a step, press another step. Copies all the substep data from one main step to another - Press and hold 'copy', press a step, press one of the 8 'select' buttons, then press a different main step, then press another 'select' button. this will copy individual sub-steps between or within main steps. You can also press two 'select' buttons in sequence to copy within the same main step. Note that the copy function does not copy main step on/off (ie if one of the sequencer lights is lit for the step) - this be set manually. 19. Kit versions - are stored as a parameter. Versioning prevents kits with filter set to 'off' being inadvertently changed to 'LP2'. This does not apply to individual voice loads. 18. Merged .36 stock firmware changes - adds new 'LP2' filter and fix for kick transient 17. Fixes to roll: roll now does not 'reset' at the end of a bar - it acts independently of bar, track length, or scale. It also takes the 'record quantization' (shift+rec) parameter into account when triggering. Record quantization is fixed to take track scale into account also. 16. Quick access to morph target parameters. When viewing a single parameter (click in and adjust with the encoder), press 'shift' to edit and view the parameter for the morph target. 15. One-shot LFO's! These are added as additional waveforms in the LFO settings. i.e. "si1", "tr1", etc are 1 shot versions of sine, triangle, and all the other normal lfo shapes. - There is also a new LFO shape "exponential triangle" - "xtr" and "xt1" which are the exponential up followed immediately by exponential down. -With a one-shot LFO selected, the 'offset' control instead sets a delay for the start of the LFO. It's a little weird because the delay gets scaled with 'rate' but it adds a lot of musical options. - The 'noise' LFO holds a single random value on each retrigger. If there is a delay (offset) phase set, it holds the previous value during this time. - The 'rect' LFO is inverted in one-shot mode (normal phase is 0 first, then 1), so that it can be instantly on and then off after a time set by 'frq', with the 'offset' delay setting an off portion at the beginning if desired. 14. When the velocity of a step is set to '0', the step will not re-trigger envelopes. This lets you use steps as 'automation only' - a bit like 'trigless locks' on elektron kit. 13. Added a 'realign pattern' shortcut. pressing the pattern button of the currently viewed pattern in 'perf' mode will align all tracks to the master clock. This also resets any 'pattern rotation' set. Also, when holding shift in 'PERF' mode, you can press the voice buttons to quickly switch the active voice for pattern rotation. This is in addition to the multiple voice-unmute shortcut. shift+current pattern will also do the re-alignment. 12. added a global option to interpret Bank Change (CC0) messages incoming on the global channel as a command to load a 'Performance' data set instead of a drum kit. Bank changes on voice MIDI channels will still change that part individually. 11. 'Performance' and 'All' save types now save the morph target parameters in addition to the drum kit and pattern. The version number for this type of file has been incremented to 3. Previous versions will load with an empty morph target, but will be re-saved as the new type. 10. Added pattern scaling option. This is accessed via a second page under 'click' (the transient voicing sub-page). Setting this increases track length by the shown multiplier, at the expense of step resolution. Note that this required changing some functions so that they do not use the step counter for DRUM1 as a reference. A dummy step counter was introduced instead for this (at the end of the step index array). It is unlikely, but possible this will cause problems with the trigger mod, but I have no way of testing this. 9. 'Load' menu now includes entries to load individual drum voices. This includes a number of load/save menu changes to deal with this: - The name and number of drum voices will reflect the drum kit the voice was derived from, even if this was changed via a MIDI bank change request. - The shortcut functions of the knobs has changed (knobs 1-4, from left to right): LOAD MENU - knob 1: change load type (kit, drum 1, pattern, etc) - knob 2: change preset number NB: auto-loads for all kit and voice types - knob 3: no function, except disables auto-load if turned - knob 4: disables auto-load, moves cursor between load type and 'ok' if it exists SAVE MENU - knob 1: change save type (same as for load menu) - knob 2: change cursor position (ie cycles through type, preset, alphanums, and 'ok') - knob 3: change cursor value - knob 4: for alphanumeric values, cycles through more characters note that the order of characters for the shortcut knobs has changed. Capital letters are all the way on the left of knob 3, numbers are in the middle of knob 3, and lower case is all the way to the left of knob 4. 8. MIDI channel select menus now have a '0' option that disables MIDI input. 7. Multiple voices can be set to respond (and record) note-ons on the global channel. When the currently active track has a 'note' assignment other than 'any', note-ons to the global channel will be matched to ALL tracks that have a note assignment other than 'any', rather than just the active one. 6. New global menu option to make the 'shift' button a toggle rather than momentary 5. Individual drum voices can be changed by sending a 'Bank MSB' (CC0) signal on their individual MIDI channels - bug fix - when 2 or more voices are stacked on a single channel, all will respond 4. Drumkit can be changed by sending a 'Bank MSB' (CC0) signal on the global MIDI channel 3. MIDI CC assignments are by voice channel rather than all on the global channel - see document in this folder for new assignments - this includes a morph assignment to Mod Wheel on the global channel - MIDI CC's also get recorded to automation slots (rather than updating voice parameters) when record is on - NRPN's are banished to the forbidden zone 2. New global menu option for instant pattern switching - when enabled, switching patterns with the buttons or a program change MIDI message happens on the next sub-step (keeping the current sequencer position) rather than at the end of the bar 1. Copy individual tracks between patterns. - select (view) the source pattern - press and hold 'copy' - press the source track (voice) button - press the destination pattern button