Crates.io | etc-express-midi |
lib.rs | etc-express-midi |
version | 0.2.1 |
source | src |
created_at | 2023-08-02 22:06:36.537258 |
updated_at | 2023-08-02 22:06:36.537258 |
description | Control the ETC Express lighting console using MIDI commands. |
homepage | https://github.com/BrenekH/etc-express-midi#readme |
repository | https://github.com/BrenekH/etc-express-midi |
max_upload_size | |
id | 933176 |
size | 23,953 |
Rust library to control the ETC Express lighting console using MIDI commands.
This library contains 2 methods of interacting with the Express console:
Method 1 uses MIDI instrument commands to interact with the cue and macro functionality of the Express. Any USB to MIDI adapter should work with this method.
Method 2 uses MIDI Show Control to operate the Express. This method requires a MIDI adapter that passes SysEx commands.
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(())
}
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(())
}