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 17:54] 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. If you are just interested in how to play sounds and music in your own games, you can skip ahead to [[#sounds_and_music|Sounds and Music.]]+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.1772819658.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki