rs_audio/lib.rs
1/*!
2* rs-audio is a Rust library for making retro music programmatically.<br>
3 Currently, it has support for: <br>Sine waves,<br>Squares,<br>Sawtooths,<br>and Triangles.<br><br>
4# Usage:<br>
5
6To create a default song (to make sure everything is working):
7```
8use rs_audio::*;
9
10let mut song = Song::default();
11song.play().unwrap();
12```
13<br>To create custom notes:
14```
15use rs_audio::*;
16
17let mut song = Song::new(vec![
18Note { freq: 880.0, dur: 1.0, vol: 0.20, wave: WaveForm::Sine },
19Note { freq: 220.0, dur: 1.0, vol: 0.20, wave: WaveForm::Square },
20Note { freq: 880.0, dur: 1.0, vol: 0.20, wave: WaveForm::Sine },
21Note { freq: 220.0, dur: 1.0, vol: 0.20, wave: WaveForm::Triangle },
22], BPMChoice::Default);
23
24song.play().unwrap();
25```
26
27# Multithreading
28
29To use a separate thread for playing songs, you need to use the following function.<br>
30Multithreading means that you can perform other tasks while playing music.<br><br>
31
32## Usage
33```
34use rs_audio::*;
35
36let mut song = Song::default();
37song.play_from_thread().unwrap();
38```
39
40
41*/
42
43pub(crate) mod assets;
44pub mod note;
45pub mod player;
46pub mod wav;
47pub mod waveform;
48
49pub use note::Note;
50pub use player::{BPMChoice, Song};
51pub use waveform::WaveForm;