Come analizzare una musica in un array di frequenze e durate delle sue note
-
14-10-2019 - |
Domanda
Saluti,
Sto lavorando su un basso livello progetto di programmazione e voglio giocare una musica con il computer altoparlanti .
Sono già in grado di utilizzare l'altoparlante (con timer2
) e una canzone è rappresentata nel seguente modo:
note_t *music;
dove note_t
rappresenta una nota ed è composto da:
typedef struct {
int freq; /* note frequency */
int dur; /* note duration in miliseconds */
} note_t;
Ora, quale sarebbe il modo migliore per ottenere le frequenze e le durate delle note da un file musicale?
Grazie in anticipo!
Modifica
Per chiarire alcuni dubbi, quello che voglio sapere è il miglior formato per ottenere le informazioni necessarie per creare una canzone con la struttura sopra indicata.
Soluzione
anatolyg 's risposta è buona. Voglio solo mostrare come un compito complesso come questo può essere: dare un'occhiata al MIDI per l'ispirazione.
http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface
file MIDI può essere utilizzato come "spartito virtuale" per software musicale, la memorizzazione delle note e un sacco di informazioni aggiuntive che descrivono le sfumature di gioco (ad esempio la velocità, pitch bend, modulazione e così via). E 'stato costruito per la memorizzazione di interi brani musicali con più strumenti e polifonia.
Altri suggerimenti
A seconda del vostro scopo esatto, è possibile utilizzare uno dei formati di suonerie o inventare il proprio.
Un formato semplice esempio suoneria è RTTTL .