muting incoming midi

an3

2017-01-02 23:49:08

i would like to assign a switch (CC 114 ch16 ) to enable and disable the midi in from - to a certain device. what would be the simplest way to do this:

im using a bomebox and the novation circuit midi out din channel 1 + 2 goes to the in of Roland A-01 usb midi:

so

sjcaldwell

2017-01-03 00:02:32

The way I approached this to have every device sent to what I call the Bome Global channel. In my case 13.

Set a global variable that when it is 0, it disables routing to any channel. When it is 1, it passes on to the desired channel. In my case I have a midi controller that I can use Bome to redirect to any given channel. I use a 16 bit, bit map to save on global variables.

If bit 0 is set it enables channel 1, if bit 0 is off it disables.
If bit 1 is set it enables channel 2, if bit 1 is off, channel 2 is disabled.

and so on.

You can use CC input on ch 16 to select and deselect various channels. I also use bit map here.

You can probably use my bmt file that I posted a few weeks ago and strip off the areas that are not related to channel mapping.

Here is the link to my post.

I have lots of other interesting stuff there as well.

an3

2017-01-03 00:12:10

thank u. it is a bit of an overwhelming patch: could u please tell me the route in ur patch from a button press to these global variation to the midi output.

sjcaldwell

2017-01-03 00:40:12

an3 wrote:thank u. it is a bit of an overwhelming patch: could u please tell me the route in ur patch from a button press to these global variation to the midi output.
The actual note routing takes place in Alesis Split Upper Keyboard Routing and Alesis Split Lower Keyboard Routing presets. Each translator within the preset is a given channel

The settings of the routing actually happens in LaunchPad Controls preset translators

Map Alesis Upper Channel
and
Map Alesis Lower Channel

gk is the bitmap variable controlling routes the upper part of the split point
gt is the bitmap variable controlling routes the lower part of the split point

If you don't need a split point, you can just use one of the two variables. There is logic in the translator that only plays notes above
or below the given split point "gs" that you would need to remove.

Without a split point, i consider everything upper (split point of 0).

an3

2017-01-03 10:50:21

thank u for the feedback. it is really too complicated patch for me to break it down with ur instructions,

to simplify it to my noob level :) :

1:>> iff Cc115 = 0 input string: all notes channel 1 from port A will be muted

this needs a rule : the global variable ?: if etc (what woudl the string be) ?

if rules apply: all notes channel 1 ? WHat would be the outgoing string ?

sjcaldwell

2017-01-03 14:37:58

It may be a while since I now have to get back to my day job. But I'll take a look when I get a chance. Do you want to learn BMT or just have someone write your program for you? I gave you the strategy but ultimately if you want to learn BMT you need to dig in.
I spend many hours on this. Some on the forum (for general idea) but ultimately had to dig in with a lot of trial an error. Right now I only have time to point you to some actual working code.

There are really no shortcuts unless perhaps you want to pay someone to write your solution for you. I'm sure there are proficient BMT skills out there. Maybe someone else will chime in until and if I get the time to break it down further.

an3

2017-01-03 15:53:36

hi. of course i wanna elarn, but it s not an or or for me: i m workin on a template for my launchcontrol, and my nxt show is saturday: so i try to get as far as i can, and continue in learning mode, but i also need to do more, so my learnning speed is moderate.

sjcaldwell

2017-01-03 16:43:38

So I guess your options for your next gig is

1 - Plan B (what did you do before BMT)?
2 - Spend time and figure it out (yes we are all busy)
3 - Hope/beg that someone else has time to do it for you (free or paid)

Again, I'm happy to help if I have time with a more targeted example but no guarantees for your current timeline.

However I'm unclear on what you are trying to disable? From which device and to which device and which device has the control
that you want to use to disable.

You want to disable midi from which device to which device (disable data to your Roland? from what your Novation Circuit Midi?)
Do you want to disable only performance data (date from the keyboard) or also other midi info (CC Sysex etc)
Do you want to disable all channels or just one?
What device do you want to use to enable and disable the routing? (Hopefully not the same device you are disabling)?

an3

2017-01-03 17:00:25

i think u misunderstood me, or u think im 12 :wink:

i was saying my Deadlines & learning process go hand to hand, but now im on a tight deadline, so i could use tips that are small and pragmatic: The learning the program deeper comes with time: programming is not a hobby for me: it is a means to get my controller in a larger hardware setup to control several synths.

ive done this in several ways over the years, but recently purchased the bomebox and of course want to use it asap. before i was using an ipad mini with touchosc. very nice, but touching a piece of glass, doesnt cut it physically

novation circuit sends out channel 1 midi sequences, which i sent to 2 other synths, but i wanna be able to switch the synths off, cause i dont wanna use them every song: and i know i can turn the volume down.. but that is something i forget, or forget to turn it on (multitask to the max live)

right now i can only think of making a toggle switch, that makes all notes pass or turns all notes into a note oFF.
tnx

sjcaldwell

2017-01-03 17:05:23

Sorry if I misunderstood. No didn't think you were 12.

Hopefully either someone else can jump in or I can free up some time to help you before your next gig. Otherwise, volume down would likely be the short term answer.

sjcaldwell

2017-01-03 17:37:39

Something like this might help. Note untested quick hack. Hope it helps.

There are 4 devices

Controlling device
Sequencer
Synth1
Synth2

You enable/disable the synths by setting or resetting a variable. g1 for synth 1 and g2 for synth 2
You monitor for incoming notes on you Sequencer and if disabled, ignore otherwise pass them to the appropriate channel (which you need to set)
Attachments
Midi-Routing-Example-2017-01-03.bmtp
(4.21 KiB) Downloaded 169 times

an3

2017-01-03 23:21:55

tnx!! i can comprehent this order, will try tomorrow. keep u updated
xo

an3

2017-01-04 19:45:57

Thanks,
works like a charm. :)


the only problem i run in now:
Channel one is also getting a octave transpose: same mid out to same midi in same channel: result no octave change.

I guess everyhing runs parallel: can (or can u ?) u feed one translator Preset into another?!

sjcaldwell

2017-01-04 20:08:14

an3 wrote:Thanks,
works like a charm. :)


the only problem i run in now:
Channel one is also getting a octave transpose: same mid out to same midi in same channel: result no octave change.

I guess everyhing runs parallel: can (or can u ?) u feed one translator Preset into another?!
You cannot feed one translator output to another translator input, but you can have two translators that have separate outgoing actions and each translator can have it's own rules (like subtract or add 12 to the incoming note value before sending it out).

You can also have each translator direct to a different output device so if you have 2 devices on channel one, you can specify which device you want the output to go.

an3

2017-01-04 20:47:09

Thanks, that is not what i mean: the problem is: (i use one of the synths im using for this example )

:>> channel one of my Nov. Circuit is sending notes from Din out to USB in of my A-01

I ve made a translator preset where my Nov. Launchcontrol sends an Octave - and + with a max of 3 steps: So i can transpose the incoming notes from my Nov. Circuit steps up and down.

+ the translator u added: Turning on and off The incoming notes from Channel 1 that go to my A-01

if i have both presets enabled in BMT, the octave -/+ does still works, but the muting the A-01 (since it runs parallel) does not work anymore.

sjcaldwell

2017-01-04 21:12:23

Not sure I understand. Post your file and I will take a look.
Are you saying it doesn't transpose or doesn't mute.

When I do tranpose, I set another global variable to the transposed amount. I can then modify any outgoing messages to add (or subtract) that value from the incoming note. Since it is a global variable it will work across all translators.

My original example I point you to has a set of transpose variables

gw - transpose lower (octave=12)
gx - transpose upper (octave=12)


In the below example I'm using rr as the outgoing note.

Code: Select all

//Turn on any transposing
rr=rr+gw

an3

2017-01-04 21:29:52

it doesnt mute:

the two parts i am talking a bout are enabled

tnx
Attachments
yEs!yEs! template v1.bmtp
(22.32 KiB) Downloaded 149 times

sjcaldwell

2017-01-04 21:43:24

an3 wrote:it doesnt mute:

the two parts i am talking a bout are enabled

tnx
Any translator that you are sending out notes need to have this in this rule to align with the strategy of using these global variables to control muting.

Code: Select all

// For synth 1
if g1==0 then exit rules, skip Outgoing Action
// For synth 2
if g2==0 then exit rules, skip Outgoing Action
The other way to do this is to put all your outgoing note messages in a set of separate presets and then create translators to enable/disable the preset for that synth

IE

Synth One Preset
... All synth one translator outputs in here

Synth Two Preset
... All synth two translator outputs here.

The new rule would be change your controller cc to disable or enable the appropriate preset instead of using a global variable.

an3

2017-01-04 22:17:36

hi, these rules are in it, so i m dont udnerstand what u aretrying to say

sjcaldwell

2017-01-04 22:30:36

4.1 and 4.2 both need to have this rule as well since your are outputting notes on those translators.

an3

2017-01-04 22:45:23

if i add ' if g1==0 then exit rules, skip Outgoing Action '
into ruls of 4.1 (2 not necessary since note off is recognized as note on on A-01 )

it gets and stays muted

sjcaldwell

2017-01-04 23:02:33

an3 wrote:if i add ' if g1==0 then exit rules, skip Outgoing Action '
into ruls of 4.1 (2 not necessary since note off is recognized as note on on A-01 )

it gets and stays muted
4.1 and 4.2 are getting intput from Circuit. Not A-01
Just like translators 3.1 - 3.4

Maybe you turn on logging and figure out which one is passing the output.

an3

2017-01-04 23:08:59

yes right but i meant they send signal to A-01

sjcaldwell

2017-01-04 23:15:04

My point is you our muting output by disabling input.

Translators 3.1 through 3.4 are disabling anything coming from Circuit. But translators 4.1 and 4.2 are not.

Swallow does not cause translators further down for executing. All swallow does is disable any default routes (which you have none anyway).

an3

2017-01-04 23:18:03

I dont understand, cause when it s enabled im using the octave -/+ not when it muted.

but in the meantime
i changed 4.1 incoming to channel 16 like in 3.1 (init) the mute works, but then the octave doesnt work anymore


UPDATE.. changing it back to chanell 1 it suddenly works both the muting as well as the octave.

Lost now. pick it up tomorrow


tnx for ur assistancet ill now :)) Big Up!!!