Форум: "Прочее";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c