MIDI Out Modes (re: unison double shruthi + NRPN remapping)
  • so I started using what I'd call 'aggregate MIDI devices' via MIDI-OX (+ MIDI yoke) so that I can combine the MIDI messages coming off a synthesizer's knobs with the MIDI messages coming from a keyboard or pad controller - this lets me record the knob twiddling on the synth itself as well as the MIDI off my controller into the same track in my DAW

    so for the case of a single shruthi-1 this is easily accomplished by setting the MIDI out mode to 'ctrl'

    but for the case of two unison linked shruthi's (with the 'master' shruthi set to 'full') I have been unable to figure out how to set this up to get the behavior I'm looking for - I want to be able to tweak knobs on the 'master' shruthi, and have that change parameters on both synths, also, the knob tweaking from the 'master' shruthi gets sent to my DAW for recording CC automation. In my desired setup tweaking any knobs on the 'slave' shruthi would only affect itself, and send no CC data out anywhere - also I want to be able to optionally send the internally generated midi sequence from the master shruthi to the slave shruthi while still keeping the same CC routing scheme - I also don't want to have to send the shruthi sequence events into my machine and back out

    I don't know if this is possible? it seems like I need the ability to toggle local control/CC send on the shruthis along with a 'full' output mode that optionally includes the internally generated sequence? would seem I could get at least one of those using MIDI-OX trickery but I haven't been clever enough yet

    thanks all
  • I thought they did work that way when poly chained?

    Edit: well I clearly didn’t read it!

  • At present there is no way in the Shruthi-1 firmware to:

    • Read incoming CC messages but then take them out of the MIDI out stream.
    • Sync the internal sequencer of the unit with anything.

  • been digging into this use-case further - it seems regardless of whether I want a double unison shruthi or just a single one (set to ctrl), I have to convert the NRPN messages coming off the shruthi knobs into their associated CC values before they hit my DAW - if left as NRPNs I am unable to view and edit them properly as clip envelopes. I assume other DAWs may be less troublesome but Ableton has no facility to decode NRPNs although it does receive and transmit them.

    Whilst working on a midi-ox NRPN-to-CC mapping for the shruthi I discovered some odd things in their interaction -

    >midi-ox does not seem to receive all of the NRPN data from the Shruthi, seems like LSB comes in but the main value MIDI-OX uses to determine that it's an NRPN is blank, *unless* I first send NRPN data on the same channel to MIDI-OX from another synth or controller - I have been using my DSI Tetr4's cutoff knob - I discovered this when I got frustrated trying to remap the shruthi NRPNs (nothing was happening even though I could see a bit of NRPN data coming into MIDI-OX) and decided to try to re-map my tetr4's NRPNs even though I have no need to do so (you can pick CC or NRPN out on the tetr4).
    >once you spin an oscillator range knob or the LFO rate knob it shifts the NRPN range values index for every parameter upwards, the starting value goes from 0 as shown in the Shruthi-1 reference manual, to 128, so most parameters are 128-255 in NRPN space, instead of 0-127 - osc range and lfo rate have particularly odd shifts - once it shifts it stays that way though, so I get what I want, it's just a pita

    no idea where the source of this nonsense comes from, it's the same behavior with one shruthi as it with my 2 shruthi unison chain - I'd like to see another MIDI-OX user try this out

    I was also able to achieve my desired unison shruthi routing (with the ability to record automation CCs from the 'master' shruthi's knobs) by doing the following -

    > master shruthi midi output set to 'full' outputs to
    > slave shruthi set to 'thru' outputs to computer
    > MIDI-OX filters all note on/off messages coming from the unison shruthi chain (doesn't hurt to filter sysex/clock also but I believe ableton already filters sysex and clock - I believe I filtered both regardless)
    > MIDI-OX aggregates the slave shruthi MIDI output with my midi controller output and sends to MIDI yoke port
    > midiconverter3 VST on the MIDI yoke input track in ableton in order to filter all the CCs - all the notes and CCs from my midi controller and all the CCs still get recorded into the MIDI clip on this track, but will not be sent to the next track, which contains the MIDI output to the shruthi chain
    > unfortunately at this point if I want to hear the knob twisting I just recorded into my DAW along with my MIDI notes from my controller, I have to move the MIDI clip over to the output MIDI track, or I have to use an optional output track that gets the MIDI from the input track with no CC filtering, and at the same time set the slave shruthi MIDI output mode to 'off' to eliminate the feedback loop I just re-opened. fun!

    I think most of the time I'll be using my double shruthi with the master shruthi set to 'seq' or 'full' with the slave set to 'off' but it's nice to know I can record 'master' automation CCs directly from the shruthi knobs if I feel the need - this CC recording trick also seems to work with poly mode as well!

    one behavior I'd really like for using unison shruthis that I can't emulate without sending one of the shruthi's outputs into my machine and back out would be a 'seq+NRPN" midi output mode, that way one still has the opportunity to quickly smash the two shruthis to the same value for a parameter (or patch) and then start messing with the slave shruthi for layering - as it is, using the 'seq' output mode with unison shruthis is fun, but sometimes inconvenient for what I would often use it for. Using MIDI-OX trickery I can somewhat recreate this behavior with the 'master' shruthi set to 'seq' and the 'slave' shruthi set to 'ctrl' (in this case the 'slave' becomes the 'parameter control master') but because of the way the MIDI loop is set up (CCs stop at the shruthi set to 'seq' output) any CCs I record into my DAW will only affect the 'master' shruthi in the chain upon clip playback

    seq+NRPN wouldn't be a shabby way to entice me (and others?) to get a couple more shruthis . . . although it's looking that way anyhow :)

    if anyone else wants my shruthi-1 NRPN to CC remapping for MIDI-OX I will clean it up a bit and post it here, recording automation right off the shruthi is great and extremely useful!
  • It looks like MIDI-OX always expect “full” NRPNs, in which the LSB and MSB parts are always present.

    The Shruthi-1 only sends the MSB message when the value is above 128, otherwise the implicit value of 0 is used. Similarly, parameter number messages are only sent infrequently (when tweaking a knob, you get a single parameter change, then a sequence of data entry messages). If MIDI-OX has a MIDI logging function, maybe you could record a trace to confirm this.

  • that gives me a good bit more understanding of what might be happening but I'm still quite mystified

    here is the raw MIDI log from MIDI-OX of me doing the following events

    1. sweep shruthi-1 LFO rate min/max/min
    2. sweep Tetr4 cutoff min/max/min
    3. sweep shruth-1 LFO rate min/max/min

    the third step is when the NRPN values get re-indexed as far as MIDI-OX is concerned, and my NRPN remapping starts to work correctly.

    it seems from the logs that the MSB from the Shruthi LFO rate knob is coming in, however, in order to make the NRPN remap work correctly, I was using MIDI-OX's 'midi status' window which shows the last message's values that MIDI-OX sees on each channel in order to see what values were coming off the Shruthi knobs, and in that window the MSB from the LFO rate knob is blank until I send some data from my tetr4 into MIDI-OX on the same MIDI channel. To show what is displayed here inside MIDI-OX I did some screen caps.

    http://i1087.photobucket.com/albums/j479/concatenation/MIDIOXvisual1.png > MIDI-OX just opened
    http://i1087.photobucket.com/albums/j479/concatenation/MIDIOXvisual2-LFOratemax.png > after shruthi LFO rate knob turned to maximum
    http://i1087.photobucket.com/albums/j479/concatenation/MIDIOXvisual3-tetracutoffturned.png > after turning the cutoff on my Tetr4, which sends some NRPNs
    http://i1087.photobucket.com/albums/j479/concatenation/MIDIOXvisual4-LFOratemin.png > after turning the shruthi LFO rate knob to minimum again
    http://i1087.photobucket.com/albums/j479/concatenation/MIDIOXvisual5-LFOratemax.png > after turning the shruthi LFO rate knob to maximum again

    the 'midi status window' and monitor input display untransformed MIDI input - the output monitor shows what happens after my NRPN remapping (I have no remapping for the Tetr4 so it just spits out its NRPN data into the monitor output, except for the very end of the cutoff knob which appears to get translated into CCs by my shruthi NRPN remap)
  • So the Tetra and the Shruthi are sending NRPNs on the same channel?

  • yes, if the Tetr4 doesn't first send some NRPNs to the same channel I have the shruthi on none of my remapping works and I can't see the shruthi NRPNs correctly inside of MIDI-OX
  • So it looks like sending at least once a MSB = 0 from the Shruthi should work?

  • that makes sense to me but I am clueless here - MIDI-OX presumably doesn't assume a 0 value for the MSB upon initialization?

    assuming that's correct, perhaps once a parameter on the shruthi that goes past 128 gets spun and sends an MSB, MIDI-OX interprets it as 1 register upwards or some such, and thus my values shift up 128 steps?
  • Yes, it looks like MIDI-OX doesn’t do the assumption. I’ll try to address this in the next firmware update ; though I currently have no way of testing/reproducing the problem which is very dependent on your setup.

  • wow, cool! if you get around to this make sure to e-mail the .syx my way - I would be more than happy to test it with my setup! it seems MIDI-OX is commonly used in PC-land for this type of thing so it'd be great for the shruthi to interface well with it

    I'm trying to find some NRPN MSB-type option that might change MIDI-OX behavior but so far no luck