Технологии программирования миди

 Навигация:

 Поиск:

 Новости:

17.02.2007
Полностью переработан дизайн сайта.

6.01.2007
Добавлен раздел Наработки Полезные и интересные программы и их исходники от автора.

19.11.2006
Функции WriteVarLen и ReadVarLen портированы с СИ на Delphi читать

14.11.2006
Появилась cтатья Midi-протокол глазами программиста

24.10.2006
Написана вторая часть MMSystem Функции midiOutGetVolume midiOutSetVolume midiOutMessage midiOutShortMsg и midiOutLongMsg

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

1.09.2006
Добавлен раздел MMSystem в котором находятся
подробные опсания функций winmm.dll, определенных в модуле mmSystem.pas,
с примерами их использования в Delphi.

13.08.2006
Опубликован исходник приложения, записывающего игру на клавиатуре
в стандартный midi-файл SMF - 0

4.07.2006
Добавлен раздел Структура формата миди-файла

 Счетчики:
Rambler's Top100 Яндекс цитирования Rambler's Top100
 Контент:

Зачем программисту миди?

  1. С помощью MIDI можно озвучить свою программу мелодиями, щелчками, звонкими и т.д.
  2. Для тех, кто пишет маленькие и компактные по размеру кода игры, MIDI просто незаменим, так как несколько строчек кода с использованием WinAPI не скажутся на объеме исполняемого файла.
  3. Не надо таскать с собой внешние файлы, которые могут потеряться, сломаться замениться другими, да и мало-ли чего еще.
  4. Знание спецификации протокола MIDI и стандартных midi-файлов может помочь разработчикам операционных систем и ПО для различных платформ.
  5. Создателям плееров понимание структуры миди-файлов необходимо для того, чтобы правильно извлечь информацию об их длине, темпе, количестве дорожек, используемых инструментах не прибегая к помощи сторонних компонентов и DLL.
  6. Если программист еще и музыкант, то это дает безграничные просторы для творчества сразу в двух направлениях.
  7. Для общего развития, чтобы не теряться при обсуждении проблемы чтения записей переменной длинны или реализации Running Status.

Midi-пианино на клавиатуре или как издать миди-звук с помощью Delphi.

ЧАСТЬ 1. Миди-пианино.

Для начала напишем небольшую программку типа пианино на клавиатуре. Первое, что необходимо сделать,- это заюзать MMSystem (т.е дописать после Uses: MMSystem) Далее перед implementation пишем:

var
Form1: TForm1;
hMidi :integer;
midimsg :integer; //миди сообщение
no:integer; //нота


//Открываем MidiOut при создании формы
procedure TForm1.FormCreate(Sender: TObject);
begin
midiOutOpen(@hmidi, 0, 0, 0, 0);
Form1.KeyPreview:= true;
end;
//Обрабатываем нажатие клавиш

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

begin
if key='1' then no:=60 ; //c
if key='2' then no:=62 ; //d
if key='3' then no:=64 ; //e
if key='4' then no:=65 ; //f
if key='5' then no:=67 ; //g
if key='6' then no:=69 ; //a
if key='7' then no:=71 ; //b
if key='8' then no:=72 ; //c
if key='9' then no:=74 ; //d
if key='0' then no:=76 ; //e
if key='-' then no:=77 ; //f
if key='=' then no:=79 ; //g


//формируем сообщение
midimsg := $90 + ((no) * $100) + (127 * $10000) + 0;
//отправляем его
midiOutShortMsg (hmidi, midimsg);
end;

//закрываем MidiOut:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
midiOutClose(hmidi);
end;

Продолжение статьи читай здесь.


 Bash.org.ru:

 Реклама:

 ©Copyright:
http://www.last.h16.ru - программирование миди. Идея, разработка и поддержка : Mo-skin © 2006-2007
X