diff --git a/music/tiny_tracker6/d4.s b/music/tiny_tracker6/d4.s index 5da85bd0..463aa864 100644 --- a/music/tiny_tracker6/d4.s +++ b/music/tiny_tracker6/d4.s @@ -13,6 +13,7 @@ d4: lda #0 sta FRAME + sta WHICH_TRACK ;=================== ; music Player Setup diff --git a/music/tiny_tracker6/mA2E_4.txt b/music/tiny_tracker6/mA2E_4.txt index 67a2f5cd..f9c21a22 100644 --- a/music/tiny_tracker6/mA2E_4.txt +++ b/music/tiny_tracker6/mA2E_4.txt @@ -14,6 +14,7 @@ ' ENDHEADER ------- ' 0 +track0: 0 C 2-- G 5-- ----- 1 ----- ----- ----- 2 C 2-- ----- ----- @@ -79,6 +80,7 @@ F ----- ----- ----- 3E A#2-- ----- ----- 3F ----- ----- ----- ' 1 +track1: 0 C 2-- G 5-- ----- 1 ----- ----- ----- 2 C 2-- ----- ----- @@ -144,6 +146,7 @@ F ----- ----- ----- 3E A#2-- ----- ----- 3F ----- ----- ----- ' 2 +track2: 0 D#2-- D#6-- ----- 1 ----- ----- ----- 2 D#2-- ----- ----- @@ -209,6 +212,7 @@ F ----- ----- ----- 3E ----- ----- ----- 3F ----- ----- ----- ' 3 +track3: 0 D#2-- D#4-- ----- 1 ----- ----- ----- 2 D#2-- ----- ----- @@ -274,6 +278,7 @@ F ----- ----- ----- 3E C 2-- ----- ----- 3F ----- ----- ----- ' 4 +track4: 0 C 2-- ----- ----- 1 ----- ----- ----- 2 C 2-- ----- ----- @@ -338,5 +343,3 @@ F ----- ----- ----- 3D ----- ----- ----- 3E ----- F 5-- ----- 3F ----- ----- ----- - - diff --git a/music/tiny_tracker6/play_frame.s b/music/tiny_tracker6/play_frame.s index a215c202..1bf374d2 100644 --- a/music/tiny_tracker6/play_frame.s +++ b/music/tiny_tracker6/play_frame.s @@ -32,7 +32,8 @@ set_notes_loop: ; load next byte ldy SONG_OFFSET - lda tracker_song,Y +track_smc: + lda track4,Y ;================== ; see if hit end @@ -43,9 +44,22 @@ set_notes_loop: ;==================================== ; if at end, loop back to beginning - asl ; reset song offset to 0 + inc WHICH_TRACK + ldy WHICH_TRACK + cpy #5 + bne no_wrap + ldy #1 + sty WHICH_TRACK +no_wrap: + lda tracks_l,Y + sta track_smc+1 + lda tracks_h,Y + sta track_smc+2 + + lda #0 sta SONG_OFFSET - beq set_notes_loop + + beq set_notes_loop ; bra not_end: @@ -105,4 +119,10 @@ done_update_song: channel_a_volume: .byte 14,14,14,14,11,11,10,10 + tracks_l: + .byte track4,>track0,>track1,>track2,>track3 + + skip_data: diff --git a/music/tiny_tracker6/text_to_tiny.c b/music/tiny_tracker6/text_to_tiny.c index 97a900a9..873c343d 100644 --- a/music/tiny_tracker6/text_to_tiny.c +++ b/music/tiny_tracker6/text_to_tiny.c @@ -23,7 +23,7 @@ static int total_len=0; unsigned short frequencies[]={ //C C# D D# E F F# G G# A A# B -0x7A3,0x735,0x6CD,0x66C,0x60F,0x5B8,0x566,0x518,0x4CF,0x48A,0x449,0x40B, +0x7A3,0x735,0x6CD,0x66C,0x60F,0x5B8,0x566,0x518,0x4CF,0x48A,0x449,0x40B, //1 0x3D1,0x39A,0x366,0x336,0x307,0x2DC,0x2B3,0x28C,0x267,0x245,0x224,0x205, //2 0x1E8,0x1CD,0x1B3,0x19B,0x183,0x16E,0x159,0x146,0x133,0x122,0x112,0x102, //3 0x0F4,0x0E6,0x0D9,0x0CD,0x0C1,0x0B7,0x0AC,0x0A3,0x099,0x091,0x089,0x081, //4 @@ -33,7 +33,6 @@ unsigned short frequencies[]={ //0x00F,0x00E,0x00D,0x00C,0x00C,0x00B,0x00A,0x00A,0x009,0x009,0x008,0x008, }; -// CLLNNNN int note_to_ed(char note, int flat, int sharp, int octave) { @@ -399,6 +398,11 @@ printf("\n"); if (string[0]=='\'') continue; if (string[0]=='-') continue; if (string[0]=='*') continue; + if (string[0]=='t') { + if (!first) printf(".byte $ff\n"); + printf("%s\n",string); + continue; + } sp=0; diff --git a/music/tiny_tracker6/zp.inc b/music/tiny_tracker6/zp.inc index 598dfecb..88b2d063 100644 --- a/music/tiny_tracker6/zp.inc +++ b/music/tiny_tracker6/zp.inc @@ -29,4 +29,4 @@ HGR_SCALE = $E7 COUNT = $FB FRAME = $FC - +WHICH_TRACK = $FD