As of September 23rd elektron-users has been replaced by elektronauts.com. Find out what this means here.
Elektron-Users Elektron Forum Sandbox Minicommand firmare - MNM Mono/Poly (1 viewing)
Go to bottom Post Reply
TOPIC: Minicommand firmare - MNM Mono/Poly
#178866
Boo
Posts: 154
Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
This is a firmware for the minicommand which provides midi-dispatcher / note forwarding functionality.

You can use it to allocate a range of monomachine tracks to be played in "Poly" mode, while retaining others to be played in "Mono" mode. e.g. tracks 1-3 mono, tracks 4-6 poly.

see discussion here: http://elektron-users.com/index.php?option=com_fireboard&Itemid=28&func=view&id=178388&catid=9

Instructions for use:
Code: :

  //   MNM Mono/Poly Sketch  // Note - this sketch assumes that you have: //    MNM set up in "mono" mode with a seperate midi channel allocated for each of the 6 mnm tracks.  i.e. midi channel span = 6 (i think this is how it's configured in the MNM global settings?) //    MNM Midi Out ==> Minicommand Midi In 1 //    MNM Midi In ==> Minicommand Midi Out //    Are also sending the midi notes to be "dispatched" / forwarded to Minicommand Midi In 1.  To change this to "listen" on Midi In 2, update the code below in _MP08_Sketch.pde, recompile, and flash your minicommand // //    Change From: //       Midi.addOnNoteOnCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onNoteOn); //       Midi.addOnNoteOffCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onNoteOff);              //       Midi.addOnControlChangeCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onControlChange);   // //    Change To: //       Midi2.addOnNoteOnCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onNoteOn); //       Midi2.addOnNoteOffCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onNoteOff);              //       Midi2.addOnControlChangeCallback(this, (midi_callback_ptr_t)&MNMMonoPolySketch::onControlChange);   // General Notes - Firmware has one configuration page with 5 encoders:   // 1.0  Config Page 1 // 1.01 Encoder "O-|" - this is the on/off switch for the sketch // 1.02 Encoder "ST" - select the Poly "start" track // 1.02.01 Changing the value for the Poly "start" track will reload the kit and then copy the MNM machine from the specified "start" track to all tracks until the "end" track // 1.03 Encoder "END" - select the Poly "end" track // 1.03.01 Changing the value for the Poly "end" track will reload the kit and then copy the MNM machine from the specified "start" track to all tracks until the "end" track // 1.04 Encoder "SYN" - turn parameter syncing for Poly tracks on/off.   // 1.04.01 When "SYN" is switched "on", if you turn an encoder on the MNM UI for one of the "poly" tracks, the parameter change will be forwarded to all of the other "poly" tracks // 1.04.02 Click the "SYN" encoder to toggle display between "SYN" and "SPR" encoders // 1.05 Encoder "SPR" - paramter spread for Poly track sync mode.  E.g. set SPR to "2", with 3 poly tracks.  Setting Poly Track #1 FLTW to value 64 will set Poly Track #1 FLTW to 66 and Poly Track #3 FLTW to 68.  etc...



Download link - latest version is maintained on github:

https://github.com/0438snappy/mididuino/tree/develop/minicommand-sketches/DevelopmentFirmwares/MNMMonoPolySketch

How it "works":

1. User has monomachine set up in "mono" mode with seperate midi channel allocated for each voice.
2. When the minicommand firmware is first loaded up, it will attempt to read the kit data from the monomachine. If successful it will flash the message "SWITCH KIT [KIT NAME]" on screen. If not successful it will flash the message "WRONG CHECK" on screen. If you don't have the midi out of the mnm connected to the in1 of the minicommand, or the out of the minicommand connected to the in of the mnm, no messages will flash on screen.
3. User defines which tracks are to be played in "poly" mode" by setting the ST and END encoders, e.g. tracks 3-6, which are on midi channels 10-12 for example. The actual midi channels will depend on your MNM global config. The default settings are ST on track 3, and END on track 6.
4. By modifying the ST or END encoder values, the minicommand will assign the machine from the ST track to all tracks until the END track, using the kit data read out earlier. Actually i probably need to add some code to make sure the kit was actually successfully loaded first...
4. The User needs to enable the firmware by setting the "O-I" encoder to "ON"
5. Once enabled, the minicommand listens to all incoming note on messages on the specified midi in port (see notes above).
6. If a note on message is received on a midi channel that is allocated to a "poly" track (e.g. any note on for midi chans 10-12), the minicommand will forward the note to the first available track. Continuing the example above it would play on MNM track 3.
7. If another (different) note on message is received before the previous "poly" note was released, then the minicommand forwards this to the midi channel of the next available "poly" track. Continuing the example above, the 2nd note would play on MNM track 4.
8. If the SYN encoder is set to on, then if the user makes any changes to parameters of any of the "poly" tracks through the MNM user interface, the minicommand will forward the CC on to all of the other "poly" tracks. so you can hold a chord and sweep the cutoff on any one of the poly tracks, and it will affect all poly tracks. Use the SPR encoder to set a spread to detune the values across the poly tracks for extra fatness


Q&A:
1. Will this work on the OT? Out of the box, probably not. In theory you could fairly easily modify this firmware to give basic midi dispatcher functionality that you could use on the OT. However the current version of the Midi-Ctrl framework doesn't yet have libraries to perform advanced functionality on the Octatrack like reading the kit data etc. So you would lose the machine copying and param syncing features... Maybe if the stars align at some point in the future we might see minicommand OT libraries...


Known bugs/issues/todo's:
1. Only copy MNM machines if the kit data was successfully read

The following bugs are now fixed in Midi-Ctrl 0018 (available at https://github.com/wesen/mididuino/downloads)
2. Midi-ctrl 0017 Memory leak / firmware crash... leaving the firmware at the sketch select page, and start the midi clock running, the sketch crashes after a while, 2nd led lights up, and minicommand needs to be powercycled. Haven't had a good chance to test out behaviour when you "enter" the sketch and start the clock running, suspect that it may also crash after a longer period of time. Have contacted Manuel and hopefully he can help me try to pinpoint the cause of this one, it seems to be something in the framework code.
3. WRONG CHECK message when using Midi-Ctrl 0017. The fix for this is to add "+5 / -5" the lines of code below in ...hardwarelibrariesMNMMNMTask.cpp and recompile/flash the firmware:

Code: :

  CHANGE FROM: void MNMTaskClass::onGlobalMessageCallback() {   MNM.loadedGlobal false;   if (MNM.global.fromSysex(MidiSysex.dataMidiSysex.recordLen)) { ... void MNMTaskClass::onKitMessageCallback() {   MNM.loadedKit false;   if (MNM.kit.fromSysex(MidiSysex.dataMidiSysex.recordLen)) { ... CHANGE TO: void MNMTaskClass::onGlobalMessageCallback() {   MNM.loadedGlobal false;   if (MNM.global.fromSysex(MidiSysex.data 5MidiSysex.recordLen 5)) { .... void MNMTaskClass::onKitMessageCallback() {   MNM.loadedKit false;   if (MNM.kit.fromSysex(MidiSysex.data 5MidiSysex.recordLen 5)) { ...




if anyone finds any other bugs / issues etc please let me know!
  The topic has been locked.
#179098
King Koopa
Posts: 324
machinedrum sps-1 mkI
monomachine mkII
octatrack Dps-1
2x roland jx3p
roland spd-s
korg prophecy
microkorg
crumar Ds2
crumar bit one
yamaha su-10
EV-
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
cool will check it out
  The topic has been locked.
#179101
Yoshi
Posts: 813
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
Awesome Tyrone!
  The topic has been locked.
#179163
Game & Watch
Posts: 1911
MD UW+, OT, MnM UW+
dubathonic releases
fb
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
Tyrone, I don't even have a MnM of my own and I'm super grateful you did this I gotta believe it will help a lot of users!
  The topic has been locked.
#179166
Killer Beez
Posts: 1120
3 brown dogs barking at each other....
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
Want.
  The topic has been locked.
#179167
Killer Beez
Posts: 1120
3 brown dogs barking at each other....
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
Could this make OT poly?
  The topic has been locked.
#179169
Cappy
Posts: 75
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
now i think i need a minicommand, this is an awesome feature.
  The topic has been locked.
#179170
Chain Chomp
Posts: 480
Every track here is made live using only the monomachine and the octatrack (no pc):
www.soundcloud.com/cutoph2
www.soundcloud.com/nobodyslistening
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
is this true? does this convert the monomachine into a polymachine?

how exactly does it work? I don't have a minicommand, but this looks awesome

for example, when you say tracks 1-3 mono, tracks 4-6 poly. would 3 poly tracks mean one 3-voice-polyphony-track?
  The topic has been locked.
#179198
Boo
Posts: 154
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
hey, i've added some extra notes etc to the original post, hopefully these will answer all of the questions

cheers, and if you do try it out pls let me know if you find any bugs! the basics should work (i hope), but i'm sure there will be a few things that can be improved / polished up a bit.
  The topic has been locked.
#179637
Cappy
Posts: 67
Re:Minicommand firmare - MNM Mono/Poly 11 Years, 10 Months ago
somebody tried it wth the octatrack?
  The topic has been locked.
Go to top Post Reply
Powered by FireBoardget the latest posts directly to your desktop

Login Form

start Player