Assigning custom MIDI notes from my BlueBoard (altered through AUM and Mozaic) doesn't work
Hey guys
It's me again, after quite a while. I have an iRig BlueBoard now and I'm trying to expand its usefulness by writing custom Mozaic scripts that intercept the BlueBoard's inputs and send some custom MIDI notes.
For example, I want to activate different "spaces" by long-tapping on one of each 4 pads (A, B, C, or D), and then when short-tapping, different MIDI signals are sent through (using channel 1) so I can assign them to various functions in GTL:
Space A active:
- A: MIDI 0 => Record/Overdub
- B: MIDI 1 => Decrease Clock Length
- C: MIDI 2 => Increase Clock Length
MIDI 3 => Stop All
Space B active:
- A: MIDI 4 => Previous Group
- B: MIDI 5 => Next Group
- C: MIDI 6 => Previous Loop
MIDI 7 => Next Loop
Etc.
This seems to work pretty well so far, but for some reason, when assigning one of the signals inside GTL, it is not applied. The MIDI signal is recognised and seemingly assigned, but when pressing "Done", it's not assigned.
As you can see, the custom MIDI signal is recognised (CH:1, Note: 2):
But when pressing "Done", it is reverted (for some reason, it switches to 60):
If I instead select the BlueBoard directly in "MIDI Port" (instead of Virtual MIDI, which is sent through AUM with Mozaic loaded), assigning works:
...even after pressing "Done":
Any idea what's going on? I don't really spot the difference. One thing I spot though is that with "Virtual MIDI" selected, the option for Tap/Hold is greyed out, in contrast to native BlueBoard (see screenshots above).
Any help is highly appreciated.
If anyone is interested, here's the Mozaic script so far:
@OnLoad
Log {Joshua wants to be a pop band}
// BlueBoard (BB) pads
bbA_in = 60
bbB_in = 62
bbC_in = 64
bbD_in = 65
// BlueBoard pad states
bbDown = 100
bbUp = 0
spaceA = 0
spaceB = 1
spaceC = 2
spaceD = 3
activeSpace = spaceA
longTapTime = 200 // Milli seconds
@End
@OnMidiNoteOn
DownStartTime = SystemTime
@End
@OnMidiNoteOff
If SystemTime - DownStartTime <= longTapTime
Call @ShortTap
Else
Call @LongTap
Endif
@End
@ShortTap
// Log {Short Tap: }, MidiNote
Call @SendNoteFromCurrentSpace
@End
@LongTap
// Log {Long Tap: }, MidiNote
Call @ActivateSpace
@End
@ActivateSpace
if MidiNote = bbA_in
activeSpace = spaceA
elseif MidiNote = bbB_in
activeSpace = spaceB
elseif MidiNote = bbC_in
activeSpace = spaceC
elseif MidiNote = bbD_in
activeSpace = spaceD
else
Log {ERROR - Unexpected MidiNote: }, MidiNote
endif
Log {Activated space: }, activeSpace
@End
@SendNoteFromCurrentSpace
baseNote = -1
noteToSend = -1
if activeSpace = spaceA
baseNote = 0
elseif activeSpace = spaceB
baseNote = 4
elseif activeSpace = spaceC
baseNote = 8
elseif activeSpace = spaceD
baseNote = 12
endif
if MidiNote = bbA_in
noteToSend = baseNote + 0
elseif MidiNote = bbB_in
noteToSend = baseNote + 1
elseif MidiNote = bbC_in
noteToSend = baseNote + 2
elseif MidiNote = bbD_in
noteToSend = baseNote + 3
endif
SendMidiOut MIDIByte1, noteToSend, 100
SendMidiOut MIDIByte1, noteToSend, 0
Log {Sent Midi: }, noteToSend
@End
Comments
PS: I created a small video demonstrating the issue.
Interesting fact: when I try to assign the modified MIDI signals inside AUM, it doesn't work either. In this case though, the received signal looks like it is indeed applied to a function, but when pressing the respective pad on the BlueBoard, the function is not executed.
And again: when I switch the MIDI input from Mozaic to "plain ol'" BlueBoard, it works fine. So something with the MIDI that is sent from Mozaic definitely isn't correct yet.
I found the problem and described it here: https://forum.audiob.us/discussion/comment/830049/#Comment_830049
Seems Audiobus forums are a better place to discuss about stuff like this.
Great job Josh, yep there's more traffic for this kind of thing over on AB forum.