Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Миди файлы, Помогите разложить 
:(
    Опции темы
Лиза
Дата 30.7.2004, 14:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите разложить миди файлы, так что когда играет нота До должно писаться что это До.


Только просьба не отправляйте меня на непонятные ссылки.
sample.gif qstn.gif
  Вверх
Гость_Forelli
Дата 30.7.2004, 21:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Попробуй CakeWalk Express Gold.
  Вверх
Guest
Дата 31.7.2004, 13:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











CakeWalk , а что дальше-то попробуй CakeWalk . И все это я и так знаю, но ничего же не получается
  Вверх
p0s0l
Дата 31.7.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Не понятно - написать прогу надо или же готовой программой воспользоваться ?



--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 31.7.2004, 19:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Надо написать программу, если можно было воспользоваться готовой меня бы здесь не было.
Мне нужно рассказнавать миди файлы в делфи
  Вверх
p0s0l
Дата 1.8.2004, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Тут работы - часа на 2-3 минимум, так что готовый код вряд ли увидишь, но мы тебе поможем, если возникнут трудности или непонятности...
А так план для тебя таков:
надо разобраться с форматом MIDI файла - в принципе, это просто: файл состоит из chunk-ов, есть chunk'и "MTrk" - трэки, их и надо выцепить (на остальные чанки закрыть глаза, кроме "MThd" - заголовочного чанка). В этих треках записаны midi/sysex/meta-события. Среди них нужно выбрать несколько нужных тебе событий... Но дело усложняется тем, что придётся всё-таки распознавать все события (но обратывать их не надо!), т.к. события - разной длины, и чтобы пропустить ненужные события, нужно их вначале распознать, а потом можно только будет узнать их длину...
sysex - 2 события, тебе надо их пропускать
meta - 15 событий, среди них много ненужных тебе (имя трека, копирайты и др.), но есть и пара нужных - это Set Tempo и Time Signature - если тебе нужны не только ноты, но и временные задержки между ними.
midi - события:
MIDI Channel Mode Messages - 8 штук, отвечают как видно из названия, за режим канала, в принципе, тебе это не надо
MIDI Channel Voice Messages - 7 штук, они то, что тебе нужно...

Удачи.


--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 10.8.2004, 12:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я немного в этом разобралась. Но как в Delphi, открыть текстовую сторону этого файла.
  Вверх
Akella
Дата 12.8.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



поставь себе пакет JCL - я там нашел компонент-клавиатуру, там вообще много всяких интересных компонентов.
PM MAIL   Вверх
Ptica
Дата 13.8.2004, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 27.7.2004

Репутация: нет
Всего: 2



Текстовую сторону midi-файла? Скажите мне, что это такое, и я скажу, как ее открыть... Мне казалось, что midi-файлы по жизни двоичные... Как справедливо отметил г-н p0s0l, midi-файл в основном состоит из так называемых сообщений. Перед каждым сообщением идет хитрым образом указанное время его исполнения. Сообщения идентифицируются первым байтом. Разные сообщения имеют разную длину, которая либо напрямую зависит от вида сообщения, либо указывается в самом сообщении. Поэтому делаем приблизительно вот что:
1. Открываем файл, как нетипизированный.
var midi: file;
...
assignfile(f,'tralala.mid');
reset(f,1);
2. Считываем заголовок файла.
blockread(f,zagl_f,10);
blockread(f, num_of_tracks,2);
blockread(f, ticks_per_quarter,2);
3. Считываем заголовок трека
blockread(f,zagl_t,4);
blockread(f, size_of_track,4);
4. И начинаем читать сообщения:
4.1. Прочитываем время (так называемое delta-time) // ...что не так просто!
4.2. Прочитываем первый байт сообщения
blockread(f,bait,1);
4.3. Анализируем его и в зависимости от значения продолжаем чтение.
...
4.Х. Прочитав все сообщение, обрабатываем его данные, как нам нужно.
4.Х+1. Если трек еще не дочитан, переходим к следующему сообщению.

Это придется делать руками. Если Вы с форматом midi-файла разобрались, дерзайте дальше. А открыть в Дельфи текстовую сторону midi-файла... тут я Вам ничем не помогу. Если честно, я вчера от нечего делать сам расковырял этот формат, и даже почти написал прогу на Паскале, которая читает midi и пишет все в текстовый файл человеческим языком. Она еще не все сообщения распознает, и не всегда корректно обрабатывает конец файла. И написана она коряво ...абы работало. Доделывать ее я пока не хочу... разве что кто НУ ОЧЕНЬ попросит. Если она Вам нужна, я Вам могу ее скинуть as is. Занимает она 290 строк. (Это так, к слову пришлось).
PM MAIL   Вверх
Mew
Дата 13.8.2004, 19:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если не трудно пришли. Я с этим уже разбираюсь очень долго. Иногда мне кажеться что писать в паскале. было легче чем в делфи. мой e-mail [email protected]
  Вверх
Ptica
Дата 16.8.2004, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 27.7.2004

Репутация: нет
Всего: 2



to Mew
проверьте почту

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.