#midi #express #lighting #api-bindings #etc

etc-express-midi

使用 MIDI 命令控制 ETC Express 灯光控制台

1 个不稳定版本

0.2.1 2023年8月2日

#587音频

MIT 许可证

23KB
242

ETC Express MIDI

Rust 库,用于通过 MIDI 命令控制 ETC Express 灯光控制台。

此库包含与 Express 控制台交互的 2 种方法

  • 方法 1 使用 MIDI 乐器命令与 Express 的提示和宏功能交互。任何 USB 到 MIDI 适配器都应与此方法兼容。

  • 方法 2 使用 MIDI Show Control 操作 Express。此方法需要能够传递 SysEx 命令的 MIDI 适配器。

示例

ETC MIDI

use etc_express_midi::{MidiOutput, ConsoleETCMidi, FaderPair};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let midi_client = MidiOutput::new("ETC MIDI Example")?;
    let midi_ports = midi_client.ports();

    let midi_port_index = 0; // The index of the desired controller
    let midi_conn = midi_client.connect(&(midi_ports[midi_port_index]), "Example Output")?;

    let express_midi_channel = 1;
    let mut express_console = ConsoleETCMidi::new(midi_conn, express_midi_channel);

    // Execute the next cue in the CD fader pair
    express_console.go(FaderPair::CD)?;

    Ok(())
}

MIDI Show Control

use etc_express_midi::{MidiOutput, ConsoleMSC, FaderPair};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let midi_client = MidiOutput::new("ETC MSC Example")?;
    let midi_ports = midi_client.ports();

    let midi_port_index = 0; // The index of the desired controller
    let midi_conn = midi_client.connect(&(midi_ports[midi_port_index]), "Example Output")?;

    let msc_device_id = 1;
    let mut express_console = ConsoleMSC::new(midi_conn, msc_device_id);

    // Execute the next cue in the CD fader pair
    express_console.go(FaderPair::CD)?;

    Ok(())
}

依赖项

~0.5–28MB
~372K SLoC