Skip to content

Latest commit

 

History

History
54 lines (36 loc) · 2.68 KB

README.md

File metadata and controls

54 lines (36 loc) · 2.68 KB

musicserver1

This repository represents a research project I am undertaking, to give musicians practice improvising in a call-and-response format. My purpose in undertaking this project is to create a resource that enables musicians to improve their improvisational skills.

There are several executables in the bin directory. The one to run is replayer_gui.rs.

When you start the program, it will automatically identify all MIDI devices attached to your computer. If there is more than one, it will ask you to select one to use. When it starts, it will simply let you play your instrument, without any response. You can select one of the response algorithms to produce a response after you stop playing for an amount of time specified by the delay slider. (Default is 1.5 seconds.) At that point, it will compose and perform a response.

This program is very much a work in progress. Contributions are welcome - see the Issues page for ideas.

At some point, I plan to change the name - this originated as a TCP server for use with Sonic Pi, until I decided I preferred a standalone program.

Compiling

To compile and execute the program, run the following at the command line:

cargo run --bin replayer_gui --release

The --release is very important - sound quality often suffers if compiler optimizations aren't enabled.

Acknowledgements

  • Thank you to the authors of fundsp, midir, midi-msg, and cpal, who made it possible and practical for me to create this crate.
  • Thank you to Mark Goadrich and Andy Morgan for numerous suggestions for improvements and helpful features.

Contact

Please visit my personal web page. To contact me, email me at my last name at hendrix.edu.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.