What's the best way to send NRPN data from Ableton?

OK, so I have a Prophet 8, and it needs NRPN data to control it effectively over MIDI (things like filter sweeps, etc) via envelopes in Ableton.

This is because the Prophet has 164 steps rather than the 128 steps of normal CC data, so if you use a CC for continuously changing data, it can sound quite bad.

I've been told by Dave Smith Instruments support that "Ableton doesn't support NRPN" which doesn't seem strictly true to me, because I can see the NRPN options there in the envelope editor. But it also seems that I'd need to be simultaneously controlling 4 streams of data from Ableton for NRPN.

Assuming Ableton IS in fact capable of doing this (and I can't see why it wouldn't be!) - what's the best way to send NRPN data from Ableton to an instrument like the Prophet?

Options I've considered include setting up a patch in M4L, but this seems like using a sledgehammer to crack a nut. I have also considered simply drawing "stepped" envelopes rather than smooth lines, because this seems to work, but it's not ideal as you don't get the full range out of the Prophet and it takes a lot longer to program in Ableton that way.

I have also tried recording MIDI data from the Prophet, and while some NRPN data does seem to be captured, playing it back again yields nothing like what was played in - just a chaotic unpredictable mess. So perhaps Ableton can't record NRPN data correctly. But this isn't such a huge problem so long as it can transmit it effectively, if it's programmed in correctly.


timthecomposer 6 years ago | 1 comment

11 answers

  • gustavo bravetti
    7 answers
    12 votes received
    3 votes

    EDIT: [I Just did this: http://www.maxforlive.com/library/device/2203/nrpn-gen]

    Easy with M4L.

    You just need to send a message like this: 176, 99, MSB, 176, 98, LSB, 176, 6, XX, 176, 38, YY to the MIDI out.

    So lets say we want to control in DSI Tetra VCA decay for the 4 voices.
    In the MIDI reference we have 1570 as NRPN param#

    So lets get the MSB val:
    1570/128=12.265625, we keep the 12 as MSB


    Get the LSB val: 1570-MSB*128 = 34, we keep 34 as the LSB.


    Now in M4L create a Message object then write on it:

    176, 99, 12, 176, 98, 34, 176, 6, 0, 176, 38, $1

    Create an INT object and connect it to the LEFT Message input. 

    Now connect the Message object to the MIDI Out object.


    Change the values in the INT object.

    If all was done properly, each time you change the INT value, all the values of the message are sent and $1 is replaced with the INT value.

    Now you can connect a Live slider o Live knob object to the Message object instead, this will allow you to automate that parameter using envelopes, etc.


    Just a WARNING, keep the XX YY values inside 0 -127, if you go over you'll probably need to restart something ;)

    If someone need some extra help feel fee to write me gbravetti at gmail.com

    4 years ago | 2 comments
  • warper
    10 answers
    11 votes received
    2 votes


    I am a very simple Live-user like you, so i have to be very careful about what I am writing... From my experience, since years of using Live, it cannot work with NRPN. Same is with Sysex-Data. I think, You know, Live also has no Note Sheet printing, and other stuff, "traditional hosts" bring with. So, I think, LIVE is designed to be a very modern tool, stabil, fast, slim, and maybe.. don´t bring every special feature... Maybe, there is any possibility mith MAX for Live? Did You check this?

    6 years ago | 0 comments
  • klassix
    1 answer
    2 votes received
    2 votes

    Hi Guys, It has been a long time since your last post but I am interested about using my hardware synth with ableton.

    Here is my problem.

    I have Ableton Live 9 suite + Push + minimoog voyager + dave smith instruments Desktop module + M-audio axiom pro keybord.

    I am using the soundtower pluging for my 2 hardware synth (VoyagerplugSE Prophet PlugSE) and it's working perfectly if I use my midi keyboard axiom pro to control either the prophet 8 desktop or the voyager (with the soundtower plugSE or not) or I can use the keyboard of the voyager.

    As soon I use push, I can control any automation and play on both hardware synth except on The Dave smith Prophet 08, when I trigger the note with the Pad I have  a weird modulation adding to the note like an LFO, Vibrato, pitch bend.. It's not doing it on every presets.

    With the M-audio axiom pro, no problem with that.

    It's a shame, I would like to use push as the centre of my home studio wich is an amazing tool for controlling any automation !



    4 years ago | 2 comments
    8 answers
    6 votes received
    1 vote

    I agree.... This is something I am attempting to figure out myself. Would love to Automate filter sweeps from the prophet 8 itself.... 


    6 years ago | 1 comment
  • timthecomposer
    4 answers
    3 votes received
    1 vote

    Hi Dragontheory,

    What I have done in the end (although I did attempt a conversion bit of Javascript in M4L, this was long winded and not brilliantly reliable) was to simply map (on the Prophet) the things I wanted to control in Live (e.g., filter cutoff) to things I didn't want to control (e.g. modulation, aftertouch) that respond to CC messages. This can easily be done in the "Modulators" section on the Prophet.

    Not a perfect solution but at least it works!

    Another useful tool related to this is a Max patch called "External Instrument MIDI Control" that allows you envelope control of 8 CC's in Arrange mode in Ableton (as opposed to just in Clip mode), of an External Instrument (which is how I and I guess everyone else has their Prophets etc set up).

    Hope that helps :)


    6 years ago | 1 comment
  • ecornell
    1 answer
    1 vote received
    1 vote

    klassix - The Push pads send aftertouch messages and I believe that many of the Prophet 08 patches respond to aftertouch (the keyboard sends aftertouch messages too).  

    You are probably picking patches that respond to aftertouch and then holding notes at varying pressures, which would send aftertouch messages.


    4 years ago | 1 comment
  • timthecomposer
    4 answers
    3 votes received
    1 vote

    Hi there,

    As described above I did eventuially get the Prophet talking to Ableton, more or less, but there is still a problem: the Prophet doesn't respond to the curves or lines of Ableton's envelopes, only to the distinct points (i.e. the little round circles that you can drag, and not the smooth lines). I suppose that's fine if you record your own automation as that records loads of points. But the other MIDI gear I have responds to the smooth lines too, continuously (the first C in CC! :))

    Also, 0 on the envelope's Y axis corresponds to the patch's initial value for that parameter, not to 0. So if you have (say) filter resonance at 50 in your Prophet patch then 0 in the envelope corresponds to 50 on the Prophet, meaning that you can't go below 50. It also seems to mean that the 128 CC positions get shared out between 50 and the max (127?) on the Prphet. So you have to set up your patch accordingly... i.e. the CC data is sending a relative value not an absolute one. This is annoying if you have set up a load of envelopes and then change the setting on the patch, because your envelopes are then sending proportionately bigger or smaller changes to the Prophet, if you see what I mean.

    4 years ago | 0 comments
  • Venetian
    1 answer
    1 vote received
    1 vote

    I've been looking into controlling the Prophet 08. I've designed a small program using JUCE that will send out the appropriate messages. There are two ways you can do this,

    sending CC data:

    eg 176, 29, x will send a control change message (the 176 is CC channel 1), from the Prophet manual this will control noise level, and then value x (0-127)

    This should be fine from Ableton as it supports CC messages. To check this out - make sure in Global on Prophet that you have MParamSend to CC or All, not to NRPN

    This other option (MParamSend set to NRPN) would need some interpretation as you will get 4 numbers in a row. These are the Most Significant Byte and Least Significant Byte of the Parameter number and Value repectively on CC channels 99,98,38 and 6. This is all in the DSI manual.

    This is the method used in the small app I'm making. It will eventually interface with game controllers and allow you to choose which parameters you control in the Prophet (or Moog once I get to that too).

    However, if you want to record the automation, you'll need to store and send the CC values. So use the first method above. When I treid it, I couldn't get Ableton to record the CC values. This may be simply that they don't allow the recording of external control change messages. I know that they don't allow Polyphonic AfterTouch and things to register in Live. Apparently you can record the CC data in Arrangement view?


    4 years ago | 0 comments
  • gustavo bravetti
    7 answers
    12 votes received
    1 vote
    4 years ago | 0 comments
  • zurie
    1 answer
    1 vote received
    1 vote
    Copy and paste this into Maxforlive.   
    Left value is the value of the knob (0-127) 
    Second box is the device ID
    Third box is your LSB
    Fourth Box (Brown) is your midi channel
    You may have to Control/Command click the p NPRN-ER patcher and setup something custom, I am using this to do a ER-1.


    2 years ago | 1 comment
    8 answers
    6 votes received
    1 vote

    So Complicated for such an amazing synth...


    2 years ago | 0 comments

You need to be logged in, have a Live license, and have a username set in your account to be able to answer questions.

Answers is a new product and we'd like to hear your wishes, problems or ideas.