как изменить высоту звука аудиофайла, манипулируя его миди-данными

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


person Programmer    schedule 12.02.2012    source источник


Ответы (2)


Ваш вопрос трудно понять. MIDI-файлы не «воспроизводят» аудиофайлы. Я предполагаю, что вы визуализируете файл MIDI для создания аудиофайла.

Чтобы изменить высоту тона вашего MIDI-файла, транспонируйте все ноты в MIDI-файле по отдельности на более высокую или более низкую высоту тона.

спецификация MIDI Дэвида может быть полезна в качестве быстрого справочника.

person Shannon Matthews    schedule 12.02.2012
comment
Чтобы быть более конкретным, первый байт Note On или Note Off — это высота тона. Чтобы транспонировать, добавьте к этому значению байта количество, равное количеству музыкальных полутонов. - person Phil Freihofner; 13.02.2012

В стандарте MIDI вы можете управлять высотой тона, отправляя короткое сообщение изменения высоты тона.

Вот как это должно выглядеть в Java:

int pitchBendValue;
long eventMoment;
ShorMessage pitchMessage = new ShortMessage();
pitchMessage.setMessage(ShortMessage.PITCH_BEND, channel, 7, pitchBendValue);
receiver.send(pitchMessage, eventMoment);
person EuAndreh    schedule 09.12.2012