Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
cat PURE.NOT BASS1.NOT BASS2.NOT >> DEFAULT.SNT
CHN#
1: <----#1-----><----#2----->
2: <-----------#3----------->
3: <--#4---|---#5---|---#6-->
4: <-#7-|-#7-|-#7-|-#8-|-#9->
TAB#
#1: <--#1-->
#2: <--#1-->
#3: <------#2------>
#4: <-#3-|
#5: |-#3-|
#6: |-#3->
#7: <#4|#4|#4|
#8: |#4|
#9: |#4>
00: 00 -- -- --
01: 00 01 -- --
#63
000: ... ..
001: 63>000
002: ENDTAB
00: 00 63 -- --
01: 00 01 -- --
000:+>+>C-1 00
001:| | D-1 00
002:| | E-1 00
003:| +-03<000 (powtórz jeszcze 3x od wiersza 0)
004:| --- --
005:| +>F-1 00
006:| | G-1 00
007:| | A-1 00
008:| | H-1 00
009:| +-05<005 (powtórz jeszcze 5x od wiersza 5)
010:+--- <000 (skocz do wiersza 0)
clc
lda currentTabOfs
adc (tabPtr),y
asl @
tay
lda (tabPtr),y
asl @
tay
000: --- --
001: +> <005 >+
002: | --- -- |
003: | --- -- | pętla bez końca
004: | --- -- |
005: +- <001 <+
000: +>C-1 00
001: | D-1 00
002: | E-1 00
003: +-03<000 (powtórz jeszcze 3x od wiersza 0)
004: --- --
005: +>F-1 00
006: | G-1 00
007: | A-1 00
008: | H-1 00
009: +-05<005 (powtórz jeszcze 5x od wiersza 5)
000: C-1 00
001: D-1 00
002: E-1 00
003: C-1 00 # pierwsza iteracja pętli
004: D-1 00
005: E-1 00
006: C-1 00 # druga
007: D-1 00
008: E-1 00
009: C-1 00 # trecia
010: D-1 00
011: E-1 00
012: --- --
013: F-1 00
014: G-1 00
015: A-1 00
016: H-1 00
017: F-1 00 # pierwsza
018: G-1 00
019: A-1 00
020: H-1 00
021: F-1 00 # druga
022: G-1 00
023: A-1 00
024: H-1 00
025: F-1 00 # trzecia
026: G-1 00
027: A-1 00
028: H-1 00
029: F-1 00 # czwarta
030: G-1 00
031: A-1 00
032: H-1 00
033: F-1 00 #piąta
034: G-1 00
035: A-1 00
036: H-1 00
00: 00 -- -- -- <- tu zacznie się TAB#00
01: -- -- -- --
02: -- -- -- -- <- będzie odtwarzany aż dotąd.
03: 01 -- -- -- <- tu zacznie się TAB#01
#1 #2 #3 #4
00: 00 -- -- -- TAB #00 będzie odtworzony
01: -- -- -- -- TAB #00 będzie nadal grał (od początku)
02: == -- -- -- Wyłączenie ścieżki 1
03: 00 -- -- -- TAB #00 już nie zagra
#1 #2 #3 #4
00: 00 01 -- --
01: -- 02 -- --
02: 00 03 -- --
03: -- -- -- --
04: -- -- -- --
05: 00 04 -- --
Rzeczywista długość TABów:
TAB#0: 32 wiersze
TAB#1: 16 wierszy
TAB#2: 16 wierszy
TAB#3: 48 wierszy
02: 00-31 00-31
03: 00-15 32-47
04: 16-31 00-15
00: T1 T2 T3 T4
04: T1 T2 T3 T4
08: T1 T2...
.
.
.
gdzie wartość z lewej to offset.
T1: może zawierać funkcje i wtedy T2-T3: jest miejscem na parametr dla niej.
#1 #2 #3 #4
00: 00 10 20 30 ; tu TABy są grane normalnie
01: TT 01 -5 ; funkcja TAB Transpose dla ścieżki #1 o -5 półtonu
02: 00 11 21 31 ; TAB 00 na ścieżce #1 jest grany dla instrumentów od 48-63 o wartość transpozycji, reszta ścieżek pozostaje bez zmian.
00: --- --
01: 31>000
02: ENDTAB
00: T: 05
01: 00 01 02 03
.
.
.
00: 00 01 -- --
01: J> 00
02: T: 10
03: 03 04 05 --
.
.
.
.proc stereoEcho
ldy #8
@ lda SFX_tracker.stereoBuffer,y ; lub +9 / +18 / +27 - glebsze echo
sta $d210,y
dey
bpl @-
rts
.endp
vol
+ .
| /|\
| / | \
| / | \________
| / | | |\
| / | | | \
|/ | | | \
+------+---+------+---+--+ time
| A | D | S | R |
(wg. wiki)
[A]ttack – czas narastania amplitudy od zera do poziomu maksymalnego,
[D]ecay – czas opadania amplitudy z poziomu maksymalnego do poziomu podtrzymania (sustain),
[S]ustain – amplituda, poziom podtrzymania (wybrzmiewania),
[R]elease – czas opadania amplitudy od poziomu podtrzymania do zera (wybrzmiewanie końcowe, zanikanie).
vol
+ _______
| /| |
| / | |__
| / | | --__
|/ | | --__
+----+------+----------------+ time
pos: 0123456789ABCDEF012345
vol: 048BFFFFFFF9876543210-
dst: AAAAAAAAAAAAAAAAAAAAA-
mod: ----8-----8----------9
val: ----4-----5----------5
| | | |
+AD-*<-S--+----R-----+
| | |
| | +-- koniec definicji SFXa to też pętla
| +-- pętla dla sekcji Sustain
+-- pętla dla sekcji Attack/Decay
000: C#1 00 ; rozpoczęcie odtwarzania SFXa, czyli Attack
001: ### -- ; tu rozpoczyna się sekcja Sustain (generalnie wypada w "tickach" dokładnie w tym miejscu)
002: --- -- ; i trwa
...
007: ### -- ; np. dotąd.
008: --- --
009: --- -- ; tu kończy się jej sekcja Release
; move audio buffer data, direct to audio registers
ldx #7
audio_loop
lda AUDIOBUF,x
sta audf,x
lda AUDIOBUF+16,x <- +16 to wartość wynikowa (regulowana)
0=bez opóźnienia
8=1 ramka opóźnienia
16=2 ramki opóźnienia
24=3 ramki opóźnienia
sta aud2f,x
dex
bpl audio_loop
; shift echo effect buffer
ldx #$17 <- tu mam maksymalne opóźnienie echa
echo_loop
lda AUDIOBUF,x
sta AUDIOBUF+8,x
dex
bpl echo_loop