I’m trying to create a buzzer tone notes generator to NuttX.
During my searches I discovered that PX4 guys already implemented a buzzer tone alarm, but they did in their way (as a C++ driver instead of a standard NuttX C driver) :
They implemented the music notation used on QBasic PLAY command.
You can find the Note Numbers notation here:
In that table we have the frequency, we can double check it here:
Now we need to convert MIDI to Note Numbers, it helps:
Then I found that this guy did something similar, but used the values to AVR timer used on Arduino:
All I need to do is to convert his program to show Note Numbers instead AVR timer values.
To convert Music to MIDI I use WAON program:
Update: Just discovered that miditones has a miditones_scroll that does exactly what I want:
$ miditones -b file $ miditones_scroll -c file
The file.c will be created with the Note Numbers this way:
//duration time gen0 gen1 gen2 gen3 gen4 gen5 bytestream code /* 11 0.000 5F# 6D# 0000: */ 0x90,0x4E,0x91,0x57,0x00,0x0B, /* 186 0.011 5F# 6D# 3B 6A 7C# 7F 0006: */ 0x92,0x3B,0x93,0x5D,0x94,0x61,0x95,0x65,0x00,0xBA, /* 11 0.197 5F# 6D# 3B 6A 7C# 0010: */ 0x85,0x00,0x0B,
Update2: You can find the MIDI format explanation here: http://www.petesqbsite.com/sections/express/issue18/midifilespart1.html