Парче условие (на файл DLS)

Парчето условие определя условията, при които други парчета могат да се използват.

Парчето условие във формата на файла DLS има следната структура.

Описание на поредицата от байтове Дължина в байтове Започва с байт в парчето Стойност
идентификация на парчето 4 0x00 Поредицата от ASCII символи "cld " (с празното пространство)
размер различни 0x04 Размера на парчето в брой байтове (цяло число без знак) минус 8 (минус "идентификацията на парчето" и "размера")
операции различни 0x08 Поредица от операции, както е описано по-долу

Операции

Една операция е в един от следните три вида.

  • Код на операцията (стойност от два байта без знак)
  • Код на операцията (стойност от два байта без знак), DLS ID (стойност от 16 байта; виж Парче DLS ID (на файл DLS))
  • Код на операцията (стойност от два байта без знак), константа без знак (цяло число от осем байта)

Кодове на операциите

Следните са кодовете на операциите.

Код на операцията Стойност Разбира се като (код в C)
AND 0x0001 X & Y
OR 0x0002 X | Y
Ексклузивен OR 0x0003 X ^ Y
Добави 0x0004 X + Y
Изведи 0x0005 X - Y
Умножи 0x0006 X * Y
Раздели 0x0007 X / Y
Логичен AND 0x0008 X && Y
Логичен OR 0x0009 X || Y
По-малко от 0x000A X $lt; Y
По-малко или равно на 0x000B X <= Y
По-голямо от 0x000C X > Y
По-голямо или равно на 0x000D X >= Y
Равно 0x000E X == Y
NOT 0x000F ! X
Константа 0x0010 Z
Запитване 0x0011 DLS ID на запитването
Поддържа ли се запитването 0x0012 DLS ID на запитването, което може да се поддържа

Операциите се изчисляват на един стек. Всеки път, когато една операция трябва да се извърши, нужните стойности се вземат от стека и изчисления резултат се слага обратно на стека. X е най-горната стойност на стека и Y е предишната стойност на стека. Z е константа, която се слага на стека от операцията константа. Когато операцията е едно запитване, тогава устройството се запитва и върната стойност се слага на стека. Когато операцията е запитване дали нещо се поддържа, устройството се пита и върнатата стойност, TRUE или FALSE, се слага на стека.

FALSE се записва с бинарни нули, а TRUE се записва с бинарни единици. Една не нулева стойност ще се подразбере като TRUE, което означава, че една операция NOT трябва да внимава да занули единиците.

Най-малкият стек, който едно устройство трябва да осъществи за да поддържа стандарта DLS Ниво 2 е един стек от осем стойности от 32 бита.

Позиция на парчето условие

Парчето условие е определено в стандарта DLS Ниво 2. Едно парче условие не е задължително във файла DLS.

Парчето условие може да е едно от най-горните парчета в DLS или пък може да е в една поредицаt. Когато парчето условие е едно от най-горните парчета във файла DLS и едно устройство не изпълнява условията в това парче, целият файл DLS се пренебрегва и софтуера връща грешка при работата с файла DLS. Когато парчето условие е в една поредица и едно устройство не изпълнява съответните условия, тогава поредицата се пренебрегва. В една поредица се предпочита парчето условие да е първо в поредицата.

Стандартни запитвания в DLS Ниво 2

Всички устройства, които поддържат DLS Ниво 2, трябва да поддържат следните запитвания.

Запитване Стойност UUID Връща стойността
Поддържа DLS 1 0x178F2F27, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12 Връща TRUE, ако устройството поддържа DLS Ниво 1
Поддържа DLS 2 0xF14599E5, 0x4689, 0x11D2, 0xAF, 0xA6, 0x0, 0xAA, 0x0, 0x24, 0xD8, 0xB6 Връща TRUE, ако устройството поддържа DLS Ниво 2
Идентификация на производителя 0xB03E1181, 0x8095, 0x11D2, 0xA1, 0xEF, 0x0, 0x60, 0x8, 0x33, 0xDB, 0xD8 Връща идентификацията на производителя на MIDI в 24 бита
Идентификация на продукта 0xB03E1182, 0x8095, 0x11D2, 0xA1, 0xEF, 0x0, 0x60, 0x8, 0x33, 0xDB, 0xD8 Връща идентификацията на продукта, която е специфична за производителя
General MIDI 0x178F2F24, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12 Връща TRUE, ако хардуера на устройството поддържа стандарта General MIDI
Размер на паметта в семпли 0x178F2F28, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12 Връща размера на паметта в устройството, в брой семпли
Пробна честота 0x2A91F713, 0xA4BF, 0x11D2, 0xBB, 0xDF, 0x0, 0x60, 0x8, 0x33, 0xDB, 0xD8 Връща пробната честота в херцове

Виж също:
Формат Downloadable Sounds (DLS)

Добави нов коментар

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.