monocasual / giada

Your Hardcore Loop Machine.
https://www.giadamusic.com
GNU General Public License v3.0
1.73k stars 98 forks source link

It would be nice to be able to assign channel to button in midimap file #251

Open KjoHansiGlaz opened 5 years ago

KjoHansiGlaz commented 5 years ago

I have a launchpad mini: image

In such controllers, I'd love that channels I add are automatically mapped to the right pad according to their position on the interface. Midimap file could support that, so that anyone can write a script for their controller:

channel_mapping = [ ["0", "1", "2", "3", "4", "5", "6", "7"] ["16", "17", "18", "19", "20", "21", "22", "23"] ["32", "33", "34", "35", "36", "37", "38", "39"] ]

I think this enhancement is a cheap version of #112 and #225.

tomek-szczesny commented 5 years ago

I have Lauchpad mini too, and I have already elaborated about extending Giada's midi capability on the forums. I was thinking about exactly the same at some point, but this approach rises a lot of questions. For example, what happens when you press a button assigned to nonexisting channel? What exactly should happen when you press a button? Record, play, or what? How do we introduce such feature so it can work with many differend controllers, not just launchpads? ;)

This is why I was thinking that maybe what you ask for is a template project with pre-mapped buttons for Launchpad Mini. Yup, as simple as that.

Anyway, I'm glad there's more of us launchpadders out there. :)

KjoHansiGlaz commented 5 years ago

Tomek Szczęsny:

I have Lauchpad mini too, and I have already elaborated about extending Giada's midi capability on the forums.

I think I read them!

I was thinking about exactly the same at some point, but this approach rises a lot of questions. For example, what happens when you press a button assigned to nonexisting channel?

On bitwig, press a button on a nonexisting channel does nothing, buttons with existing channels are lit (orange).

What exactly should happen when you press a button? Record, play, or what?

I'd expect play, unless the channel is somehow armed for recording. At least it's what happens on bitwig and it works well.

How do we introduce such feature so it can work with many differend controllers, not just launchpads? ;)

I think such a feature would work for all grid controllers (APC, MPC, Maschine, Base, etc.) with a configuration script to define the controller MIDI message for each position.

This is why I was thinking that maybe what you ask for is a template project with pre-mapped buttons for Launchpad Mini. Yup, as simple as that.

Perhaps, but as far as I know it's impossible to transform a MIDI channel to a sample channel, so the template way looks difficult unless you know by advance which kind of channels you'll need.

tomek-szczesny commented 5 years ago

Okay, I'm not the one to make any decisions around here, but you're beginning to convince me that this is a better idea than nothing. After all, the whole idea of midimaps might be replaced with scripting engine in unforeseen future, but for now this will do.

I'd expect play, unless the channel is somehow armed for recording. At least it's what happens on bitwig and it works well.

That would work pretty well with my idea of grid controller "function keys", kinda like Ctrl or Shift keys work. I experimented with channel muting, solo, and arming like that and that worked nicely. This way, the default action would be "play" indeed.