Audiobus: Use your music apps together.

What is Audiobus?Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.

Download on the App Store

Audiobus is the app that makes the rest of your setup better.

A way to convert MIDI note number messages to corresponding CC values?

edited February 2022 in General App Discussion

I am trying to find an app that can take an incoming MIDI note number and output the same value but as a CC message. Is there a way to do this (for any note 0-127, ideally with channel information retained) in something like Midiflow or Midifire without scripting?

E.g. When I play note C60 on channel 2, I want MIDI CC 31 to send a value of 60 on channel 2. When I play note D62, the value 62 is sent, etc. I’d love this set up for any note, across six channels (1-6).

The use case: To dynamically change the six default pitches on the Nord Drum 2 using incoming MIDI note data from a separate source (without triggering notes). The Nord Drum 2 (and also 3P) is essentially six mono synth voices in one unit, on channels 1-6, with a master channel 10 which allows you to play back all six voices at their default pitches (effectively the same as when you use the physical pads on the 3P or the Nord Pad for the 2).

The default pitches are defined by CC 31 on channels 1-6, and setting CC to 60 effectively translates the default note to MIDI Note C60 for each voice. Nord Drum users will know that it’s possible to use the same sounds with different pitches across the six voices to create a six note scale playable on the pads or channel 10.

My goal is to be able to automate or quickly change the pitches of these six notes by sending CC31 messages with note values to each of the six channels, using a separate controller going through some kind of MIDI filtering software, without triggering notes. That way I can dynamically change the notes that are triggered when I play back the pads on channel 10.

Any ideas on any MIDI apps that can do this without scripting?

(There’s MSB and LSB stuff going on but I’m pretty sure only the MSB is needed in my case).

Comments

  • A few-line Streambyter script could do this. I think the KEY to CC Mozaic script will do what you want as well. If not, it could probably be modified pretty easily to do what you want.

  • wimwim
    edited February 2022

    Here's a StreamByter script that should work. I'm no StreamByter expert, so it might not be the most elegant implementation. ;)

    # Send CC 31 on received note, assigning the note number to the CC value
    
    MAT I0 = B0 + MC
    ASS I1 = $31
    ASS I2 = M1
    
    IF MT == 90
      SND I0 I1 I2
    END
    BLOCK
    
  • edited February 2022

    This can be done using the original StreamByter rules, like this

    9X XX XX = BX 1F X2
    8X = XX +B
    

    The first line converts the Note On to CC 31 (1F in hex) on the same channel. X2 is the second byte of the note on, the note value. The second blocks the Note Off that will surely follow. You can implement this using the StreamByter module included in MidiFire.

    Edit: The above will do what you ask, but how will your controller send note messages on 6 different MIDI channels? Wouldn't it be easier to take a CC from the controller to select the channel, then use a small script to handle the full mapping from controller to message to Nord Drum?

    And I'm not clear on the aversion to scripting. When the requirements are so specific, scripting seems like the easiest solution, since it can convert anything to anything.

  • @uncledave said:
    And I'm not clear on the aversion to scripting. When the requirements are so specific, scripting seems like the easiest solution, since it can convert anything to anything.

    Much more elegant solution. I didn’t realize about the ‘X2’ method.

    It’s odd that you wouldn’t get someone being intimidated by scripting. That seems perfectly natural to me.

  • @wim @uncledave

    Thanks so much to both of you for your responses, very appreciated. I'm unwell right now but will investigate this soon when I've got half a brain to work with. :)

Sign In or Register to comment.