[][src]Crate simple_tones

simple_tones is an easy to use crate which provides abilities to write down and play music compositions easily. Based on rodio.

Example

use simple_tones::{Note, NoteDuration, Player};

type ND = NoteDuration;

let song = vec![
        Note::new("C4".parse().unwrap(), ND::Quarter),
        Note::new("C4".parse().unwrap(), ND::Quarter),
        Note::new("D4".parse().unwrap(), ND::Eighth),
        Note::new("Eb4".parse().unwrap(), ND::Eighth),
        // |
        Note::new("D4".parse().unwrap(), ND::HalfDotted),
        // |
        Note::new("C4".parse().unwrap(), ND::Eighth),
        Note::new("G3".parse().unwrap(), ND::Eighth),
        Note::new("Ab4".parse().unwrap(), ND::Quarter),
        Note::new("G3".parse().unwrap(), ND::Eighth),
        Note::new("F3".parse().unwrap(), ND::Eighth),
        // |
        Note::new("G3".parse().unwrap(), ND::HalfDotted),
        // |
        Note::new("C4".parse().unwrap(), ND::Quarter),
        Note::new("C4".parse().unwrap(), ND::Quarter),
        Note::new("D4".parse().unwrap(), ND::Eighth),
        Note::new("Eb4".parse().unwrap(), ND::Eighth),
        // |
        Note::new("F4".parse().unwrap(), ND::HalfDotted),
        // |
        Note::new("G4".parse().unwrap(), ND::Eighth),
        Note::new("Eb4".parse().unwrap(), ND::Eighth),
        Note::new("D4".parse().unwrap(), ND::Eighth),
        Note::new("C4".parse().unwrap(), ND::Eighth),
        Note::new("Bb4".parse().unwrap(), ND::Quarter),
        // |
        Note::new("C4".parse().unwrap(), ND::HalfDotted),
        // |
        Note::new("F3".parse().unwrap(), ND::Half),
    ];
let np = Player::from_bpm(55);
np.play(song.iter());

Structs

Note

Represents a musical note.

NotePitch

Represents the pitch of a note as defined here.

Player

The Player is a struct used to play an Iterator of types implementing Play.

Rest

Represents a musical rest.

Enums

NoteDuration

Represents the relative duration of a note as defined here

NoteType

Enum of all types of notes in the english naming convention. See here.

ParseNotePitchError

Represents an error that can happen while parsing a NotePitch from a str

Traits

Play

Is implemented by all playable types. (e.g. Note, Rest)