Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Midi files   Найти похожие ветки 

 
cando ©   (2006-12-20 21:42) [0]

Кто нить может подсказать формат миди файла
желательно проимер создания или хоть ссылку какую


 
Anatoly Podgoretsky ©   (2006-12-20 21:49) [1]

> cando  (20.12.2006 21:42:00)  [0]

wotsit.org


 
cando ©   (2006-12-20 21:53) [2]

Спасибо конечно но там я был и ни че путнего не нашел


 
Vovan #2   (2006-12-20 22:38) [3]

http://www.borg.com/~jglatt/tech/midifile.htm


 
cando ©   (2006-12-21 00:15) [4]

спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


 
cando ©   (2006-12-21 15:20) [5]

http://promidi.by.ru/file_format/

Здесь если кому ещё надо все в примерах
Все про миди рекомендую


 
Сергей М. ©   (2006-12-21 15:23) [6]


> cando ©   (21.12.06 15:20) [5]



> Все про миди


Врешь ведь)

На "кое-что" еще потянет, но уж никак не на "всё".


 
programania ©   (2006-12-21 19:19) [7]


program mif; //пишет музыку в файл midi.mid
const   author="Copyright (C) Programania.com";
{$R-,S-}
var
f: textfile;
h,t1,t2,t3:   string;
i,j,t,q,n,d : integer;
m,v: array[1..16] of integer; //ноты и громкость в такте

FUNCTION n2s(v: cardinal):string;
// запись числа переменной длины в строку
// у всех байтов кроме последнего первый бит=1
// значащие остальные 7 бит
var b: cardinal;
function f1:boolean; begin v:=v shr 7; f1:=v>0 end;

begin
 b := v and $7F;
 result:="";
 while f1 do begin
   b:=b shl 8;
   b:=b or ((v and $7F) or $80);
 end;
 while true do begin
   result:=result+chr(b);
   if b and $80>0 then b:=b shr 8 else break;
 end;
end;

FUNCTION zl(var s:string):string;
var j,i:integer; m:array[1..4] of byte absolute j;
begin
// запись в конец окончания и в начало длины данных дорожки
result:=s+#$FF#$2F#0;
j:=length(result)-8;
for i:=5 to 8 do result[i]:=chr(m[9-i]);
end;

begin
h:=
"MThd"+    // метка заголовка
#0#0#0#6+  // размер данных заголовка всегда 6
#0#1+      // тип файла
#0#3+      // число дорожек
#5#0;      // единица задержки: #20#00 примерно 1 милиСек

// далее дорожки которые играются одновременно
// пока не кончится самая длинная

t1:=
// 1. Дорожка пианино
"MTrk"+    // метка дорожки
#0#0#0#0+  // длина данных дорожки, потом запишу в zl()
#0#$FF#01+chr(length(author))+author+ // любой текст
#0+        // задержка события
#$C0#0+    // установка инструмента 0..128, 0-пианино на канале 0
#0;        // задержка события

q:=0;
randomize;

//этот цикл задает длину всей музыки
for t:=1 to 100 do begin

// создание такта: длина, ноты, громкость
 d:=4+random(4)*2;
 for i:=1 to d do begin
   m[i]:=32+random(16);
   if (random(i)>d div 2)or(t mod 5=0) then v[i]:=0 else v[i]:=65+(d-i)*5;
 end;

 for i:=1 to 3+random(3) do
 for j:=1 to d  do begin
   t1:=t1+
   #$90+       // включение инструмента на канале 0
   chr(m[j])+  // установка ноты:  60-ДО 1-ой октавы
   chr(v[j])+  // громкость 0..127
   n2s(500)+   // задержка 500 единиц или tick
   #$80+       // выключение инструмента
   chr(m[j])+  // с такой нотой
   #0#0;       // задержка следущего события
   inc(q);
 end;
end;

// 2. Орган аналогично пианино но на канале 1
t2:="MTrk"+#0#0#0#0+#0+#$C1#38#0;
for i:=1 to q do begin
// смена инструмента дорожки
 if i mod 200=0 then t2:=t2+#$C1#29#0 else
 if i mod 100=0 then t2:=t2+#$C1#19#0 else
 if i mod 50 =0 then t2:=t2+#$C1#38#0;

 n:=35+random(8);
 t2:=t2+#$91+chr(n)+chr(50+random(20))+
 n2s(500)+
 #$81+chr(n)+#0#0;
end;

// 3. Ударные на канале 9
t3:="MTrk"+#0#0#0#0+#0+#$99;//включение 1 раз
for i:=1 to q div 2 do
 t3:=t3+
 #38#50 + n2s(250)+ //инстумент 35..81, громкость 0..127, задержка
 #35#50 + n2s(250)+
 #36#45 + n2s(250)+
 #35#35 + n2s(250);

assignFile(f,"midi.mid");
rewrite(f);
write(f, h, zl(t1), zl(t2), zl(t3));
closeFile(f);
end.


 
MeF Dei Corvi ©   (2006-12-21 19:44) [8]

Не слабый бред получается :)


 
Mo-skin   (2006-12-21 23:26) [9]

Как автор упомянутого выше сайта promidi.by.ru (зеркало last.h16.ru) могу сказать что там действительно не все про миди, но я стараюсь!
А пока ссылка на прогу, которая записывает миди файл: http://www.last.h16.ru/ishod/midi_record.zip
Правда она с косяками, но для примера пойдет.
Нашел на буржуйском сайте каком-то новые компоненты для миди, скоро выложу.
Следите за обновлениями.
С уважением, Mo-skin!


 
ProgRAMmer Dimonych ©   (2006-12-22 00:12) [10]

> program mif; //пишет музыку в файл midi.mid
Миф - морозная свежесть :)



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.06 c
1-1164027899
IGo
2006-11-20 16:04
2007.01.14
Поиск в Word е - ошибка - Заглушке переданы неправильные данные


3-1162187801
vlgrig1961
2006-10-30 08:56
2007.01.14
Есть ли в SQL для парадокса что-то вроде To_Char конверт из цифр


3-1161722615
diofant
2006-10-25 00:43
2007.01.14
Пример работы с ADO через CreateOleObject


2-1166703886
Галинка
2006-12-21 15:24
2007.01.14
XML -> DataSet


4-1156987026
supervk
2006-08-31 05:17
2007.01.14
разделение общего ресурса на несколько потоков