Hi there,
One of my machine has the unfortunate behavior of sending out CC values when the when clock is stopped (or rather, when double pressing the stop button on that machine).
Here is what the midi messages look like:
That’s an expected behavior that can have the inconvenience of messing with the synth patch of another machine. Being that they share -on purpose- the same midi channel and CCs.
-
I’m looking for a way using Midihub modules to temporarily filter out the messages that are being sent after the Stop message, for a duration of 200 ms for instance
-
Another possible solution would be to toggle a Filter module using the CC 123
of value 0
that we can see is sent just before all annoying CC’s; but I couldn’t figure out how
Is that possible ?
Regards,
David
Hey, David
I guess the first question is do these CC#s have a valid meaning from the source synth in other contexts? (I’ve got one where I can just filter them all the time)
I’m guessing you need to go beyond this simple solution so try this:
- have a Stop → CC transform create a mapping which does two things
- first it enables a
CC Range Filter
- second it triggers either a One Shot LFO or † creates a Note On with a fixed length
- the LFO last value/ the Note Off then creates a mapping which disables the above
CC Range Filter
† the choice depends on what else is going through the pipeline.
If you decide to use an LFO, go for a 180°phase Saw Up/Down to give a countdown:
(test the output @ 128Hz with your chosen period to ascertain the last value.)
So, essentially both work this way:
- Stop enables a filter which blocks those CCs, and…
- …sets a timer, after which the filter is disabled and we carry on as normal
Indeed ^^
Ah using an LFO for that is smart !
It’s not clear to me how the Note On solution would allow to disable the filter after a defined duration → It’s the length of the note that sets the duration ?
In my previous attemps was not able to have a “toggle” behavior on the filter though: I was only able to either only disable it, or only enable it. What exactly does “bypass” mapping expect to be turned on and off ?
Thanks for your help @resonotter !
No, Using the Note_On (rather than the One-Shot LFO) is just a way to be able to set a pause by using the Length pipe. You then use the Note_Off to Transform to an “Un-Bypass” mapping. I don’t often use it as a technique cos you have to take extra filter measures if the pipeline has notes flowing through it.
Actually, as you only need an On|Off, try playing with One-Shot Square or PCM
I tend to think of toggle as 2 separate external actions.
(described here in Virtual Mappings Techniques topic)
Here we’re talking On → pause → Off from 1 external action by using the techniques hinted at.
Happy to sketch it for you or to give screenshot hint but don’t want to steal the fun of creating it yourself! Lemme know…
Ah yes I see what you mean, that’s actually the case here
In LFO settings you mean ?
Precisely !
Trying to piece that together right now, I’ll let you know in few minutes how that goes !
1 Like
Yeah, SQ/PCM are nice cos you just get On/Off.
play with phase to get it right.
I default to Saw cos I often want a ramp of values but that’s not needed here
(no big deal tho’ cos once value dips below 64 it’ll turn your Bypass off – doesn’t matter if you send Off more than once!)
Yes I see
So not much success on my end: Toggle CC filter with LFO.mhp (2.0 KB)
- CC filter starts with
Bypass
=True
- CC filter
Bypass
setting is mapped to CC 123
(Ch. 11
)
- LFO seems to correctly send
CC 123 127
then CC 123 0
one second later
Observed:
- Pressing double stop correctly un-bypass CC filter → I’m not sure it’s caused by LFO of just the CC getting sent by machine
- But the LFO does not re-bypass CC filter again after 1 sec
I’ve also tried inverting phase but no luck
Any idea what’s wrong @resonotter ?
I’ll take a look and edit this when done…
OK, this adapts yours to just show toggling by LFO (it uses a virtual OUT in order to “register” the virtual mapping.
Toggled CC filter by LFO(reso).mhp
I was thinking of the LFO on a separate line.
while you’re testing the above that I’ll sketch that out
Thanks @resonotter !
Ps: message above updated for clarity
OK, here’s the approach I’d take
The incoming CC123 val=0 is Transformed to CC123 val=127
This enacts the CC RF
The separate LFO disables it
PS. I reverted to Saw up cos it felt cleaner
PPS. the pause before Disable CC Range Filter (ie. Re-enable CCs being allowed through again) is 1/8 sec:
EDIT: see post#14 for solution preset
Gotta love virtual mappings, this would be a pain with loopbacks
Got it, good point. I used a Rescale module to change value O
to 127
Got that far but then the LFO seem to not work as expected ^^
First issue I see - although it does not seem critical - is that the LFO will send out CCs when clock starts
Second issue is that the LFO seem to block any CC from going through it, so at this point, the CC123 127
(from pressing Stop button) is not received anymore by the CC Filter module, and so it is not activated anymore
3rd issue I see is that, when LFO does it’s thing, CC 123 value 0 does not re-enable bypass of CC Filter module:
By the way, is virtual mapping really necessary in this case ?
Absolutely yes. Any time you want to use a message either created or modified within MH as a mapping you are in virtual mapping world.
Without virtual mappings what you’re trying to do would need a physical loopback.
That’s why 1.15 is a big leap forward
PS. Note that my “reset” LFO goes to Virtual D which is not in the message flow
I used a Rescale
One can use Rescale, I avoided it simply because I don’t know how else CC123 is used by OT
This should not be the case. The “Timed” thing in Monitor is just to show that it’s MH’s timing system that is triggering these event rather than any incoming
That’s cos it’s done it job and enabled the CC RF and so no subsequent CCs (inc 123!) get through.
That’s one reason why mine has a sep line for LFO
Not all of this makes sense to me ^^
Can you please share your project file so that I can try to reproduce it ?
Sorry, Chris: tired, probably rambling
here tis: CC filter reset by LFO(reso).mhp…
…incoming CC123 enables CC RF for 1/8s before LFO disables it again. That’s it basically
Well you may be tired but you aced it
This is working perfectly, thanks a lot mate !
I dived into it and it’s much clearer what was missing in my attempts:
- a second mapping on bypass of CC filter
- another mapping on retrigger of LFO
That and the virtual channelling of course ^^
1 Like
Good,
As a postscript, Chris, if you always want to Filter out all the CCs you could replace the CC RF by a plain Filter
and have your mappings toggle the Control Change
parameter.
More economical if your main pipeline is multi-purpose and you’re filtering other messages
Ah that’s a good idea indeed !
Thanks a lot
1 Like