36. Zvuk v šestnástich bitoch: DSOUND

Na čo to je

Výška tónu v príkaze SOUND je číslo 0 až 255. To je málo: vysoké tóny sú od seba ďaleko a ladia falošne, hlboké sa nedajú zahrať vôbec. Atari vie dva hlasy spojiť do jedného s výškou 0 až 65535 – jemnejšou 256-krát. Turbo-BASIC XL má na to DSOUND (double sound).

Ako sa to píše

Turbo Basic XL
DSOUND hlas,výška,skreslenie,hlasitosť
DSOUND
HodnotaRozsahVýznam
hlas0 alebo 1hlas 0 je spojenie obyčajných hlasov 0 a 1, hlas 1 spojenie hlasov 2 a 3
výška0–65535menšie číslo je vyšší tón
skresleniepárne 0–1410 je čistý tón, ako pri SOUND
hlasitosť0–15

DSOUND bez čísel vypne všetko. Aj SOUND bez čísel vypne všetky štyri hlasy naraz.

Z dvoch dvojíc sú len dva spojené hlasy, takže naraz zahráš najviac dva jemne ladené tóny namiesto štyroch hrubých.

Čísla výšky nie sú tie isté ako pri SOUND. Približne platí: výška pre DSOUND je 28-násobok výšky pre SOUND s tým istým tónom. Stredné C (SOUND 121) je asi 3413.

Celý program

Súbor examples/dsound.tbas zahrá plynule stúpajúci tón – sirénu, akú SOUND plynulo nespraví:

Turbo Basic XL
10 REM DSOUND: two voices joined into one finer one
20 FOR P=2000 TO 500 STEP -20
30   DSOUND 0,P,10,8
40   PAUSE 1
50 NEXT P
60 DSOUND
70 SOUND

Preklad a spustenie

Basic26 dsound.tbas --run

Zvuk počuť len v emulátore alebo na Atari. Program navyše čaká cez PAUSE, takže do simulátora nepatrí.

Čo uvidíš

Nič – budeš počuť tón, ktorý asi sekundu a pol plynule stúpa.

Ako to funguje

Kedy DSOUND a kedy SOUND

Časté chyby

Čo sa staloČo sa stane
výška z tabuľky pre SOUNDtón je skoro o päť oktáv vyššie – nepríjemné pískanie
SOUND 0,… počas DSOUND 0,…bijú sa o ten istý hlas
chýba čakanie v slučketón prebehne príliš rýchlo
po DSOUND hrá SOUND falošnevypni najprv všetko príkazom SOUND bez čísel
hlas 2 alebo 3spojené hlasy sú len dva: 0 a 1

Vyskúšaj si

  1. Sprav sirénu, ktorá stúpa a klesá päťkrát za sebou.
  2. Zahraj stupnicu: výšky 3413, 3040, 2708, 2555, 2276, 2027, 1805, 1703, každú na štvrť sekundy.
  3. Zahraj dva spojené hlasy naraz (DSOUND 0,… a DSOUND 1,…) s výškami 3413 a 2276.

Zhrnutie

Späť: 35. Kruhy a výplne · Ďalej: 37. Disketa