Formßt sekvence t≤n∙

Vysv∞tlivky k zßpisu:

VERSION, TEMPO, RESOLUTION, BLOCK_START, BLOCK_END, PLAY_BLOCK, SET_VOLUME,
REPEAT a SILENCE jsou konstanty p°eddefinovanΘ v rozhranφ ToneControl.

x*y   znamenß, ₧e se nßsledujφcφ prom∞nnß m∙₧e opakovat v sekvenci minimßln∞
      x-krßt a maximßln∞ y-krßt. Nenφ-li x uvedeno, p°edpoklßdß se x=0, nenφ-li
      uvedeno y, nemß poΦet opakovßnφ ₧ßdnou hornφ mez.

  vÜe, co je na tΘ₧e °ßdce za st°ednφkem je komentß°

/     (obyΦejnΘ lomφtko) alternativa

Definice:

sekvence = verze *1definice_tempa *1definice_rozliÜenφ *definice_bloku 1*udßlost_sekvence
verze = VERSION Φφslo_verze
Φφslo_verze = 1
  ; verze Φφslo 1
 
definice_tempa = TEMPO modifikßtor_tempa
modifikßtor_tempa = 5 a₧ 127
  ; po vynßsobenφ 4 dostaneme hodnotu tempa v
  ; ·derech za minutu, defaultnφ hodnota je 30

definice_rozliÜenφ = RESOLUTION jednotka_rozliÜenφ
jednotka_rozliÜenφ = 1 a₧ 127
  ; udßvß dΘlku jednotkovΘ noty, mo₧nΘ hodnoty jsou
  ; 1/1 a₧ 1/127, defaultnφ hodnota je 1/64

definice_bloku = BLOCK_START Φφslo_bloku
                                1*udßlost_sekvence
                            BLOCK_END Φφslo_bloku
Φφslo_bloku = 0 - 127
  ; za BLOCK_END musφ b²t stejnΘ Φφslo jako za
  ; BLOCK_START
 
udßlost_sekvence = t≤n / blok / hlasitost / opakovßnφ

t≤n = v²Üka dΘlka
v²Üka = 0 a₧ 127 nebo SILENCE
  ; v²Üka t≤nu
  ; hodnota 69 odpovφdß komornφmu a
dΘlka = 1 a₧ 127
  ; dΘlka t≤nu v jednotkov²ch dΘlkßch (jednotka rozliÜenφ)
  ; skuteΦnß dΘlka t≤nu v milisekundßch se vypoΦφtß vztahem
  ; dΘlka * 60 * 1000 / (jednotka_rozliÜenφ * modifikßtor_tempa * 4)
 
blok = PLAY_BLOCK Φφslo_bloku
Φφslo_bloku = 1 a₧ 127
  ; blok tohoto Φφsla musφ b²t p°edem definovan²

hlasitost = SET_VOLUME hodnota_hlasitosti
hodnota_hlasitosti = 0 a₧ 100
  ; udanß hodnota je v procentech z maximßlnφ hlasitosti
 
opakovßnφ = REPEAT multiplikßtor t≤n
multiplikßtor = 2 a₧ 127
  ; poΦet opakovßnφ nßsledujφcφho t≤nu