Kategória: Programy v Pascale (KMP)
Autor: Martin Koleček
Program: Editsnd.pas, Speaker.pas
Potrebné: Manual_snd.txt
S programem EditSnd.exe je mozne generovat soubory s priponou SND. Tyto soubory maji slouzit k ozvuceni programu na profesionalni urovni pomoci PC Speakeru. Vyuziva se k tomu preruseni od casovace nastavene na 100Hz tzn. vzorkovaci frekvence prehravanych zvuku je 100Hz. Nedochazi ke zhrouceni hodin vse je osetreno tak aby sly prehravat zvuky, aby spravne sly hodiny a zaroven aby program mohl vykonavat jine ulohy. Vse bezi na pozadi pres int8 viz. unit speaker.pas.
Zobrazené: 708x
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
Manual k programu EditSND
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
Obsah:
1. Vyznam editoru
2. Zvukovy format SND
3. Prace s editorem
4. Kontaktni adresa
5. Unit Speaker.pas
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
1. VYZNAM EDITORU
S programem EditSnd.exe je mozne generovat soubory s priponou SND. Tyto
soubory maji slouzit k ozvuceni programu na profesionalni urovni pomoci
PC Speakeru. Vyuziva se k tomu preruseni od casovace nastavene na 100Hz
tzn. vzorkovaci frekvence prehravanych zvuku je 100Hz. Nedochazi ke
zhrouceni hodin vse je osetreno tak aby sly prehravat zvuky, aby spravne
sly hodiny a zaroven aby program mohl vykonavat jine ulohy. Vse bezi na
pozadi pres int8 viz. unit speaker.pas
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
2. ZVUKOVY FORMAT SND
Soubor SND generovany programem EditSND.exe je muj vlastni format takze
neni mozne pomoci tohoto editoru otevirat soubory s priponou snd ktere se
vyskytovaly napr. ve starych hrach, tam je struktura souboru zcela odlisna
od te moji.
V mem souboru SND jsou dve hlavni casti ato:
prvnich 4000 bajtu (2000 wordu - blok dat 1)
dalsich 200 bajtu ( 100 wordu - blok dat 2)
V souboru snd je mozne ulozit az 50 zvuku [0..49]. Jeden zvuk je popsan
dvema cisly: ZACATKEM a DELKOU v tabulce (druhy blok dat) a samotnymi
zvukovymi daty (prvni blok dat).
Prvnich 2000 wordu(slov) obsahuje hodnoty vysky prehravaneho zvuku. Jsou
tam ulozeny hodnoty v rozsahu 0..1000. Pri prehravani se pak jde rychlosti
vzorkovaci frekvence word po wordu a nastavuje se vyska prehravaneho tonu
na PC Speakeru.
Zbyvajicich 200 bajtu: V teto casti je ulozena tabulka jednotlivych zvuku.
Kazdy sudy word v teto tabulce predstavuje ZACATEK a kazdy lichy DELKU.
Priklad Zvuk[0]:
V druhem bloku dat je jeho ZACATEK na nultem wordu a DELKA na prvnim wordu.
Priklad Zvuk[49]:
V druhem bloku dat word 98 urcuje ZACATEK a word 99 urcuje DELKU
Co je to ZACATEK: ZACATKEM zvuku je mineno cislo ktere urcuje kde v prvnim
bloku dat zacinaji data tohoto zvuku. Napr zvuk[20] ma ZACATEK=1600
a DELKA=100. Data tohoto zvuku zacinaji v prvnim bloku dat na wordu 1600 a
sahaji az k wordu 1700 (ZACATEK+DELKA)
Co je to DELKA: Je to pocet wordu(slov) ktere zabira dany zvuk v prvnim
bloku dat. Maximalni DELKA jednoho zvuku je 300 wordu coz pri vzorkovaci
frekvenci 100Hz odpovida trem vterinam zvuku.
Jak asi vyplynulo vysledny soubor snd ulozi 20 vterin ruznych zvuku pro
PC Speaker, pri delce jednoho zvuku pul vteriny je to asi 40 zvuku. Pro
Zaokrouhleni a taky pro jistotu jsem tam dal moznost ulozit 50 zvuku.
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
3. PRACE S EDITOREM
Po spusteni programu EditSND.exe se objevi nahore lista a po stisku sipky
dolu se otevre menu s nabidkami. Na liste je : napis MENU, napis EDITOR
ZVUKU dale je tam soubor= a sem se dosadi jmeno editovaneho souboru a
napis F10=EXIT
V nabidce ktera se objevi po stisku sipky dolu jsou moznosti: VYTVORIT,
ULOZIT, OTEVRIT, EDITOR a NAPOVEDA. V menu se pohybujeme sipkami nahoru a
dolu, vyber se provadi stiskem ENTER nebo pomoci klavesovych zkratek.
F1 = zobrazi napovedu (ESC=Zpet)
F2 = ulozeni, program sam nikde nevyzyva k ukladani proto nezapomente F2
F3 = spusti dialog pro zadani jmena existujiciho souboru k otevreni,
jmeno souboru k otevreni stejne jako u vytvareni noveho se zadava ve
tvaru jmeno souboru bez pripony dlouhe max. 8 znaku, priponu snd si
editor dosazuje sam, potvrezeni jmena se provadi stiskem ENTER
F4 = spusti dialog pro vytvoreni noveho souboru, stejne jako u otevirani
F5 = pokud mame zadane nejake jmeno souboru a vidime ho na liste tak se
spusti graficky editor zvuku (ESC=navrat zpet do textoveho menu)
F10 = konec programu
F5 Graficky editor zvuku:
Zobrazi se seznam jednotlivych zvuku. Co je k videni na jednom radku:
Cislo od 0 do 49 udava cislo zvuku, dale ZACATEK=(0..1999), DELKA=(0..300)
a ROZSAH kde vidime ktere wordy v prvnim bloku dat ve vyslednem souboru
budou obsazeny vybranym zvukem. Sipkami nahoru a dolu se pohybujeme mezi
jednotlivymi zvuky na trech obrazovkach (zvuky 0..19 , 20..39 , 40..49 ).
Sipkami doleva a doprava menime pozici kurzoru (barevne oznaceni) a
vybirame jestli budeme editovat ZACATEK nebo DELKU vybraneho zvuku.
Klavesami Insert a Delete pridavame a ubirame jednotky
Home a End pridavame a ubirame desitky
PgUp a PgDn pridavame a ubirame stovky
Rozsahy jake muzeme pomoci techto klaves nastavovat jsou:
pro ZACATEK 0..1999 (2000 Wordu = 4000 Bajtu)
pro DELKU 0..300
Stiskem Enter nebo F6 na vybranem zvuku spustime obrazovku ktera nam
umozni naeditovat jakou podobu bude mit tento zvuk. Na teto obrazovce je
dole mala sipka kterou pohybujeme klavesami doprava a doleva a tak se
pohybujeme po zvuku po jeho jednotlivych krocich. Vlevo nahore hned vidime
jak se meni cislo ktere nam rika jakou vysku bude mit tato cast zvuku.
Doleva a doprava se muzeme pohybovat po rozsahu DELKY vybraneho zvuku.
Pokud nemame v listu jednotlivych zvuku nastavenou nejakou DELKU zvuku
tak se nam na teto obrazovce zobrazi jen delka nula a malou sipkou nepujde
pohybovat.
Klavesami Insert a Delete pridavame a ubirame jednotky
Home a End pridavame a ubirame desitky
PgUp a PgDn pridavame a ubirame stovky
Rozsah jaky muzeme pomoci techto klaves nastavovat je 0..1000
Jakmile pomoci zminenych klaves nastavime nejake vysky tonu pro PC Speaker
vidime to graficky jako sloupce, sloupec se zvysi o jeden pixel pri zvyseni
o deset. Muzeme editovat s presnosti i na jednotky pomoci Insert a Delete
a vysledny zvuk se bude menit jen to neuvidime na sloupci. Jako cislo v
rohu nahore vlevo to vsak videt bude.
Stiskem klavesy P muzeme vysledny zvuk hned prehrat, tato moznost prehrani
pomoci klavesy P je i v nabidce jednotlivych zvuku tam jak se edituje
ZACATEK a DELKA.
Navrat do nabidky jednotlivych zvuku provedeme pomoci F5 nebo ESC. Protoze
i navrat do textoveho menu se provadi pomoci ESC tak doporucuju spis F5 ale
preskoceni az do textoveho menu by nemelo hrozit ani stiskem ESC. Ukladat
pomoci klavesy F2 je mozne jak v textovem menu tak v nabidce jednotlivych
zvuku tak i na obrazovce s editovanym zvukem.
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
4. KONTAKTNI ADRESA
Kritiku nebo nejake dotazy ohledne editoru nebo meho formatu snd posilejte
na kolecek.martin@email.cz
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
5. UNIT SPEAKER.PAS
Tato knihovna obsahuje:
Procedure InitSound;
Procedure ShutdownSound;
Procedure LoadSNDFile(Filename:String);
Procedure PlaySound(Sample:Byte);
Function FPS2s: Boolean; {pomoc pri vypoctu fps pomoci timeru}
InitSound
Je nutno zavolat na zacatku programu. Tato procedura nastavuje novou
obsluhu preruseni 8 (timer) a nastavuje frekvenci timeru na 100Hz. Bez
zavolani teto procedury by nebylo mozne prehravat zvuky na pozadi.
ShutdownSound
Je nutno zavolat na konci programu. Tato procedura vse uvede zase do
puvodni podoby, nastavi zpatky starou obsluhu preruseni 8 (timer).
LoadSNDFile(Filename:String)
Nacte z disku soubor snd se zvuky do pameti. Filename se zadava vcetne
pripony napr. LoadSNDFile('test.snd');
PlaySound(Sample:Byte); {Sample v rozsahu 0..49 viz soubor}
Spusti prehravani zvuku. Sample=Cislo ktery zvuk z tabulky zvuku chceme
prehrat napr PlaySound(20); Pokud hned po jednom zavolani PlaySound
zavolame dalsi tak ze se jeste nestacil prehrat predchozi zvuk tak dojde k
tomu ze se ten drivejsi zasatavi a zacne hrat novy. Kazde zavolani
PlaySound spousti nove prehravani a trvale rusi predchozi.
a nakonec funkce FPS2s: Boolean {pro prehravani zvuku neni treba}
Toto jsem do unitu pridal jako pomocnou rutinu pri vypoctu fps. Funkce
vraci True po dobu jedne vteriny a po dobu druhe vteriny zase vraci False.
Pak zase true atd.
Priklad programu;
USES CRT,Speaker;
Begin
InitSound;
LoadSNDFile('test.snd');
PlaySound(0);
Delay(2000);
ShutdownSound;
End.
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
[Uložiť] [Tlač] [Poslať e-mailom] |