2

问候,

我正在做一个低级编程项目,我想用电脑扬声器播放音乐。

我已经能够使用扬声器(带有timer2),并且歌曲以下列方式表示:

note_t *music;

wherenote_t代表一个音符,它的复合方式是:

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

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

提前致谢!

编辑

为了澄清一些疑问,我想知道的是获得必要信息以创建具有上述结构的歌曲的最佳格式。

4

2 回答 2

2

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

一个简单的铃声格式示例是RTTTL

于 2010-12-30T22:37:03.203 回答
1

anatolyg的回答很好。我只是想展示这样的任务有多复杂:看看 MIDI 以获得灵感。

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

MIDI 文件可以用作音乐软件的“虚拟乐谱”,存储音符和许多描述演奏细微差别的附加信息(例如速度、弯音、调制等)。它是为存储具有多种乐器和复音的整段音乐而设计的。

于 2010-12-30T22:41:19.500 回答