xsynth-realtime 0.4.0

A real-time MIDI synthesizer using XSynth.
Documentation
# xsynth-realtime

The real-time rendering module within XSynth. Currently it outputs audio using `cpal`.

It uses an asynchronous event sending system for high performance and simple to use API.

## Documentation

You can find all the necessary documentation about the XSynth realtime API here: [https://docs.rs/xsynth-realtime](https://docs.rs/xsynth-realtime).

## Example

This is a very simple example about initializing an instance of the realtime synthesizer. For other more detailed use cases, visit the [examples folder](https://github.com/BlackMIDIDevs/xsynth/tree/master/realtime/examples).

```rust
use xsynth_realtime::{RealtimeSynth, SynthEvent, ChannelEvent, ChannelAudioEvent};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Will use the default configuration and
    // default audio output device
    let mut synth = RealtimeSynth::open_with_all_defaults()?;
    
    // Will send a note on event in channel 0
    synth.send_event(SynthEvent::Channel(
        0,
        ChannelEvent::Audio(ChannelAudioEvent::NoteOn {
            key: 60,
            vel: 127,
        }),
    ));

    // Will print the active voice count
    println!("Voice Count: {}", synth.get_stats().voice_count());

    // The synth is automatically dropped here
    Ok(())
}
```