#real-time #voice-stealing

polyphony

A library for handling polyphony in real-time audio applications

1 unstable release

0.1.0 Aug 25, 2020

#861 in Audio

MIT/Apache

14KB
203 lines

Polyphony

Library to facilitate generating different sounds at the same time (polyphony).

Contributing

We welcome contributions, both in the form of issues and in the form of pull requests. Before opening a pull request, please open an issue first so that you know whether a subsequent pull request would likely be approved.

If you don’t have a Codeberg account, alternatively, you can contribute via e-mail (an email address is in the commits). But just creating a Codeberg account is probably the easiest.

Unless explicitly stated otherwise, you agree that your contributions are licensed as described below.

License

polyphony is distributed under the terms of the MIT license or the Apache License (Version 2.0), at your choice. For the application of the MIT license, the examples included in the doc comments are not considered "substatial portions of this Software".


lib.rs:

Library to facilitate generating different sounds at the same time (polyphony).

Polyphony consists of different steps:

  1. Classify how the event should be dispatched. How exactly it should be classified, is defined by the EventDispatchClass enum. The dispatching itself is done by a type that implements the EventDispatchClassifier trait.
  2. Next, using the classification, voices are assigned to the event. The assigned voice(s) are described by the VoiceAssignment enum. The VoiceAssigner trait defines this action.
  3. Then, the event can be dispatched by calling the dispatch method on the VoiceAssignment. EventDispatchClass: ./enum.EventDispatchClass.html EventDispatchClassifier: ./trait.EventDispatchClassifier.html VoiceAssignment: ./enum.VoiceAssignment.html VoiceAssigner: ./trait.VoiceAssigner.html dispatch: enum.VoiceAssignment.html#method.dispatch

Dependencies