问候,

我正在研究 低级 编程项目,我想用计算机播放音乐 扬声器.

我已经有能力使用扬声器( timer2)和一首歌以以下方式表示:

note_t *music;

在哪里 note_t 表示注释,它是复合的:

typedef struct {
  int freq; /* note frequency */
  int dur;  /* note duration in miliseconds */
} note_t;

现在,从音乐文件中获取笔记的频率和持续时间的最佳方法是什么?

提前致谢!

编辑

为了澄清一些疑问,我想知道的是获取必要信息的最佳格式,以创建一首歌,其中显示了上述结构。

有帮助吗?

解决方案

Anatolyg的答案很好。我只想展示这样的任务可能是多么复杂:请查看MIDI的灵感。

http://en.wikipedia.org/wiki/musical_instrument_digital_interface

MIDI文件可以用作音乐软件的“虚拟乐谱”,存储笔记和许多描述播放细微差别的其他信息(例如速度,音高弯曲,调制等)。它是为了用多种乐器和复合物存储整个音乐而建造的。

其他提示

根据您的确切目的,您可以使用一种铃声格式或发明自己的格式。

一个简单的铃声格式是 rtttl.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top