2024/07/18

Hanggenerálás

A hangokat memória-mappelt címek írásával lehet megszólaltatni. 3+1 függetlenül állítható csatorna/szólam áll rendelkezésre, ezek közül 3 periódikus, és 1 LFSR zaj. Elérhető továbbá minden szólamra független alul-, és felüláteresztő szűrő, és ASR burkológörbe is.

256 féle frekvencia áll rendelkezésre, ahol a frekvencia a beírt érték 16-szorosa. Alkalmazható a generált hang frekvenciájára és a szűrő levágáshatárára:
    ¤f=x*16Hz
    ¤Frekvenciatartomány: 0Hz-4,096kHz

Elérhető periódikus hangok:
    ¤Pulzus változtatható kitöltéssel
    ¤Háromszög
    ¤Szinusz
    ¤És ezek invertált formái
A csatornákat kis is lehet olvasni az arra szolgáló regiszterből.
A fűrészfogjelet úgy lehet elérni, hogy a háromszögjel/szinuszjel kiválasztása után 50%-nál nagyobb pulzusszélességet állítunk be. Ez a hanggenerátor (ICL8038) adottságaiból ered. A hullám és burkológörbegenerátor akkor kapcsolódik be, amikor a beírt hullámfrekvencia (nem szűrőfr.!) nem 0.

Vezérlők bitenkénti bontásban:
    ¤7:---
    ¤6-5:hanghullám
        ¤00:tartási szinttel megegyező feszültség digitális hangokhoz
        ¤01:szinusz
        ¤10:háromszög
        ¤11:pulzus
    ¤4-3: olvasható kimeneti mód
        ¤00:egyik sem
        ¤01:csak hanggenerátor
        ¤10:csak burkológörbe
        ¤11:hanggenerátor és burkológörbe
    ¤2:aluláteresztő aktiválás
    ¤1:felüláteresztő aktiválás
    ¤0:generátor invertálása (1: aktív)

Burkológörbe byte bitenkénti bontásban (lásd: lap alja):
    ¤7-4:felfutás/elengedés
    ¤3-0:tartási szint
    A generátor bekapcsolásakor a hangerő a 7.-4. bitben megadott ideig növekszik a 3.-0. bitben megadott szintre, kikapcsolásakor pedig az ugyanott (7.-4. bit) megadott ideig csökken némára. Az ábrán a fekete grafikon a hozzávetőleges hangerőt jelenti, a részcímek feletti számok a bitek tartományát, a zöld sáv pedig azt, hogy mikor volt a generátor bekapcsolva.

Pulzusszélesség:
    0-255 közti értéket lehet ide beírni, és a kitöltés 50%-100% között mozog. 0 jelent 50%-ot, 255 jelent 10
0%.ot.

LFSR zaj felbontás és algoritmus:
    A $15-ös memóriacímen nem a zaj pulzusszélességét, hanem a minőségét és a visszacsatolási algoritmust lehet beállítani.
    ¤7-2: bitmélység
    ¤1-0: vissacsatolási logika száma

Digitális hangok képzése:
    Ha egy, a játékkártyán tárolt hangot szeretnénk visszajátszani (akármelyik csatornán, mindegyik képes erre), akkor a hanghullámot 00-ra kell állítani, ilyenkor a csatorna kimeneti feszültsége egyenlő lesz a burkológörbe tartási szintjével. Ezután a tartási szintet kell a digitális hang mintái szerint folyamatosan állítgatni. Max. 4 bites hangot lehet kelteni. A digitális hang tárolása, és a visszajátszási frekvencia a szoftvertől függ, de mindig dekódolni kell nyers PCM-be.

Memóriatérkép:
    (1. szólam, 2. szólam, 3. szólam, LFSR, funkció)
    ¤$00 $06 $0c $12 | frekvencia
    ¤$01 $07 $0d $13 |szűrőfrekvencia
    ¤$02 $08 $0e $14 | burkológörbe
    ¤$03 $09 $0f  $15 |pulzusszélesség
    ¤$04 $0a $10 $16 | vezérlő
    ¤$05 $0b $11 $17 | hangkimenet



Nincsenek megjegyzések: