I’m trying to create a preset that takes an incoming CC trigger that will fade in or out the sound from an attached synth. I have managed to get something working that approximates what I want but my problem is that I don’t really understand timers. I haven’t been able to find any information that really explains the ‘mechanics’ behind timers.
In the preset concerned, I have a translator that accepts a CC input from a footswitch (Nektar Pacer) in toggle mode which gives alternately a 0 or 100. This value is stored in a global variable as ‘Target Volume’. The translator ‘creates’? a timer in Outgoing Action.
A second translator reacts to the timer (Incoming Action) and in the Rules another global variable ‘Current Volume’ is either incremented or decremented base on the target value. Current volume is then output. When the current value=target value, skip rules happens (before the increments or decrements).
My timer is configured for Multiple Times Repeat Count = 10, Initial Duration = 500ms, Repeat Duration = 500ms
The fade out is faster than the fade in, but my question is more about the general operation of timers and how best to perform this relatively simple operation.
By the way, this is just a part of a very successful and useful project. I’m very much looking forward to the release of the new Bome Box as I currently don’t have one.
For a fader timer you will need to consider the following:
The interval you want to trigger the timer
The number of times you want to trigger the timer
The amount of increment or decrement you want the outgoing value to be for each trigger.
The below example should help. What it does is slow down the movement of a fader when it is moved so that it flows smoother.
In this case I use a repeating timer until it is killed and kill the timer when it has reached the target value.
Translator 0.0 takes the incoming value which is the target value and starts the timer. In the rules, I set the duration to 30ms.
Translator 0.1 is the timer and increments or decrements the value by 1 until the target value is achieved or we hit the limits of 0 and 127. Once either of those cases is met, It calls translator 0.2 using rules, which kills the timer.
I use the global variable ga for the target value, and gb for the current value.
Thanks very much for your prompt and comprehensive reply, Steve. I’m currently getting my head around your project. I will strip out the unnecessary detail from my fader project and send it in the hope of your opinion.
Here’s my stripped down file. I’ve checked it works but was wary that it might have some hidden side effects, like, do I need to kill the timer? It’s different to your example as it simply converts an single abrupt change to a 10 step fade in/out over 1 second.
Thanks for looking into it, Steve. I’m led to believe that manufacturers tend to set MIDI Master Volume at 100 but I don’t know for sure.
I’m still a newbie with Bome but so far I’ve managed to get it to do everything I’ve wanted, including some fairly involved Sysex. The only limitation I’ve come across lies not within Bome but a particular equipment manufacturer’s MIDI implementation. I won’t mention any names but leave it to any readers to hazard a guess
All the best and get that new Bome Box out soon so I can say ‘Look Mum, no computer’.