Add Audio Ch Period constants for classical harmonic frequencies

Aperta
#99 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva

Direzione di ricerca

The payload gives full ASM mockup tables for AUDPULSE_PERIOD_* (channels 1 and 2) and AUDWAVE_PERIOD_* (channel 3), so the work is adding these def constants to the project's include file. Check the GameBoy Sound Table and the Pan Docs NR33 section to confirm the channel 3 values are half the pulse values, and check the frequency column against the period. Done means the constants are added, the naming matches the existing file, and the maintainer agrees on whether to ship the full table.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Classical harmonic tuning sets the pitch of A5 the fundamental frequency of 440 Hz.

See GameBoy Sound Table for known Ch1 & Ch2 period values that are the closest match to the perfect Hertz frequencies.

Note: Ch3 period values would be half those values for an equivalent output frequency. See Audio Registers - Pan Docs for frequency calculation differences between Ch1 & Ch2 vs Ch3.

Mockups:

Converted values for pulse ch1 & ch2:
def AUDPULSE_PERIOD_C3  equ $002C ; 65.406Hz
def AUDPULSE_PERIOD_C#3 equ $009C ; 69.295Hz
def AUDPULSE_PERIOD_D3  equ $0106 ; 73.416Hz
def AUDPULSE_PERIOD_D#3 equ $016B ; 77.781Hz
def AUDPULSE_PERIOD_E3  equ $01C9 ; 82.406Hz
def AUDPULSE_PERIOD_F3  equ $0223 ; 87.307Hz
def AUDPULSE_PERIOD_F#3 equ $0277 ; 92.499Hz
def AUDPULSE_PERIOD_G3  equ $02C6 ; 97.998Hz
def AUDPULSE_PERIOD_G#3 equ $0312 ; 103.82Hz
def AUDPULSE_PERIOD_A3  equ $0356 ; 110.00Hz
def AUDPULSE_PERIOD_A#3 equ $039B ; 116.54Hz
def AUDPULSE_PERIOD_B3  equ $03DA ; 123.47Hz
def AUDPULSE_PERIOD_C4  equ $0416 ; 130.81Hz
def AUDPULSE_PERIOD_C#4 equ $044E ; 138.59Hz
def AUDPULSE_PERIOD_D4  equ $0483 ; 146.83Hz
def AUDPULSE_PERIOD_D#4 equ $04B5 ; 155.56Hz
def AUDPULSE_PERIOD_E4  equ $04E5 ; 164.81Hz
def AUDPULSE_PERIOD_F4  equ $0511 ; 174.61Hz
def AUDPULSE_PERIOD_F#4 equ $053B ; 184.99Hz
def AUDPULSE_PERIOD_G4  equ $0563 ; 195.99Hz
def AUDPULSE_PERIOD_G#4 equ $0589 ; 207.65Hz
def AUDPULSE_PERIOD_A4  equ $05AC ; 220.00Hz
def AUDPULSE_PERIOD_A#4 equ $05CE ; 233.08Hz
def AUDPULSE_PERIOD_B4  equ $05ED ; 246.94Hz
def AUDPULSE_PERIOD_C5  equ $060A ; 261.63Hz
def AUDPULSE_PERIOD_C#5 equ $0627 ; 277.18Hz
def AUDPULSE_PERIOD_D5  equ $0642 ; 293.66Hz
def AUDPULSE_PERIOD_D#5 equ $065B ; 311.13Hz
def AUDPULSE_PERIOD_E5  equ $0672 ; 329.63Hz
def AUDPULSE_PERIOD_F5  equ $0689 ; 349.23Hz
def AUDPULSE_PERIOD_F#5 equ $069E ; 369.99Hz
def AUDPULSE_PERIOD_G5  equ $06B2 ; 391.99Hz
def AUDPULSE_PERIOD_G#5 equ $06C4 ; 415.31Hz
def AUDPULSE_PERIOD_A5  equ $06D6 ; 440.00Hz
def AUDPULSE_PERIOD_A#5 equ $06E7 ; 466.16Hz
def AUDPULSE_PERIOD_B5  equ $06F7 ; 493.88Hz
def AUDPULSE_PERIOD_C6  equ $0706 ; 523.25Hz
def AUDPULSE_PERIOD_C#6 equ $0714 ; 554.37Hz
def AUDPULSE_PERIOD_D6  equ $0721 ; 587.33Hz
def AUDPULSE_PERIOD_D#6 equ $072D ; 622.25Hz
def AUDPULSE_PERIOD_E6  equ $0739 ; 659.26Hz
def AUDPULSE_PERIOD_F6  equ $0744 ; 698.46Hz
def AUDPULSE_PERIOD_F#6 equ $074F ; 739.99Hz
def AUDPULSE_PERIOD_G6  equ $0759 ; 783.99Hz
def AUDPULSE_PERIOD_G#6 equ $0762 ; 830.61Hz
def AUDPULSE_PERIOD_A6  equ $076B ; 880.00Hz
def AUDPULSE_PERIOD_A#6 equ $0773 ; 932.32Hz
def AUDPULSE_PERIOD_B6  equ $077B ; 987.77Hz
def AUDPULSE_PERIOD_C7  equ $0783 ; 1046.5Hz
def AUDPULSE_PERIOD_C#7 equ $078A ; 1108.7Hz
def AUDPULSE_PERIOD_D7  equ $0790 ; 1174.7Hz
def AUDPULSE_PERIOD_D#7 equ $0797 ; 1244.5Hz
def AUDPULSE_PERIOD_E7  equ $079D ; 1318.5Hz
def AUDPULSE_PERIOD_F7  equ $07A2 ; 1396.9Hz
def AUDPULSE_PERIOD_F#7 equ $07A7 ; 1480.0Hz
def AUDPULSE_PERIOD_G7  equ $07AC ; 1568.0Hz
def AUDPULSE_PERIOD_G#7 equ $07B1 ; 1661.2Hz
def AUDPULSE_PERIOD_A7  equ $07B6 ; 1760.0Hz
def AUDPULSE_PERIOD_A#7 equ $07BA ; 1864.7Hz
def AUDPULSE_PERIOD_B7  equ $07BE ; 1975.5Hz
def AUDPULSE_PERIOD_C8  equ $07C1 ; 2093.0Hz
def AUDPULSE_PERIOD_C#8 equ $07C4 ; 2217.5Hz
def AUDPULSE_PERIOD_D8  equ $07C8 ; 2349.3Hz
def AUDPULSE_PERIOD_D#8 equ $07CB ; 2489.0Hz
def AUDPULSE_PERIOD_E8  equ $07CE ; 2637.0Hz
def AUDPULSE_PERIOD_F8  equ $07D1 ; 2793.8Hz
def AUDPULSE_PERIOD_F#8 equ $07D4 ; 2960.0Hz
def AUDPULSE_PERIOD_G8  equ $07D6 ; 3136.0Hz
def AUDPULSE_PERIOD_G#8 equ $07D9 ; 3322.4Hz
def AUDPULSE_PERIOD_A8  equ $07DB ; 3520.0Hz
def AUDPULSE_PERIOD_A#8 equ $07DD ; 3729.3Hz
def AUDPULSE_PERIOD_B8  equ $07DF ; 3951.1Hz
Converted values for wave ch3:
def AUDWAVE_PERIOD_C3  equ $0016 ; 65.406Hz
def AUDWAVE_PERIOD_C#3 equ $004E ; 69.295Hz
def AUDWAVE_PERIOD_D3  equ $0083 ; 73.416Hz
def AUDWAVE_PERIOD_D#3 equ $00B5 ; 77.781Hz
def AUDWAVE_PERIOD_E3  equ $00E4 ; 82.406Hz
def AUDWAVE_PERIOD_F3  equ $0111 ; 87.307Hz
def AUDWAVE_PERIOD_F#3 equ $013B ; 92.499Hz
def AUDWAVE_PERIOD_G3  equ $0163 ; 97.998Hz
def AUDWAVE_PERIOD_G#3 equ $0189 ; 103.82Hz
def AUDWAVE_PERIOD_A3  equ $01AB ; 110.00Hz
def AUDWAVE_PERIOD_A#3 equ $01CD ; 116.54Hz
def AUDWAVE_PERIOD_B3  equ $01ED ; 123.47Hz
def AUDWAVE_PERIOD_C4  equ $020B ; 130.81Hz
def AUDWAVE_PERIOD_C#4 equ $0227 ; 138.59Hz
def AUDWAVE_PERIOD_D4  equ $0241 ; 146.83Hz
def AUDWAVE_PERIOD_D#4 equ $025A ; 155.56Hz
def AUDWAVE_PERIOD_E4  equ $0272 ; 164.81Hz
def AUDWAVE_PERIOD_F4  equ $0288 ; 174.61Hz
def AUDWAVE_PERIOD_F#4 equ $029D ; 184.99Hz
def AUDWAVE_PERIOD_G4  equ $02B1 ; 195.99Hz
def AUDWAVE_PERIOD_G#4 equ $02C4 ; 207.65Hz
def AUDWAVE_PERIOD_A4  equ $02D6 ; 220.00Hz
def AUDWAVE_PERIOD_A#4 equ $02E7 ; 233.08Hz
def AUDWAVE_PERIOD_B4  equ $02F6 ; 246.94Hz
def AUDWAVE_PERIOD_C5  equ $0305 ; 261.63Hz
def AUDWAVE_PERIOD_C#5 equ $0313 ; 277.18Hz
def AUDWAVE_PERIOD_D5  equ $0321 ; 293.66Hz
def AUDWAVE_PERIOD_D#5 equ $032D ; 311.13Hz
def AUDWAVE_PERIOD_E5  equ $0339 ; 329.63Hz
def AUDWAVE_PERIOD_F5  equ $0344 ; 349.23Hz
def AUDWAVE_PERIOD_F#5 equ $034F ; 369.99Hz
def AUDWAVE_PERIOD_G5  equ $0359 ; 391.99Hz
def AUDWAVE_PERIOD_G#5 equ $0362 ; 415.31Hz
def AUDWAVE_PERIOD_A5  equ $036B ; 440.00Hz
def AUDWAVE_PERIOD_A#5 equ $0373 ; 466.16Hz
def AUDWAVE_PERIOD_B5  equ $037B ; 493.88Hz
def AUDWAVE_PERIOD_C6  equ $0383 ; 523.25Hz
def AUDWAVE_PERIOD_C#6 equ $038A ; 554.37Hz
def AUDWAVE_PERIOD_D6  equ $0390 ; 587.33Hz
def AUDWAVE_PERIOD_D#6 equ $0396 ; 622.25Hz
def AUDWAVE_PERIOD_E6  equ $039C ; 659.26Hz
def AUDWAVE_PERIOD_F6  equ $03A2 ; 698.46Hz
def AUDWAVE_PERIOD_F#6 equ $03A7 ; 739.99Hz
def AUDWAVE_PERIOD_G6  equ $03AC ; 783.99Hz
def AUDWAVE_PERIOD_G#6 equ $03B1 ; 830.61Hz
def AUDWAVE_PERIOD_A6  equ $03B5 ; 880.00Hz
def AUDWAVE_PERIOD_A#6 equ $03B9 ; 932.32Hz
def AUDWAVE_PERIOD_B6  equ $03BD ; 987.77Hz
def AUDWAVE_PERIOD_C7  equ $03C1 ; 1046.5Hz
def AUDWAVE_PERIOD_C#7 equ $03C5 ; 1108.7Hz
def AUDWAVE_PERIOD_D7  equ $03C8 ; 1174.7Hz
def AUDWAVE_PERIOD_D#7 equ $03CB ; 1244.5Hz
def AUDWAVE_PERIOD_E7  equ $03CE ; 1318.5Hz
def AUDWAVE_PERIOD_F7  equ $03D1 ; 1396.9Hz
def AUDWAVE_PERIOD_F#7 equ $03D3 ; 1480.0Hz
def AUDWAVE_PERIOD_G7  equ $03D6 ; 1568.0Hz
def AUDWAVE_PERIOD_G#7 equ $03D8 ; 1661.2Hz
def AUDWAVE_PERIOD_A7  equ $03DB ; 1760.0Hz
def AUDWAVE_PERIOD_A#7 equ $03DD ; 1864.7Hz
def AUDWAVE_PERIOD_B7  equ $03DF ; 1975.5Hz
def AUDWAVE_PERIOD_C8  equ $03E0 ; 2093.0Hz
def AUDWAVE_PERIOD_C#8 equ $03E2 ; 2217.5Hz
def AUDWAVE_PERIOD_D8  equ $03E4 ; 2349.3Hz
def AUDWAVE_PERIOD_D#8 equ $03E5 ; 2489.0Hz
def AUDWAVE_PERIOD_E8  equ $03E7 ; 2637.0Hz
def AUDWAVE_PERIOD_F8  equ $03E8 ; 2793.8Hz
def AUDWAVE_PERIOD_F#8 equ $03EA ; 2960.0Hz
def AUDWAVE_PERIOD_G8  equ $03EB ; 3136.0Hz
def AUDWAVE_PERIOD_G#8 equ $03EC ; 3322.4Hz
def AUDWAVE_PERIOD_A8  equ $03ED ; 3520.0Hz
def AUDWAVE_PERIOD_A#8 equ $03EE ; 3729.3Hz
def AUDWAVE_PERIOD_B8  equ $03EF ; 3951.1Hz

Could potentially be helpful / useful to have these as defined constants, especially for anyone building audio samples from scratch.

Lingua principale
Assembly
Stelle
165
Fork
26
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di gbdev/hardware.inc

Tutte le issue di gbdev/hardware.inc

Issue simili

Altre issue su Audio/Video & RTC

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.