SEQ

From Atariki

(Różnice między wersjami)
Jump to: navigation, search

Wersja z dnia 22:16, 18 gru 2017

Format programu MIDI Sequencer.

  • bajty 0-2: sygnatura $b3 $a5 $b1 ("SEQ" w inwersie w kodach ekranowych)
  • bajt 3: tempo=1500/BPM, np. bajt 10 oznacza 150 BPM
  • bajt 4: długość patternu: $80=128 pozycji (4/4), $60=96 pozycji (3/4)
  • bajty 5-40: tytuł utworu w kodach ekranowych (36 znaków)
  • bajty 41-???: skompresowany utwór

Algorytm kompresji:

  • bajt $e8: kolejny bajt zawiera liczbę powtórzeń bajtu 0
  • bajt $f0: kolejny bajt zawiera liczbę powtórzeń bajtu $ff
  • pozostałe bajty są nieskompresowane

W wyniku dekompresji powinniśmy otrzymać 25600 bajtów:

  • bajty 0-2559: song, po 16 bajtów na linię songu
  • bajty 2560-5119: nagłówki patternów, po 16 bajtów na pattern
  • bajty 5120-25599: patterny, po 128 bajtów na pattern

Song: Bajt $00-$9f oznacza dany pattern, $ff oznacza brak patternu.

Nagłówki patternów:

  • bajt 0: kanał MIDI (0-15)
  • bajt 1: program MIDI
  • bajty 2-15: nazwa patternu w kodach ekranowych

Patterny: Każda pozycja jest opisana parą bajtów: nuta, głośność wg standardu MIDI. $ff,$ff to odstęp.

Personal tools