Ableton / push-interface

The Ableton Push 2 MIDI and display interface manual.
647 stars 74 forks source link

New JSON file describing the Push 2 MIDI interface in a machine readable format. #17

Closed coral closed 6 years ago

coral commented 7 years ago

Hey, I needed a good description of the Push 2 in a machine readable format so i created this JSON file that describes every pad and button on the Push 2. It makes it easy for someone implementing to quickly integrate the buttons and map stuff up.

rsu-ableton commented 6 years ago

Sorry, for the delay, it's actually a good idea to have such a file.

Before pulling, please consider following improvements:

The Select button is doubled in the list (that's the only obvious error).

More semantical names for elements:

The type property per element is redundant with the list name.

The slider message is "pitchbend" by default, but of course that can be configured, so it could be misleading to add a message property. Also, you did not represent the pedals at all (but these are also configurable, so it would make not sense, perhaps).

The "layout" structure is really cool, btw.

coral commented 6 years ago

@rsu-ableton

Changed everything based on your suggestions. I have no foot pedal to test with so no idea how it behaves, documentation is a bit unclear. Feel free to add.

Fixed the double Select.

Go ahead and merge it in if you like it!

rsu-ableton commented 6 years ago

Thanks for the update. There's a misunderstanding about the names of the rotary encoders. I was not clear enough - the idea was to call the Rotary Encoder 1 "Tempo Encoder", not "RE1: Tempo Encoder", as the colon thing is a bit clumsy. On the other hand, having a position in the name seems to be useful, especially because the encoders on the unit are not labeled. So probably we should keep your current variant. Let me know what you think.

coral commented 6 years ago

@rsu-ableton I think you are right that it shouldn't clutter the name, however i still found position very beneficial when implementing the Push2 into my own app so i settled on a compromise:

{ "Number": 78, "Message": "cc", "Name": "Track8 Encoder", "Position": 10, "Touch": { "Number": 7, "Message": "note" } },

I added a "Position" entity that just lists the encoders position.

coral commented 6 years ago

@rsu-ableton also i want to add that Ableton 10 is amazing.

rsu-ableton commented 6 years ago

Very nice solution with the Position property!