#play #music #notes #player #note #tones #note-duration

simple_tones

易于使用的crate,用于播放音乐音符

1个不稳定版本

0.1.0 2021年1月10日

#984 in 音频

GPL-3.0-only

18KB
198 代码行

simple_tones

simple_tones 是一个易于使用的crate,提供轻松编写和播放音乐作品的能力。基于 rodio

示例

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());

依赖项

~1–5.5MB
~106K SLoC