tap tempo button for guitar fx korgax3000g

laurie1967

2014-04-04 07:21:09

The following is an email trail i should have posted for all to access.

feel free to re-edit and format as needed to make it forum friendly.

attached is the final file.

On Tue, Apr 1, 2014 at 3:18 AM, laurie mooney <laurence_mooney@hotmail.com> wrote:
Hi,

I see on the forum search that Florian answered my 2 byte question back in 2011.


"Now we just need to calculate the two separate values uu and vv to use in the sys ex message. uu is the "high byte" and vv the "low byte":
uu=trunc(qq/128)
vv=qq-(uu*128)

trunc will round down.

so your translator looks like this:
CODE: SELECT ALL
Translator 0: controller to GNX sys ex
Options: stop=false
Incoming: MIDI B0 0E pp
Rules:

uu=qq/128
vv=uu*128
vv=qq-vv
Outgoing: MIDI F0 00 00 10 09 5C 04 41 00 30 09 00 uu vv F7 "

thanks so much for taking my emails. I will be very happy with this for a while and get back to playing music.

just to check though,
performance wise is it better for translators to use specific midi ports rather than all default midi ports?
I have a lot of translators on default ports so is it better to edit them all to look at specific midi ports?

thanks

From: laurence_mooney@hotmail.com
To: jlhelfer@gmail.com; florian.bomers@bome.com
Subject: RE: Bomes Midi Translator Pro : Tap Tempo Translator
Date: Tue, 1 Apr 2014 16:12:34 +1000


Hi,

I made a spreadsheet to calculate the 2 byte value as attached on a range of examples.
My AX3000 successfully read these values in testing the sysex strings F0 42 31 73 00 41 06 00 xx yy F7

To calculate the Most significant byte "XX", I rounded down ( rather than absolute value (my mistake!)) the ms/128 .

And to calculate the least significant byte "YY" I multiplied 128 by the difference of the (ms/128 rounded down) and the ms/128.

So then how do i write a similar calculation for xx and yy in MT?


Thanks again.

From: laurence_mooney@hotmail.com
To: jlhelfer@gmail.com; florian.bomers@bome.com
Subject: RE: Bomes Midi Translator Pro : Tap Tempo Translator
Date: Tue, 1 Apr 2014 11:11:34 +1000

Hi Jared,

Thanks so much for your time.

No drama at all missing the ealier email as I have enjoyed trying to figure this out a bit for myself.

I like your Idea of starting the Timer on the tap footswitch trigger event, rather than letting the timer run all the time like in my case.

I'd love to keep solving this a bit longer myself as it's stretching my problem solving skills.

But what I do need help with is that 2 byte value!
So once i have the Delay time how do I use 1 decimal value and insert it into 2 bytes?
Is there an "absolute value" operator that can strip the whole number leaving me a remainder to apply to the lsb?


You are correct in:
F0 42 31 73 00 41 06 00 xx yy F7
the two bytes that matter are designated by xx and yy

thanks


Date: Mon, 31 Mar 2014 10:56:56 -0400
Subject: Re: Bomes Midi Translator Pro : Tap Tempo Translator
From: jlhelfer@gmail.com
To: laurence_mooney@hotmail.com
CC: florian.bomers@bome.com

Hi Laurie

Sorry for missing the last email, I just missed the quoted section at the bottom. Alright, so here are my thoughts.

What we can do is measure your incoming footswitch presses at a predetermined amount (say... 4 steps) using a combination of global variables and timers. The first press would start the timer, the second, third and fourth would each trigger a 1ms timer and save the amount of ms in each step. Then they would be averaged to a single ms value and that ms value can be converted to MIDI for your two byte info. I may need Florian's help in that conversion, but he's got that maths thing down pretty well when it comes to MIDI.

So would 4 steps be enough for your average tempo? Would you prefer more? We can also put in a cancel command if you hold the footswitch longer than 500ms or something so if you tap it wrong you can just cancel the timers.

If you would rather have Reaper set the clock, you are correct that MT will have a lot of data to measure, but we can tie that to the footswitch as well. For example, we can have MT ignore the clock information until you press the footswitch, then it will listen to the F8 signal (24 steps per beat) and we can figure out a way to measure that until you press the footswitch again and then MT will ignore the data again. It would be different, but similar math to calculate the 2 byte information. Correct me if I'm wrong, but based on what you sent the two bytes that matter are designated by xx and yy

F0 42 31 73 00 41 06 00 xx yy F7

Correct?

Let us know
Jared


On Mon, Mar 31, 2014 at 10:17 AM, laurie mooney <laurence_mooney@hotmail.com> wrote:

Hi,

Please see attached.
i am happy to post this on the forum if needed.

I have made Some incomplete progress myself on this.
i think i am on the right track?

the tap does work on changing the delay on my ax3000g fx unit ( to the approximate amount).


however my maths is still lacking on how to get the correct delay time to match the tap interval.
so i need to convert the interval time from ms into a 2 byte value.
the most significant byte was the delay in ms / 128.
but i am left with a remainder that i cant easily apply to the least significant byte.
without doing about 23 if then expressions, is there an easy formula for converting a number into 2 bytes?


I reckon if I use a clock interval of 100 ms that would give me enough accuracy.

this is because My concern is not to get latency on other midi notes (with a slow computer running Vista 2 gb Ramm)
There maybe also some mistakes & inefficiencies in me having selected my other translators (unrelated to this tap tempo) to work with all default midi ports rather than specific ones?

I assume it is more efficient to use specific rather than multiple default ports?

thanks


From: laurence_mooney@hotmail.com
To: jlhelfer@gmail.com; florian.bomers@bome.com
Subject: RE: Bomes Midi Translator Pro : Tap Tempo Translator
Date: Tue, 25 Mar 2014 23:08:11 +1000



Hi,

Thank you for your time with this.
I am impressed with your eagerness to support the product.
I have seen some similar questions on the MT forum.

Sorry for my delay in responding but after a big re-install of Windows vista I am again now really keen to get this working.

to answer your questions below i have used purple.

Also, attached is my test file for this.

Just an extra note too: the maximum and minimum delay time 'desirable' range on my effect unit (Korg AX3000G) that I reckon i would want would be 320ms till 2700ms, but I might want to have an option to limit these ranges further and also i'd want to ignore wild unusable times if the tap tempo was hit too far apart or double hit by mistake.


Thanks



Date: Thu, 24 Oct 2013 11:30:02 -0400
Subject: Re: Bomes Midi Translator Pro : Tap Tempo Translator
From: jlhelfer@gmail.com
To: laurence_mooney@hotmail.com; Florian.Bomers@bome.com

Hi Laurence

I'd be more than happy to take a look at this. Do you want to have the tap tempo from the footswitch send out to your effects device, or from the output of Reaper?
Whatever is easiest on the computer and not interfere with other midi traffic latency etc. My feeling is that the footswitch send out would be easier and less data to manage.
The midi message for the tap tempo switch is MIDI C0 03.
Having said that the midi clock out from reaper would be more useful than the footswitch if a remix / overdubb were necessary. So perhaps the option for either would be an advantage.


If it's the output from Reaper, how does Reaper output clock signal?
Midi clock messages are via a maple virtual midi port between reaper and Miditranslator. but this maybe seems like a lot more data for MT to monitor all the time??!

Also, can you send me the format for the Sysex message your effects device is looking for?
See attached for more detail.
But also here is an example where the 2nd last and 3rd last bytes appear to be the value bytes for he delay time.
MIDI F0 42 31 73 00 41 06 00 13 62 F7

Thanks
J


On Thu, Oct 24, 2013 at 3:49 AM, Florian Bomers <Florian.Bomers@bome.com> wrote:
Hi Jared,

forwarding a question how to measure the time between consecutive MIDI
messages to implement a Tap Tempo function. I guess the only way
currently possible in MT is to define a 1 millisecond repeating timer
that keeps on incrementing a global "clock" variable. Then you can
remember the time of the incoming MIDI message in one global variable,
and upon the next MIDI message, take the clock difference and convert
to the tempo format needed in the Sys Ex message.

Laurence: Jared will follow up with you!

Sounds like an interesting use of MT, maybe you two can follow up on
the forums so that other folks can participate? I also believe there
has been a similar question, or at least someone who ended up using
such a "clock" variable.

Thanks!
Florian


-------- Original Message --------
Subject: Bomes Midi Translator Pro : Tap Tempo Translator
Date: Tue, 22 Oct 2013 09:15:35 +0000
From: Laurence Mooney <laurence_mooney@hotmail.com>
To: florian-form@bome.com

Hi
I am a paid registered user of Bomes Midi Translator Pro.

Thanks for your time to consider my challenge.

I would like to replicate a Tap Tempo from a Midi Trigger event that I
can generate from my midi footswitch.

I am able to specify an incoming Midi event to act as a tap tempo ‘pulse’.
I have managed to successfully send a range of midi SYS EX messages
to my Effects device to change it's delay time.

What I can’t do is somehow measure the time interval between a
specific incoming midi events ( triggered via the footswitch) , so
that I can then convert this value into the desired sys ex output .


As an aside bit of info:
My DAW software (Reaper) can already successfully use the same
incoming Midi event as a tap tempo ‘pulse’ and match it’s tempo in
beats per minute.
Further I can output midi clock out a virtual midi output that I can
route back into Bomes Midi Translator.
But yet again I can’t convert this into a midi sysex message that I
can send to my Effects device to change it’s delay time.


Thanks Again , hoping you can help solve this challenge.
Attachments
tap tempo.bmtp
(1.22 KiB) Downloaded 190 times