ken_christiaens
2019-02-07 19:49:27
Hi Steve/Florian, thanks for keeping the support forum up to date and sharp.
For quite some time, I've been having the dream of being able to edit my modded Yamaha FB01 rack fm synth with the Livid Code v2, which has loads of led-ringed knobs. The code doesn't do sysex so that's where the bomebox chimes in.
As Steve suggested before, it might be best to test the miditranslator file firs with mtp. I attached the file.
Are you able to make it work with a midicontroller you have and does it send good sysex strings?
Will this setup work to test it here?
Macbook Pro USB -> Iconnectaudio4+ DIN OUT -> FB01 IN
DIN IN -> FB01 OUT
Livid Code USB -> Macbook Pro USB
Thanks,
k
Attachments:
Steve-Bome Forum Moderator
2019-02-07 21:01:42
OK, could you verify the configuration? See attached PICs
It looks like in your MT Pro file that you are taking Code2 input and converting to Sysex for the FB01. Is what you have, currently working in the Computer configuration? If so where are you with the project. I see you have no LED feedback yet to your Code2. Is that what you are looking for. Maybe an example for one of the encoder rings?
Have you tested and have anything working in the BomeBox configuration?
If you want pointers as you build your application, we are here to help as you call out specific questions.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Attachments:
Steve-Bome Forum Moderator
2019-02-07 21:21:15
comment
Also, it looks like you have the following ports defined
Input:
Code Controls
Code External
Bome MIDI Translator Virtual 1 In
iConnect Audio4+ USB1
iConnect Audio4+ DIN
Output:
Code Controls
Code External
iConnect Audio4+ USB1
iConnect Audio4+ DIN
By default any translator will accept from ANY input and send to ALL outputs unless overridden by Preset or translator definition. As it is written (not defining) this can cause some unintended side affects. I suggest you override the defaults at the preset level and only choose the intended input and output device you want. If there is a translator within the preset that is different you can then override this within the translator.
Also, I would suggest the following Aliases so that when you move to BomeBox, you can just map the aliases to the ports on the BomeBox
Inputs
From CodeV2
From FB01
To Code V2
To FB01
In the PC environment you tie these aliases to the target USB port
In the BomeBox environment you tie the FB01 aliases to the BomeBOX MIDI DIN connectors
Steve-Bome Forum Moderator
2019-02-07 21:41:13
In general it seems to work but I cannot validate the correct outgoing Sysex for your FB01.
I tested using MIDI Tools from IACPort2 (Alias is “From CodeV2) with CC 49 and 59 only.
I took the liberty of assigning aliases and assigning the correct ports to your presets.
Your Synth Switch translators seem to be flawed. Right now the same key both activates and deactivates the same devices. One state when pushed and another state when released. Maybe that is how you have your button set up though so I didn’t change it. I would think it would be set to toggle between the two preset states on each note on.
Attachments:
Steve-Bome Forum Moderator
2019-02-07 21:50:56
comment
What will you be doing with QU-Pac in this configuration?
ken_christiaens
2019-02-08 10:19:47
comment
Hi Steve, the computer configuration is correct. I tested it with the FB01 yesterday (straight, not in the midichain I intend to integrate it). It works nicely, although there seems to be kind of a lag caused by the sysex datastreams, but it’s workable. We might want to look in the datatransfer later, if all works well.
For the bomebox configuration, it’s different from what I would like to do.
To avoid power issues I had before with powering the bomebox through mini USB, while connecting the Code2 to Bomebox’s USB host port (weird flickering of leds on Code2), I would like to connect the USB of the Code2 with the USB in on my MPC Live. From there, the midi is sent out through a DIN Port to an Akai Z8, AKai VX90, Boss se70, Iconnectaudio4+, Yamaha FB01 and a Moog Minitaur, all midichained. I know it’s along chain, but whenever I turn a knob on the Code2 this way, the midi-in leds, including that one on the minitaur respond nicely.
In this configuration, I was not hoping to get led feedback from the FB01, but if this is possible, that would be awesome. For this to happen, I should be able to send a feedback request to the FB01 everytime a setting/know is changed. Is that even possible? I know that you can send a ‘fetch all settings’ request to FB01, since I also have the Patch Base 3 ipad app editor for the FB01 (but not want to use it in my hardware setup for tweakability reasons).
Concerning the mtp-project file, it seems to work sufficiently good for me, although substantial improvements, might be considered. The Instrument switching is assigned to a toggle on/toggle off button and in my patch it works as it should. Don’t see any misshap there.
ken_christiaens
2019-02-08 10:25:18
comment
Hey Steve, thanks. Since the project file seems to work through MTP, I intend to keep it like it is for now.
Only in terms of midi ports and routes related to the hardware integration, I might need some help wit the aliases etc. I’ll comment on it in the related response.
ken_christiaens
2019-02-08 11:10:53
comment
Hey Steve, in response to your midi port comment.
The code external port can be removed, since it’s the DIN ports of the Code2 that I won’t be using.
The code controls port is it’s USB port which send and receives midi data, so if we would go for the led-feedback, the fetched data from the FB01 should get back to the Code2 this way.
I probably won’t need the Bome MT Virtual 1 in either?
And the iconnect USB in/out ports won’t be needed either in the hardware setup, right, since I will be sending all info straight to the DIN ports?
How do I initialise a preset so that it uses only the right ports from the beginning? Changing individual translators is not necessary here.
I will use your suggestion for the aliases as soon as I get to define straightly what ports I will be using and which ones I won’t.
ken_christiaens
2019-02-08 11:16:02
comment
For the Qu-Pac question, I think it’s separate from the midi-sysex configuration, since it works through the ethernet connection. The bomebox should be the master DHCP-router for Qu-pac, so that I can control it’s features with the Ipad app Qu-Pad wirelessly. I know I could control the Qu-Pac with a midi hardware controller, like the Code2, but I don’t think I would be able to switch between controlling Qu-Pac and the FB01 on the code2 in a non-confusing, easy way. Or do you think that won’t be a problem at all?
Steve-Bome Forum Moderator
2019-02-08 17:16:14
comment
Hi for the lag in Sysex, it is possible this is built into the FB01. Many controllers require a delay after sending Sysex before sending any other data. You can turn on logging and set timestamp if you want to monitor delays between any MIDI messages. Also check there is no delay on outgoing action of any translator and try not to move knobs too fast, We may need to tweak things around a bit if the FB01 requires delay between Sys Ex. You may need to check the manual to see if there is anything on this. Bome should be fine without delays but as I said, many Synths are not.
As far as you MIDI chain, it is certainly within MIDI design specifications, however we will have to be careful that each device on the chain has its own assigned MIDI channels. Also if there an issue with any device on the chain, it could affect the downstream devices, so as long as we can bypass downstream devices if an issue is happening, I guess it is OK, otherwise, I would recommend that anything that can be supported via USB through a USB hub should be used if possible. If it is a long device chain, then the Alias name should be representative of this.
As far as LED feedback, you would put in a preset with a input of whatever device you want controlling the LED’s and an output of your Code2. You could then put translators that change the Sysex to the MIDI CC values that the COde2 supports and it would only affect the defined inputs and output in that preset.
As far as the Qu-Pac, you would just need to make sure your project file has the necessary MIDI routes to anything attached. When the MT Pro project starts up, it defines all MIDI routes it is using, and I think it may override any routes you have setup outside of MT Pro so in MT Pro you would just need to define those inputs and outputs and draw lines between them but no translators required. This is another reason it is important to ensures presets have their defined inputs and outputs which should not include the routes you use for Qu-Pac (unless you want to control Qu-Pac with one of your other controllers).
Did you get the modified file I created with the presets ins and outs set? Of course if you are going to change the Alias names anyway, you probably will need to adjust this.
Steve-Bome Forum Moderator
2019-02-09 00:54:40
comment
You wrote:
“To avoid power issues I had before with powering the bomebox through mini USB, while connecting the Code2 to Bomebox’s USB host port (weird flickering of leds on Code2), I would like to connect the USB of the Code2 with the USB in on my MPC Live. From there, the midi is sent out through a DIN Port to an Akai Z8, AKai VX90, Boss se70, Iconnectaudio4+, Yamaha FB01 and a Moog Minitaur, all midichained. I know it’s along chain, but whenever I turn a knob on the Code2 this way, the midi-in leds, including that one on the minitaur respond nicely.”
Where is the BomeBox in the above configuration?
Also, I don’t think the MPC has a host USB port. I think it is for storage devices only and the only USB port is for device hookup
ken_christiaens
2019-02-09 22:02:54
comment
Hey Steve,
if I hook up the code to the MPC live, I get midi cc info throughout the whole midi chain I described above. I forgot to mention Bomebox position in the chain, it is right before the audioconnect4+ and connected with the DIN in & outputs in the chain, while the host usb port of bomebox remains unused. It would be great if you could help me on setting up the midi routes for the hardware setup, it’s a bit confusing for me with these aliases.
I don’t care for now for led-feedback, I might try that after I know this one-way code2 controls with the FB01.
ken_christiaens
2019-02-09 22:03:38
comment
Of course all midi devices in the chain have their own mdichannel setup correctly.
Steve-Bome Forum Moderator
2019-02-09 22:49:38
OK so the below is the diagram. In this scenario, since there are multiple upstream and downstream devices, I would just name the Aliases “From Upstream” and “To Downstream”.
Great care will need to be taken to ensure there are no collisions with MIDI Channels on each device. Also, in this setup, MIDI feedback for LED rings will be difficult if not impossible. I guess you could take the last DIN device in the chain and loop it back to first as long as you are careful to block any MIDI infinite loops by filtering them with BomeBox or other devices in the chain.
Red arrows depict USB and Black Arrows MIDI DIN.
Attachments:
ken_christiaens
2019-02-10 22:56:40
Hey Steve, short update. The idea is to edit 2 instruments of the multitimbral FB01: INST1 on Channel 5 & INST2 on Channel 6. I think, in this case, I would need to change all translators in the 2 presets of the projectfile to channel 5 and 6 respectively. Is there a way to do it at once or is it per translator I need to adjust? Then, in the Livid Code2 editor, I should map all knobs to send out on channel 5 and 6 specifically. I would use 2×32 knobs (=2 banks) per instruments (total of 4 banks in Code2). Then theoretically it should work in the midichain described earlier. In the bomebox, I should only use the DIN Midi IN & OUT routes, not using any others. Then I should connect DIN IN & OUT in the MTP patcher to make a midi thru connection.
Is this the correct way of thinking?
Steve-Bome Forum Moderator
2019-02-10 23:12:17
comment
Hi,
Right now you would have to change every translator. I would recommend you assign the MIDI channels for each synth using a global variable and then in your translators, reference that global variable instead of the MIDI channel number
IE
// First synth channel 5 (0=MIDI CH1)
ga=4
// Second synth channel 6
gb=5
Usually I create a translator that executes at project opened that creates a one shot timer (I call it INIT)
Then I have a separate translator that triggers on incoming timer INIT and I put in rules to set (and document) all used global variables there. This is because by default all global variables are otherwise set to 0 at project opened.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Steve-Bome Forum Moderator
2019-02-10 23:15:00
comment
By using Init timer, you can then create other translators that do other housekeep tasks at project start (such as initializing controllers to known states with MIDI, etc). You don’t have to use an Init timer and can use at project opened for each translator, but I like to use the timer ability as in provides more flexibility later if you want to change things around without modifying multiple translators.
ken_christiaens
2019-02-11 10:57:54
comment
Ok, I’ll see how far I get and will come back to report.
ken_christiaens
2019-02-11 11:09:11
comment
Steve,
how do I link the global variable for the midi channel (per instrument) to an actual midi channel message that the FB01 understands?
I created an INIT Timer, but don’t know how set the input, rules and output, since just putting ga=4 in rules wouldn’t work, right?
ken_christiaens
2019-02-11 11:28:29
What I noticed: since I only want to use the 2 1st banks of controls from the code2 (64 knobs and some buttons), I can only send midi cc out on 1 midichannel, let’s say 5. But if I would press the ‘Instrument/preset Switch’ button, the preset changes and all incoming cc’s would need to come from channel 6. How would I do that?
Steve-Bome Forum Moderator
2019-02-11 15:37:23
Hi, I put in an Init Preset along with the Timer translators to set the instrument channels as global variables ga and gb.
I thin changed the first 2 translators of each instrument preset to look for different incoming channels from your upstream Code2. I put a dummy translator to show you the other ones that still need changing.
As far as you question on changing the channel for the Code 2 I’m not sure understand how to program your Code2 to send out different channel information. You will have to refer to you Code2 manual for that.
I didn’t evaluate in detail the content of your outgoing Sys Ex strings however did a quick look at the manual. It appears that the instrument number channels are encoded within the Sys Ex string so you may need to substitute the global variable ga and gb (instrument number) somewhere in each of the raw output streams of your outgoing translators.
Alternately you could use a single variable ga to define your instrument and then have the value of ga set from 4 to 5 when switching between the instrument presets. You would do this in rules. For instance in the preset title Yamaha FB01 (In2) you would have a translator like this
Input : Activation of this preset
Rules: ga=5
Output:None
Then in every translator in your project you would substitute the outgoing string with the variable ga encoded where the instrument number should be placed.
Attachments:
ken_christiaens
2019-02-12 17:44:47
Hey Steve,
I added an adapted file, I’m not fully grabbing it still.
I changed the global variable from GA/GB to LA/LB, because GA/GB was already in use.
I changed every translator to receive on LA or LB respectively for both instruments.
But as far as I can see, this would mean that I would need to send out on channel 5 or 6 from the ode2 depending on which instrument to edit. To save space on the controller, it would be much more convenient to send all infos (for both instruments) on 1 midichannel, let’s say 5 in this case, and use the preset switch to make the change in channel in the MTP project. How would this work?
In the sysex strings, the number 18 represents INST1 and number 19 represents INST2. There’s no midichannel number in these strings (as far as I can see).
I have also selected the active midi ports and the aliases which I believe are needed.
Should I also select a midi route here to ensure a midithru connection in the bomebox, or can I do it on the bomebox itself?
Thanks for the assistance.
Attachments:
Steve-Bome Forum Moderator
2019-02-12 19:54:43
comment
Ah, OK, then in that case, just put the incoming all back to MIDI CH5 and then in your sysex strings change the number. Since you are sending Sys Ex, you are not transmitting on any channel. Sys Ex is different in that way. Your FB01 will recognize the 18 or 19 and send to the correct instrument depending on the preset you have selected.
Alternately, your could have defined la with a value of 0x18 on project initialization and then instead of changing presets, just change the value of la to 0x19 and then put the global variable la in the output strings of each of your translators (if that is all that changed). As you can see there are many ways of accomplishing the same thing.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz