User Tools

Site Tools


sd:appendix_5_sound_system

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sd:appendix_5_sound_system [2026/03/06 01:14] appledogsd:appendix_5_sound_system [2026/03/28 09:05] (current) appledog
Line 3: Line 3:
  
 == Introduction == Introduction
-The SD-8516 is paired with the SD-450 sound subsystem; named for featuring 4 independent voices with 5 waveforms available, each with a programmable ADSR envelope. Let's dive in with an overview of the architecture and a quick look at INT 11h, the sound services library.+The SD-8516 is paired with the SD-450 sound subsystem; named for featuring 4 independent voices with 5 waveforms available, each with a programmable ADSR envelope. Let's dive in with an overview of the architecture and a quick look at INT 11h, the sound services library. If you are just interested in how to play sounds and music in your own games, you can skip ahead to [[#sound_and_music|Sound and Music.]]
  
 === Voice Architecture === Voice Architecture
Line 49: Line 49:
     LDA $112B           ; C4 frequency (262 Hz / 0.0596)     LDA $112B           ; C4 frequency (262 Hz / 0.0596)
     STA [$1ED00]        ; $01ED00 = FREQ_LO/MID     STA [$1ED00]        ; $01ED00 = FREQ_LO/MID
-    LDA #0 +    LDAL #0 
-    STA [$1ED02]        ; $01ED02 = FREQ_HI+    STAL [$1ED02]       ; $01ED02 = FREQ_HI
  
     LDAL $4D            ; Initialize volume to ~30%     LDAL $4D            ; Initialize volume to ~30%
Line 124: Line 124:
  
 == INT 11h Sound Services == INT 11h Sound Services
-<codify armasm> 
     ; ============================================================================     ; ============================================================================
     ; INT 11h - SOUND & MUSIC SERVICES     ; INT 11h - SOUND & MUSIC SERVICES
Line 186: Line 185:
     ;     ;
     ; ============================================================================     ; ============================================================================
 +
 +== Sound and Music
 +It is possible to play sound sound and music in the background (or while-you-wait) on the SD-8516. The boot chime "GECF" is proof of this.
 +
 +There are two main ways you can play sound and music. One is by directly controlling the music registers. As listed above, you can write data to these registers and the "SD-450 Sound Chip" will play the sounds. This can be a good way to make sound effects. Alternately you can use the Music Player system in INT 11h. 
 +
 +Although INT 11h is used to make music, you can create short scripts to play sound effects. Each channel operates independently so you can have up to four simultaneous sounds playing at the same time. Making a sound effect relies entirely on your own creativity. Here's an example of the sound we use for the system beep; it's a good example of a directly programmed sound:
 +
 +<codify armasm>
 +.equ SOUND_CH0_BASE    $01EF80
 +.equ SOUND_CH0_GATE    $01EF83
 +.equ SOUND_CH0_VOLUME  $01EF84
 +.equ SOUND_CH0_DATA1   $01EF89
 +
 +play_beep:
 +    ; Play a beep (~880hz A4)
 +    
 +    ; Set channel 0 frequency to A4
 +    LDELM $001CD7               ; A4 freq (3 bytes: $D7, $1C, $00)
 +    STELM [@SOUND_CH0_BASE]     ; write freq_lo/mid/hi
 +
 +    ; Set pulse width 50%
 +    LDAL $40
 +    STAL [@SOUND_CH0_DATA1]
 +
 +    ; Set volume
 +    LDAL $4D
 +    STAL [@SOUND_CH0_VOLUME]
 +
 +    ; Gate on with pulse waveform
 +    LDAL @WAVE_PWM
 +    STAL [@SOUND_CH0_GATE]
 +
 +    ; Wait 100ms
 +    LDC #100
 +    LDAH $48     ; wait_ms -- wait for C ms (blocking)
 +    INT 0x11
 +
 +    ; Gate off
 +    LDAL $00
 +    STAL [@SOUND_CH0_GATE]
 +
 +    ; Release delay
 +    LDC #20
 +    LDAH $48     ; wait_ms -- wait for C ms (blocking)
 +    INT 0x11
 +</codify>
 +
 +As you can see -- nothing to it!
 +
 +=== Music Player System
 +First you will define a series of commands such as:
 +
 +<codify armasm>
 +BOOT_CHIME_DATA:
 +    ; Tick 1: setup + G/C
 +    .byte $01, $00                      ; tick index 1
 +    .byte $F1, $83, $00                 ; set tempo = 131ms
 +    .byte $F2, $03                      ; min_note = 3 (eighth)
 +    .byte $01, $28, $20                 ; v1 duty 12.5%
 +    .byte $01, $17, $2F, $05            ; v1 PWM + G4
 +    .byte $02, $17, $1C, $02            ; v2 tri + C3
 +    .byte $00
 +
 +    ; Tick 2: E/A
 +    .byte $02, $00
 +    .byte $01, $28, $80                 ; v1 duty 50%
 +    .byte $01, $17, $2C, $05            ; v1 PWM + E4
 +    .byte $02, $17, $14, $02            ; v2 tri + E2
 +    .byte $00
 +
 +    ; Tick 3: C/F
 +    .byte $03, $00
 +    .byte $01, $28, $40                 ; v1 duty 25%
 +    .byte $01, $17, $28, $05            ; v1 PWM + C4
 +    .byte $02, $17, $10, $02            ; v2 tri + C2
 +    .byte $00
 +
 +    ; Tick 4: F/G
 +    .byte $04, $00
 +    .byte $01, $28, $20                 ; v1 duty 12.5%
 +    .byte $01, $17, $2D, $05            ; v1 PWM + F4
 +    .byte $02, $17, $14, $02            ; v2 tri + E2
 +    .byte $00
 +
 +    ; Tick 5: silence
 +    .byte $05, $00
 +    .byte $01, $10                      ; v1 off
 +    .byte $02, $10                      ; v2 off
 +    .byte $00
 +    ; End
 +    .byte $00, $00
 +</codify>
 +
 +With this data, you can play it like this:
 +
 +<codify armasm>
 +    ; Initialize sound system
 +    LDAH $40
 +    INT 0x11
 +
 +    ; Point ELM at our song data and load it (AH=07h)
 +    LDELM @MUSIC_DATA
 +    LDAH $07
 +    INT 0x11
 +
 +    ; Start playback: set state and prime the clock
 +    LDAH $05
 +    INT 0x11
 +
 +    ; Blocking playback loop: poll until song finishes
 +player_loop:
 +    YIELD
 +    LDAH $00    ; Poll Music Player
 +    INT 0x11    ; This checks if there is a note, and plays it.
 +    LDAH $0F    ; Check player state
 +    INT 0x11
 +    CMP AL, 1   ; 1 = still playing (0 = song is finished)
 +    JZ @player_loop
 +
 +    ; Done
 +    LDAH $43    ; Stop player (turn off all channels)
 +    INT 0x11    ; This causes the music player to stop.
 +
 +</codify>
 +
 +Now, if you have a game loop, you can just put this code in your main loop:
 +
 +    LDAH $00    ; Poll Music Player
 +    INT 0x11    ; This checks if there is a note, and plays it.
 +
 +It will quickly check if there is a note and play it. In this way you can have "background music".
 +
 +=== DATA2 mode
 +If DATA2 is set to 1 on a voice channel (default is 0) then it will experience a momentary shutoff before the next note is played. If you cannot achieve the correct ADSR envelope to separate notes, you can enable this mode. It is especially useful for guitar strum-like sounds -- "chugging". Then again, I think the kids say 'djenting' these days. I read that somewhere.
 +
 +
 +== Example Song
 +Here is an example song using the INT 11h SOUND SERVICES LIBRARY. Feel free to cut and paste into your own programs, or make your own music!
 +
 +INSTRUCTIONS:
 +* save this as "danube.sda".
 +* type LOAD on your SD-8516 / VC-3 computer system
 +* select the danube.sda file
 +* optionally save it on your SuperDATA-sette 1532N Tape Drive Backup system using the DSAVE DANUBE.SDA command!
 +
 +<codify ARMASM>
 +; ============================================================================
 +; The Blue Danube Waltz - Johann Strauss II (Op. 314, 1867)
 +; Arranged for SD-450 Sound Chip (64 bars)
 +; "C64-style": PWM melody, Triangle bass, Sawtooth chords
 +; 3/4 waltz time, ~180 BPM (tick_ms = 144ms, eighth note resolution)
 +;
 +; Voice 1 (ch 0): Melody - PWM waveform, 25% duty cycle
 +; Voice 2 (ch 1): Bass - Triangle waveform (oom)
 +; Voice 3 (ch 2): Chords - Sawtooth waveform (pah-pah)
 +;
 +; Structure: Theme A (16 bars) - Theme A repeat (16 bars)
 +;            Theme B (16 bars) - Theme A reprise (16 bars) + coda
 +;
 +; ============================================================================
 +
 +    LDELM @the_blue_danube
 +    LDAH $07
 +    INT $11                          ; load song
 +
 +    LDAH $05
 +    INT $11                          ; start player
 +    RET
 +
 +the_blue_danube:
 +; --- Tempo setup ---
 +.byte $01, $00                      ; tick 1: setup
 +.byte $F1, $90, $00                 ; tick_ms = 144ms
 +.byte $01, $28, $40                 ; v1 duty 25%
 +.byte $00
 +
 +; ===== THEME A - First statement =====
 +; --- Bars 1-2: Intro (D major, pickup to D4) ---
 +.byte $02, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $03, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $04, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $05, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $06, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $07, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $08, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $09, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $0A, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $0B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $0C, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $0D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 3-4: D4-F#4, A4 held (D major) ---
 +.byte $0E, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $0F, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $10, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $11, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $12, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $13, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $14, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $15, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $16, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $17, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $18, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $19, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 5-6: A4 sustained (A major) ---
 +.byte $1A, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $1B, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $1C, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $1D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $1E, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $1F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $20, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $21, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $22, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $23, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $24, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $25, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 7-8: Pickup C#4, C#4-E4 (A major) ---
 +.byte $26, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $27, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $28, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $29, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $2A, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $2B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $2C, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $2D, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $2E, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $01, $17, $2C, $05            ; v1 E4
 +.byte $00
 +.byte $2F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $30, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $31, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 9-10: A4 held (D major) ---
 +.byte $32, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $33, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $34, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $35, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $36, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $37, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $38, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $39, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $3A, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $3B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $3C, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $3D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 11-12: Pickup D4, D4-F#4 (D major) ---
 +.byte $3E, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $3F, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $40, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $41, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $42, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $43, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $44, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $45, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $46, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $47, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $48, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $49, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 13-14: A4-D5, D5-C#5 (D major) ---
 +.byte $4A, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $4B, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $4C, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $4D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $4E, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $4F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $50, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $51, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $52, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $35, $05            ; v1 C#5
 +.byte $00
 +.byte $53, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $54, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $55, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 15-16: B4 (G major), A4 resolving (A major) ---
 +.byte $56, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $57, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $58, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $59, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $5A, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $5B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $5C, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $5D, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $5E, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $5F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $60, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $61, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +
 +; ===== THEME A - Second statement =====
 +; --- Bars 17-18: Intro repeat (D major, pickup D4) ---
 +.byte $62, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $63, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $64, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $65, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $66, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $67, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $68, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $69, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $6A, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $6B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $6C, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $6D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 19-20: D4-F#4, A4 (D major) ---
 +.byte $6E, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $6F, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $70, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $71, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $72, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $73, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $74, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $75, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $76, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $77, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $78, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $79, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 21-22: A4 sustained (A major) ---
 +.byte $7A, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $7B, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $7C, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $7D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $7E, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $7F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $80, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $81, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $82, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $83, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $84, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $85, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 23-24: Pickup C#4, C#4-E4 (A major) ---
 +.byte $86, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $87, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $88, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $89, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $8A, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $8B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $8C, $00  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $8D, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $8E, $00  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $01, $17, $2C, $05            ; v1 E4
 +.byte $00
 +.byte $8F, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $90, $00  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $91, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 25-26: A4 held (D major) ---
 +.byte $92, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $93, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $94, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $95, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $96, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $97, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $98, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $99, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $9A, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $9B, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $9C, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $9D, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 27-28: Pickup D4, D4-F#4 (D major) ---
 +.byte $9E, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $9F, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $A0, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $A1, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $A2, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $A3, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $A4, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $A5, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $A6, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $A7, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $A8, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $A9, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 29-30: A4-D5, D5 held (D major) ---
 +.byte $AA, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $AB, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $AC, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $AD, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $AE, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $AF, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $B0, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $B1, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $B2, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $B3, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $B4, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $B5, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 31-32: C#5-B4, A4 resolving to D (D major) ---
 +.byte $B6, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $35, $05            ; v1 C#5
 +.byte $00
 +.byte $B7, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $B8, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $B9, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $BA, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $BB, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $BC, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $BD, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $BE, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $BF, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $C0, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $C1, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +
 +; ===== THEME B - Contrasting theme =====
 +; --- Bars 33-34: G major, melody G4-B4 ---
 +.byte $C2, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $2F, $05            ; v1 G4
 +.byte $00
 +.byte $C3, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $C4, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $C5, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $C6, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $C7, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $C8, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $C9, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $CA, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $CB, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $CC, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $CD, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 35-36: B4 sustained, then A4 (D major) ---
 +.byte $CE, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $CF, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $D0, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $D1, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $D2, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $D3, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $D4, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $D5, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $D6, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $D7, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $D8, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $D9, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 37-38: G4-F#4 (G major) ---
 +.byte $DA, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $2F, $05            ; v1 G4
 +.byte $00
 +.byte $DB, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $DC, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $DD, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $DE, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $DF, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $E0, $00  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $2F, $05            ; v1 G4
 +.byte $00
 +.byte $E1, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $E2, $00  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $E3, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $E4, $00  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $E5, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 39-40: A4-G4 (D major) ---
 +.byte $E6, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $E7, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $E8, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2F, $05            ; v1 G4
 +.byte $00
 +.byte $E9, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $EA, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $EB, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $EC, $00  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $ED, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $EE, $00  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $EF, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $F0, $00  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $F1, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 41-42: E4-F#4-G4 rising (C major) ---
 +.byte $F2, $00  ; beat 1
 +.byte $02, $17, $10, $02            ; v2 C2
 +.byte $01, $17, $2C, $05            ; v1 E4
 +.byte $00
 +.byte $F3, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $F4, $00  ; beat 2
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $F5, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $F6, $00  ; beat 3
 +.byte $03, $17, $23, $03            ; v3 G3
 +.byte $00
 +.byte $F7, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $F8, $00  ; beat 1
 +.byte $02, $17, $10, $02            ; v2 C2
 +.byte $01, $17, $2F, $05            ; v1 G4
 +.byte $00
 +.byte $F9, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $FA, $00  ; beat 2
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $FB, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $FC, $00  ; beat 3
 +.byte $03, $17, $23, $03            ; v3 G3
 +.byte $00
 +.byte $FD, $00
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 43-44: A4-B4 (Em) ---
 +.byte $FE, $00  ; beat 1
 +.byte $02, $17, $14, $02            ; v2 E2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $FF, $00
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $00, $01  ; beat 2
 +.byte $03, $17, $23, $03            ; v3 G3
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $01, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $02, $01  ; beat 3
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $03, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $04, $01  ; beat 1
 +.byte $02, $17, $14, $02            ; v2 E2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $05, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $06, $01  ; beat 2
 +.byte $03, $17, $23, $03            ; v3 G3
 +.byte $00
 +.byte $07, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $08, $01  ; beat 3
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $09, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 45-46: D5-C5 (G major) ---
 +.byte $0A, $01  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $0B, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $0C, $01  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $01, $17, $34, $05            ; v1 C5
 +.byte $00
 +.byte $0D, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $0E, $01  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $0F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $10, $01  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $11, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $12, $01  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $00
 +.byte $13, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $14, $01  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $15, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 47-48: A4 resolving (D major) ---
 +.byte $16, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $17, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $18, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $19, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $1A, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $1B, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $1C, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $1D, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $1E, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $1F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $20, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $21, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +
 +; ===== THEME A - Final reprise =====
 +; --- Bars 49-50: D major, pickup D4 ---
 +.byte $22, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $23, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $24, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $25, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $26, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $27, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $28, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $29, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $2A, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $2B, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $2C, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $2D, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 51-52: D4-F#4, A4 (D major) ---
 +.byte $2E, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $2F, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $30, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $2E, $05            ; v1 F#4
 +.byte $00
 +.byte $31, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $32, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $33, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $34, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $35, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $36, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $37, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $38, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $39, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 53-54: A4 sustained (A major) ---
 +.byte $3A, $01  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $3B, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $3C, $01  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $3D, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $3E, $01  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $3F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $40, $01  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $41, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $42, $01  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $43, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $44, $01  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $45, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 55-56: Pickup C#4, C#4-E4 (A major) ---
 +.byte $46, $01  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $00
 +.byte $47, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $48, $01  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $00
 +.byte $49, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $4A, $01  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $4B, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $4C, $01  ; beat 1
 +.byte $02, $17, $19, $02            ; v2 A2
 +.byte $01, $17, $29, $05            ; v1 C#4
 +.byte $00
 +.byte $4D, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $4E, $01  ; beat 2
 +.byte $03, $17, $1D, $03            ; v3 C#3
 +.byte $01, $17, $2C, $05            ; v1 E4
 +.byte $00
 +.byte $4F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $50, $01  ; beat 3
 +.byte $03, $17, $20, $03            ; v3 E3
 +.byte $00
 +.byte $51, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 57-58: A4 (D major) ---
 +.byte $52, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $53, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $54, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $55, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $56, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $57, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $58, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $59, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $5A, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $5B, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $5C, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $5D, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 59-60: Pickup D5, D5-F#5 (D major) ---
 +.byte $5E, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $00
 +.byte $5F, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $60, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $61, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $62, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $63, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $64, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $65, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $66, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $3A, $05            ; v1 F#5
 +.byte $00
 +.byte $67, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $68, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $69, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 61-62: A5 climax! (D major) ---
 +.byte $6A, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $3D, $05            ; v1 A5
 +.byte $00
 +.byte $6B, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $6C, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $6D, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $6E, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $6F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $70, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $3A, $05            ; v1 F#5
 +.byte $00
 +.byte $71, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $72, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $01, $17, $36, $05            ; v1 D5
 +.byte $00
 +.byte $73, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $74, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $75, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +; --- Bars 63-64: Final cadence B4-A4, D4 (D major) ---
 +.byte $76, $01  ; beat 1
 +.byte $02, $17, $17, $02            ; v2 G2
 +.byte $01, $17, $33, $05            ; v1 B4
 +.byte $00
 +.byte $77, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $78, $01  ; beat 2
 +.byte $03, $17, $27, $03            ; v3 B3
 +.byte $01, $17, $31, $05            ; v1 A4
 +.byte $00
 +.byte $79, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $7A, $01  ; beat 3
 +.byte $03, $17, $1E, $03            ; v3 D3
 +.byte $00
 +.byte $7B, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $7C, $01  ; beat 1
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $00
 +.byte $7D, $01
 +.byte $02, $10                      ; v2 off
 +.byte $00
 +.byte $7E, $01  ; beat 2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $7F, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +.byte $80, $01  ; beat 3
 +.byte $03, $17, $25, $03            ; v3 A3
 +.byte $00
 +.byte $81, $01
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +
 +; --- Final D major chord ---
 +.byte $82, $01  ; D major final
 +.byte $01, $17, $2A, $05            ; v1 D4
 +.byte $02, $17, $12, $02            ; v2 D2
 +.byte $03, $17, $22, $03            ; v3 F#3
 +.byte $00
 +.byte $83, $01  ; hold
 +.byte $00
 +.byte $84, $01  ; hold
 +.byte $00
 +.byte $85, $01  ; hold
 +.byte $00
 +.byte $86, $01  ; hold
 +.byte $00
 +.byte $87, $01  ; hold
 +.byte $00
 +.byte $88, $01  ; hold
 +.byte $00
 +.byte $89, $01  ; hold
 +.byte $00
 +.byte $8A, $01  ; hold
 +.byte $00
 +.byte $8B, $01  ; hold
 +.byte $00
 +.byte $8C, $01  ; hold
 +.byte $00
 +.byte $8D, $01  ; hold
 +.byte $00
 +
 +; --- Silence ---
 +.byte $8E, $01  ; all off
 +.byte $01, $10                      ; v1 off
 +.byte $02, $10                      ; v2 off
 +.byte $03, $10                      ; v3 off
 +.byte $00
 +
 +; --- End of song ---
 +.byte $00, $00                      ; song terminator
 </codify> </codify>
sd/appendix_5_sound_system.1772759678.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki