Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Структура файлов караоке - kar. Или как извлеч текст [D7, XP]


Страницы:   1 2

worldmen ©   (2010-06-08 13:08:00) 

Нашел струкруру kar файла:

KAR files are based on standard Midi files with the following additional events:

The KAR text meta events start with an @ followed by a character indicating the type of KAR text meta event, then followed by text for that event.  The following text meta events occur embedded in regular MIDI text events:

FileType:     @KMIDI KARAOKE FILE
Version:      @V0100
Information:  @I<text>
Language:     @LENGL
Title 1:      @T<title>
Title 2:      @T<author>
Title 3:      @T<copyright>

The following lyric text indicators are defined.  A \ (backslash) in the text is to clear the screen. A / (forwardslash) in the text is a line feed (next line).

Только я это описание немойму. Как текст вытащить?


worldmen   (2010-06-09 23:04:00) [21]

Я разобрался!
Только вопрос по размерам. Есть запись:
MtrK 00 00 03 CB
Так вот 4 байта - 00 00 03 CB - составляют размер последующей записи. Как их переводить, по отдельности или вместе.
По отдельности 03 = 3, СВ= 203
или 03СВ = 971 ?


worldmen   (2010-06-09 19:21:00) [22]

> RWolf ©

> то есть число, равное количеству байтов в данной записи

Так это именно в данной записи. Или это для всех записей одинаково?
> Это мета-событие
Я уже целый день долбаюсь, не пойму как это мета-событие искать.


RWolf   (2010-06-09 12:51:00) [23]


> Я не понимаю как его найти. Нужно искать идентификатор text?
>  Или как?

Трек секвенсора содержит последовательность событий.
Текст
FF 01 len text
Это мета- событиесодержит любой объем текста любого назначения. Значение len содержит длинутекстового сообщения в байтах... Отметим, что величина len представляется в виде значения переменной длины.

Очевидно, нужно прочесть из трека все события и выбрать из них те, которые текст.


RWolf   (2010-06-09 12:41:00) [24]


>  А дальше я непонял сколько занимает байт сама музыка.

MTrk запись содержит в себе MIDI данные... Заголовок записи MTrk начинается с идентификатора записи, который представляет собой четыре ascii байта 'M', 'T', 'r', 'k', за которым следует значение длины записи, то есть число, равное количеству байтовв данной записи


worldmen   (2010-06-09 11:31:00) [25]

Читаю про формат MIDI - http://ru.wikipedia.org/wiki/MIDI
Получается выводить заголовки MTrkи MThd. А дальше я непонял сколько занимает байт сама музыка.
И для того, чтобы вывести текст, нужно найти:
Слова
FF 05 len text
Текстовое мета-событие, содержащее слова вокального произведения, приходящиеся на ту или иную музыкальную долю. Одно мета-событие «Слова» должно содержать один единственный слог текста.
Отметим, что величина len представляется в виде значения переменной длины.

Я не понимаю как его найти. Нужно искать идентификатор text? Или как?


RWolf   (2010-06-08 14:41:00) [26]

у файла MIDI есть формат, а у формата — спецификация. Вот с её чтения и надо начинать. Тогда станет ясно, что такое MIDI text events, и как их добывать из файла.
google:midi format


worldmen   (2010-06-08 13:45:00) [27]

Надо ведь знать с какого бита начинается эти заголовки. Или пупо считывать данные пока ненайдеш @Iи до   @LENGL?


RWolf   (2010-06-08 13:14:00) [28]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо