Question

Greetings,

I'm working on a low level programming project and I want to play a music with the computer speaker.

I'm already capable of using the speaker (with timer2) and a song is represented in the following way:

note_t *music;

where note_t represents a note and it's compound by:

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

Now, what would be the best way to get the frequencies and durations of the notes from a music file?

Thanks in advance!

EDIT

To clarify some doubts, what I want to know is the best format to get the necessary information to create a song with the structure above indicated.

Was it helpful?

Solution

anatolyg's answer is good. I just want to show how complex a task like this can be: have a look at MIDI for inspiration.

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

MIDI files can be used as "virtual sheet music" for music software, storing the notes and a lot of additional information describing the nuances of playing (for example the velocity, pitch bend, modulation and so on). It was built for storing entire pieces of music with multiple instruments and polyphony.

OTHER TIPS

Depending on your exact purpose, you can use one of the ringtone formats or invent your own.

An example simple ringtone format is RTTTL.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top