MPC-Style Note Repeat Functionality

jessetal

2015-06-10 19:54:08

Hi!

I'd like to add note repeat functionality to a MIDI controller that doesn't have that feature. I would like to set up four buttons on my controller to act as modifiers at different beat resolutions (e.g. 1/4, 1/8. 1/16, 1/32) so that if I hold down any one of the modifier buttons and press a note on my controller, the note will be repeated at the beat resolution assigned to each particular button. Can you suggest how to set up something like that?

DvlsAdvct

2015-06-10 20:09:51

Hi jessetal

This is doable, but a bit complicated. First, you are going to need to receive MIDI clock from your source software. This should come in the style of a repetitive F8 signal. This F8 signal will be sent 24 times per beat. From there we can do some counting to make sure that triggers go off every 24 clicks (1/4 note), 12 clicks (1/8 note), 6 clicks (1/16 note) and 3 clicks (1/32 note). From there it's just math and buttons. Can you get MIDI clock from your application?

Thanks
Jared

jessetal

2015-06-10 20:36:02

Thanks for that quick feedback, Jared!

I'm sure that I can get a DAW (I use Logic, Live, Studio One, and Reason on a MacBook Pro) to transmit MIDI clock but can MIDI Translator receive and interpret such data?

DvlsAdvct

2015-06-10 20:39:17

It can receive it, yes. But interpreting it requires work. We will need to use a variety of translators and some math to make it do what we want it to do.

jessetal

2015-06-10 20:42:40

Wow. I don't know where to begin. :-/

DvlsAdvct

2015-06-10 21:27:57

I'll get you started this evening when I get home from the day job. There's a lot to do for what you're looking at, but it is manageable.

jessetal

2015-06-10 21:35:40

I definitely appreciate it, Jared!

I can generally work my head around mapping ttols like MIDI Translator and Better Touch Tools but the whole MIDI clock angle is new ground for me.

DvlsAdvct

2015-06-10 21:38:38

Before I dig in to how to handle this, have you used MT Pro before? Or built projects with it? Are you comfortable with variables and timers?

J

jessetal

2015-06-11 21:11:27

I'm totally new to MT (just bought it yesterday) but I understand the general principles of modifying hardware controller source behaviour with MT actions and variables to create modified output behaviour. The timer concept, however, is pretty new to me. I've just recently been introduced to it re: the JunXion app and now MT.

DvlsAdvct

2015-06-11 21:28:39

Awesome, that gives us something to work with.

Timers are used to either set delays or repetition to commands, as well as storing global variable states so they can be recalled in other presets. For this usage there are a couple of features you're going to have to implement to make it work. Fortunately, however, I started building something similar for a different use case.

First, what I'd recommend doing is creating a different preset for each resolution you are working with. Second, you are going to need a preset dedicated to receiving the MIDI Clock, and from there managing which preset will be active. There are some qualifiers we will need to put in, things like not activating the preset until the downbeat to make sure everything is sync'd, or at least until it reaches a multiple of the resolution (it won't start the 1/8 note until it is an actual 1/8th note).

We are also going to need to make sure the preset only activates on the press of the pad you want to repeat. Are you going to need to repeat multiple pads? If so, will they need to be repeated at different rates? Also, will there be an upper limit of how many pads you want to repeat?

There's a lot to it, but we'll be able to get it working.
J

jessetal

2015-06-12 21:44:12

Thanks for that additional feedback, Jared!

I was thinking about just a monophonic implementation of the note repeat function -- so just one repeating mote at a time.

From what I understand from your latest feedback, the various note repeat resoluion options should each be set up as individual MT patches/presets. Of that's the case, would we still be able to select each note resolution patch from its own button on a physical conteoller?

Just asking because, ideally, the kdea is to be able to first select a desired note resolution setting by pressing the corresponding assigned selector button on a MIDI controller and then pressing and holding the key or pad sending MIDI note output.

For the selection buttons, I realise that there are several options: 1 knob that selects from a range of note resolution settings when turned, buttons assigned to individual note resolution settings (toggle), or a similar setup, but on a momentary basis, somthat both the selector button and the key/pad would have to be long-pressed to engage the note repeat MIDI effect. From my limited MIDI mapping knowledge, I'm guessing that a toggle setup would involve two note-on commands -- once to engage, once to disemgage, and that the momentary selector alternative would require note-on and note-off commands? I guess a fourth physical controller option would be a slider selection setup similar to the knob selection described above. I'm leaning towards the momentary setup because I thin that it would provide greater live performance flexibility: release the momentary selection button for a particular note resolution and you're immediately back in regular play mode -- without the need for a second button press to disengage.

DvlsAdvct

2015-06-12 21:54:42

I think a toggle to activate it makes sense, but then make the pads themselves momentary. So, the way I've set something similar up in the past is:

1 fader (knob would work just as easily) to set the rate of the repeat
1 button to start listening for MIDI clock. I use this as a toggle to keep MT from processing all of the data when it isn't needed. It also allows me to make sure my count is starting on the downbeat, and stays in sync
The same buttons you use for the triggers would then send repeats. It can only get so fine (I think 1/12th note or something) because you need to send on an on and off signal, depending on the software that's receiving. I would set this up with a number of presets and timers, but once they start communicating back and forth everything starts making sense. I can start with some plans during the weekend in the thread and you can start building from there, if that works.

J

jessetal

2015-06-13 04:54:26

Thanks, Jared -- that sounds like a plan!