为了让大神们破解 Push2,于是 Ableton 发布了 Push2 开发者白皮书

/ 阅读:891
作者: 威威

Push 2 是 Ableton Live 的专属专属控制器,虽然本质上来说这货依然是一枚 MIDI 控制,但 Push 要比一般 MIDI 控制器要复杂的多。除了 Ableton Live 以外,要在其他 DAW 和 DJ 软件中使用 Push 可不是一件容易的事情。虽然已经有大神这么做了,但毕竟是少数。原因就是 Push 2 可不像 Launchpad 那样单纯。很多会认为这是 Ableton 想要保证 Push 专一性的结果,不过实际上 Ableton 还是希望大家玩开一点,于是乎 Ableton 就发布了 Push 2 的开发者白皮书。

这本白皮书不仅仅包含了 MIDI 详细信息,还有更多的细致内容,比如彩色显示屏如何产生特别的颜色标识,以及动画,甚至图案的分辨率。这本白皮书不仅仅可以教你如何破解 Push2,更深度介绍了 Push 2 的工作原理。这本书细致到什么程度?说不定你都能照着这 “说明书” 组装一台 Push 2 了呢。

然而 Ableton 的目的当然不是让你山寨一台 Push 2,而是挖掘 Push 2 的更多潜能,比如定制 Push 2 屏幕上的图案,为 Push 2 客制 Max For Live 插件等等。如果你是 Max For Live 甚至是其他音频软件的开发者十分建议看看这本书,这样你就知道如何让 Push 2 支持你想要它控制的功能。甚至 Ableton 还希望透过这本书,能够设计出属于自己的 DIY 控制器。尽管 Ableton 的对手+友商们都能自己搞定,不过这是否意味着其他 Ableton Live 控制器都要进入了一个新的阶段?

但这并不意味着 Push 2 就是完全 “开源” 了,这些资源还是 Ableton 的专利,只不过大家都可以使用它们:

https://github.com/Ableton/push-interface

总之对 Push 2 和 Live 有兴趣的人都应该看看,希望国内厂商看完之后能有所启发。

 

详细目录:

1. Introduction

1.1. Purpose

1.2. Architecture Overview

2. MIDI Interface

2.1. MIDI Interface Access

2.2. MIDI Messages

2.3. MIDI Mapping

2.4. Sysex Commands

2.4.1. General Command Format

2.4.2. Command List

2.5. MIDI Mode

2.6. LEDs

2.6.1. Setting LED Colors

2.6.2. RGB LED Color Processing

2.6.3. White LED Color Processing

2.6.4. Touch Strip LED Color Processing

2.6.5. Default Color Palettes

2.6.6. White Balance

2.6.7. Global LED Brightness

2.6.8. LED Animation

2.6.9. PWM Frequency

2.7. Buttons

2.8. Pads

2.8.1. Velocity Curve

2.8.2. Pad Parameters

2.8.3. Individual Pad Calibration

2.8.4. Aftertouch

2.9. Encoders

2.10. Touch Strip

2.10.1. Touch Strip Configuration

2.11. Pedals

2.11.1. Pedal Sampling

2.11.2. Pedal Configuration

2.12. Display Backlight

2.13. Device Inquiry

2.14. Statistics

3. Display Interface

3.1. USB Display Interface Access

3.2. Display Interface Protocol

3.2.1. Frame Header

3.2.2. Pixel Data

3.2.3. Pixel Color Encoding

3.2.4. XORing Pixel Data

3.2.5. Frame Buffering

3.2.6. Allocating Libusb Transfers

4. Appendix A: MIDI Implementation Chart

 

https://github.com/Ableton/push-interface/blob/master/doc/AbletonPush2MIDIDisplayInterface.asc