ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

[Feature Desire] Launchpad Pro bidirectional integration #158

Closed TDeagan closed 6 years ago

TDeagan commented 6 years ago

My primary usage for seq64 involves controlling it with a Novation Launchpad Pro. This is straightforward to do with the .rc file with one frustration. If you've ever seen the Launchpad used with Ableton, the Launchpad not only sends messages, but it mirrors the grid control state with its onboard LEDs. Specifically, if you use the computer to trigger a cell/clip in the grid, the appropriate LED changes status (color or light,) to indicate this. This allows you to use the Launchpad without referring to the computer screen since it accurately reflects the actual status of what's going on.

The Launchpad allows external control of the onboard grid LEDs via MIDI and SysEx messages. (https://global.novationmusic.com/sites/default/files/novation/downloads/10598/launchpad-pro-programmers-reference-guide_0.pdf) Its stock firmware also has a special mode to support the bi-directional messaging with Ableton. Novation has recently released an opensource firmware API that allows development of new custom capabilities (https://github.com/dvhdr/launchpad-pro). Currently, when using the Launchpad with Seq64, I control the LEDs with MIDI files (and sometimes an Arduino spitting out MIDI messages,) but it is essentially a static display and not reflective of any changes made within Seq64. My fantasy is that Seq64 would send MIDI messages when UI actions (e.g. Pattern start/stop, etc.) are engaged. An output complement to the external input controls described in the configuration file.

I imagine the need for hooks at all the targeted UI functions (probably the same ones denoted for external control,) that would trigger MIDI output, and code to leverage a new section in the configuration file that defines the desired output from that UI action. Of course, a full solution would have to account for the screen-set up and down (requiring something like hooks into the UI draw code to send the new screen's state to the Launchpad,) it may be that this is an XL or XXL effort. It may also be that programming the Launchpad firmware is required for a decent solution.

I'm interested in coding at this feature, but before I start digging into the source to scope this, anyone have comments or ideas about something like this? I have a full Ableton license, but I would far rather be using seq64 in various gigs and using the Launchpad would make it an Ableton-killer for me. External controllers are what makes Abelton a performace tool (IMHO,) I'd love to see Seq64 be an even more powerful alternative.

ahlstromcj commented 6 years ago

At work now. But check out the issues section of the GitHub project. Some body started on such a thing, but I haven't heard from him for awhile to know how his fork is going. Can get you more details this evening.

On Thu, Aug 30, 2018, 12:20 Tim Deagan notifications@github.com wrote:

My primary usage for seq64 involves controlling it with a Novation Launchpad Pro. This is straightforward to do with the .rc file with one frustration. If you've ever seen the Launchpad used with Ableton, the Launchpad not only sends messages, but it mirrors the grid control state with its onboard LEDs. Specifically, if you use the computer to trigger a cell/clip in the grid, the appropriate LED changes status (color or light,) to indicate this. This allows you to use the Launchpad without referring to the computer screen since it accurately reflects the actual status of what's going on.

The Launchpad allows external control of the onboard grid LEDs via MIDI and SysEx messages. ( https://global.novationmusic.com/sites/default/files/novation/downloads/10598/launchpad-pro-programmers-reference-guide_0.pdf) Its stock firmware also has a special mode to support the bi-directional messaging with Ableton. Novation has recently released an opensource firmware API that allows development of new custom capabilities ( https://github.com/dvhdr/launchpad-pro). Currently, when using the Launchpad with Seq64, I control the LEDs with MIDI files (and sometimes an Arduino spitting out MIDI messages,) but it is essentially a static display and not reflective of any changes made within Seq64. My fantasy is that Seq64 would send MIDI messages when UI actions (e.g. Pattern start/stop, etc.) are engaged. An output complement to the external input controls described in the configuration file.

I imagine the need for hooks at all the targeted UI functions (probably the same ones denoted for external control,) that would trigger MIDI output, and code to leverage a new section in the configuration file that defines the desired output from that UI action. Of course, a full solution would have to account for the screen-set up and down (requiring something like hooks into the UI draw code to send the new screen's state to the Launchpad,) it may be that this is an XL or XXL effort. It may also be that programming the Launchpad firmware is required for a decent solution.

I'm interested in coding at this feature, but before I start digging into the source to scope this, anyone have comments or ideas about something like this? I have a full Ableton license, but I would far rather be using seq64 in various gigs and using the Launchpad would make it an Ableton-killer for me. External controllers are what makes Abelton a performace tool (IMHO,) I'd love to see Seq64 be an even more powerful alternative.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/sequencer64/issues/158, or mute the thread https://github.com/notifications/unsubscribe-auth/AHnVqGyVA90hGviRU0iMHg77i_Q6h3--ks5uWBC1gaJpZM4WTzFq .

TDeagan commented 6 years ago

Frak, I missed that other issue. I'll close this and engage on that thread.

DUPE ISSUE of #58