BPM Drifter

One idea, three hours of time, and AI Claude for the coding. My first preset for the E1 Mini is ready.

  1. Determine BPM
  2. Speed (BPM x1, x2, x3, or x4)
  3. Range (set value +/- 5, 10, 15, or 20)

The linked values of U-He Diva are already bouncing and the sound is not static/boring.

Dial Red - Frequency
Dial Yellow - Resonance & Shape 2
Dial Green - Frequency Mod & Shape 3
Dial Blue - Shape 3

3 Likes

Very nice work - Make public?

Yes, I will do that. But first I need to make a few things more robust.

  1. Only tested under Ableton.
  2. The BPM detection is not yet working properly –
    I derive the BPM from the ‘ticks’ sent by the DAW. If you activate MIDI ports 1 & 2 = ‘double number of ticks’. If you only have MIDI port 1 or 2 = ‘normal number of ticks’.

So it’s more of a proof of concept than a really good preset. Hopefully someone with the right LUA knowledge will pick up on this :wink:

2 Likes

I assume you use the Transport in E1? If so, you are intercepting each MIDI tick coming from a DAW (or any other MIDI clock source) via the onClock callback:

transport.onClock(midiInput)

As you see the onClock provides you a table called midiInput. And in this table there should be a member indicating from which port the tick was read. You can use that port info to disregard any ticks coming from the ports you do not want to listen to.

midiInput = {
  interface = MIDI_IO,  -- a name of the IO interface where the messages was received
  port = PORT_1         -- a numeric port identifier
}

This are the possible Identifiers of the hardware MIDI ports.

  • PORT_1
  • PORT_2
  • PORT_CTRL
1 Like