Will the WARBL receive a MIDI message from an app to change instruments? Specifically, one of the three instrument setup possibilities within the Warbl, and not to be confused with a program change within an app such as ThumbJam. I would like to have a virtual button within LoopyPro select a different instrument fingering within the warble itself vs. using a long press of one of the three physical buttons. I’ve tried messing around by sending program changes to the warble with no success. The console within the WARBL config tool shows a message of "PB 1 0 64" when using the physical buttons to switch an instrument, but I’m not sure how to translate this to a hex output for a command too be sent back from LoopyPro. This would also be useful to automate things from Loopy or another DAW. An example would be to be playing a whistle on a timeline and have an immediate automated switch to Highland pipes.
Thanks in advance.
External Control
-
- Posts: 3
- Joined: Thu Dec 29, 2022 1:29 am
Re: External Control
Got it figured. I did a deep read of the code on GitHub (thanks so much for the open source https://github.com/amowry/warbl/tree/ma ... bconfig/js) and found within the web app some of the cc codes that are sent to configure the WARBL.
CC 102, 60 selects tab/instrument 1
CC 102, 61 selects tab/instrument 2
CC 102, 62 selects tab/instrument 3
All sent from Loopy Pro on channel 7 worked great. I get the flash of the led on the WARBL and the tab moves within the WARBL app on iOS.
Cheers!
Reference lines 1425-1462 of WARBL/web confit/js/midi.js:
function sendFingeringRadio(tab) { //change instruments, showing the correct tab for each instrument.
instrument = tab;
updateCustom();
advancedOkay(); //turn off the advanced tab
pressureOkay();
handleDefault(); //display correct default instrument and "set default" buttons
customFingeringOkay();
if (tab == 0) {
document.getElementById("instrument0").style.display = "block";
document.getElementById("instrument1").style.display = "none";
document.getElementById("instrument2").style.display = "none";
document.getElementById("key0").style.display = "block";
document.getElementById("key1").style.display = "none";
document.getElementById("key2").style.display = "none";
sendToWARBL(102, 60);
} else if (tab == 1) {
document.getElementById("instrument0").style.display = "none";
document.getElementById("instrument1").style.display = "block";
document.getElementById("instrument2").style.display = "none";
document.getElementById("key0").style.display = "none";
document.getElementById("key1").style.display = "block";
document.getElementById("key2").style.display = "none";
blink(2);
sendToWARBL(102, 61);
} else if (tab == 2) {
document.getElementById("instrument0").style.display = "none";
document.getElementById("instrument1").style.display = "none";
document.getElementById("instrument2").style.display = "block";
document.getElementById("key0").style.display = "none";
document.getElementById("key1").style.display = "none";
document.getElementById("key2").style.display = "block";
blink(3);
sendToWARBL(102, 62);
}
CC 102, 60 selects tab/instrument 1
CC 102, 61 selects tab/instrument 2
CC 102, 62 selects tab/instrument 3
All sent from Loopy Pro on channel 7 worked great. I get the flash of the led on the WARBL and the tab moves within the WARBL app on iOS.
Cheers!
Reference lines 1425-1462 of WARBL/web confit/js/midi.js:
function sendFingeringRadio(tab) { //change instruments, showing the correct tab for each instrument.
instrument = tab;
updateCustom();
advancedOkay(); //turn off the advanced tab
pressureOkay();
handleDefault(); //display correct default instrument and "set default" buttons
customFingeringOkay();
if (tab == 0) {
document.getElementById("instrument0").style.display = "block";
document.getElementById("instrument1").style.display = "none";
document.getElementById("instrument2").style.display = "none";
document.getElementById("key0").style.display = "block";
document.getElementById("key1").style.display = "none";
document.getElementById("key2").style.display = "none";
sendToWARBL(102, 60);
} else if (tab == 1) {
document.getElementById("instrument0").style.display = "none";
document.getElementById("instrument1").style.display = "block";
document.getElementById("instrument2").style.display = "none";
document.getElementById("key0").style.display = "none";
document.getElementById("key1").style.display = "block";
document.getElementById("key2").style.display = "none";
blink(2);
sendToWARBL(102, 61);
} else if (tab == 2) {
document.getElementById("instrument0").style.display = "none";
document.getElementById("instrument1").style.display = "none";
document.getElementById("instrument2").style.display = "block";
document.getElementById("key0").style.display = "none";
document.getElementById("key1").style.display = "none";
document.getElementById("key2").style.display = "block";
blink(3);
sendToWARBL(102, 62);
}
Re: External Control
Great, I'm glad you got it figured out! I had to look it up myself and I was just going to reply. FYI, the MIDI Console in the Configuration Tool ignores all those messages on channel 7 that are used for communication, which is why you didn't see them there.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz
-
- Posts: 3
- Joined: Thu Dec 29, 2022 1:29 am
Re: External Control
All very exciting stuff. There are so many thing that can be tweaked and controlled on the fly in the same way. I take it that you don’t happen to have a quick reference list of all the CC commands pertinent to the warbl if you were going to look things up. If you don’t happen to have one, maybe in my spare time I’ll make one and post it here for others to reference.
Thanks for such a wonderful musical tool. It’s really changed the way I approach music.
Thanks for such a wonderful musical tool. It’s really changed the way I approach music.
Re: External Control
My apologies, I didn't see this request. Here's the Google sheet that contains all the commands:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
Sorry that it's not totally organized, as I've mostly been the only one who has used it. It also may change with future updates.
https://docs.google.com/spreadsheets/d/ ... sp=sharing
Sorry that it's not totally organized, as I've mostly been the only one who has used it. It also may change with future updates.
Andrew Mowry
info@warbl.xyz
info@warbl.xyz