Как разобрать музыку на массив частот и длительностей нот

StackOverflow https://stackoverflow.com/questions/4566697

Вопрос

Привет,

Я работаю над низкий уровень программный проект, и я хочу воспроизвести музыку на компьютере оратор.

Я уже могу использовать динамик (с timer2) и песня представлена ​​следующим образом:

note_t *music;

где note_t представляет собой ноту и состоит из:

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

Итак, как лучше всего получить частоты и длительность нот из музыкального файла?

Заранее спасибо!

РЕДАКТИРОВАТЬ

Чтобы прояснить некоторые сомнения, я хочу знать, какой формат лучше всего подходит для получения необходимой информации для создания песни с указанной выше структурой.

Это было полезно?

Решение

анатолигответ хороший.Я просто хочу показать, насколько сложной может быть такая задача:взгляните на MIDI для вдохновения.

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

MIDI-файлы можно использовать в качестве «виртуальных нот» для музыкального программного обеспечения, сохраняя ноты и множество дополнительной информации, описывающей нюансы игры (например, скорость, изменение высоты тона, модуляцию и т. д.).Он был создан для хранения целых музыкальных произведений с несколькими инструментами и полифонией.

Другие советы

В зависимости от вашей конкретной цели вы можете использовать один из форматов мелодии звонка или придумать свой собственный.

Пример простого формата мелодии звонка: РТТТЛ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top