NXC dźwięki

Z SOISK systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania

Opisując wcześniej NXC instrukcje warunkowe i pętle użyliśmy poleceń odnoszących się do dźwięków, teraz zostanie to dokładniej wyjaśnione.


Odgrywanie dźwięków

W temacie NXC instrukcje warunkowe i pętle użyliśmy polecenia PlaySound(acode); przykładowo PlaySound(SOUND_DOUBLE_BEEP);

Poniżej lista aCode

aCode                 Resulting Sound      cyfrowo
SOUND_CLICK           key click sound         0
SOUND_DOUBLE_BEEP     double beep             1
SOUND_DOWN            sweep down              2
SOUND_UP              sweep up                3
SOUND_LOW_BEEP        error sound             4
SOUND_FAST_UP         fast sweep up           5

Można też posłużyć się cyframi od 0 do 5, np. PlaySound(1);

Przykłady zastosowania PlaySound(acode); są w zlinkowanym wyżej temacie, więc nie będę się powtarzać

Odtwarzanie z pliku

Służy do tego polecenie PlayFile("Nazwa_pliku.rso")

task main()
{
PlayFile("Woops.rso");
Wait(3000);
}

Można też użyć polecenia PlayFileEx("Nazwa_pliku.rso", głośność 0-4, pętla TRUE FALSE);

task main()
{
PlayFileEx("startup.rso", 3, true);
Wait(3000);
}

Oczywiście trzeba wcześniej wgrać plik .rso do pamięci. W BricxCC robimy to poprzez Tools => NXT explorer. Możemy też konwertować pliki do formatu .rso poprzez Tools => Sound conversion.

Odgrywanie tonów

Najpierw posłużymy się poleceniem PlayTone(frequency, duration), czyli podajemy częstotliwość z hz oraz czas trwania.

task main()
{
PlayTone(440, 400);
Wait(500);
PlayTone(294, 400);
Wait(500);
}

Poniżej częstotliwości (frequency) i odpowiadające im dźwięki

dźwięk   3    4    5    6    7    8     9
B        247  494  988  1976 3951 7902
A#       233  466  932  1865 3729 7458
A        220  440  880  1760 3520 7040  14080
G#            415  831  1661 3322 6644  13288
G             392  784  1568 3136 6272  12544
F#            370  740  1480 2960 5920  11840
F             349  698  1397 2794 5588  11176
E             330  659  1319 2637 5274  10548
D#            311  622  1245 2489 4978  9956
D             294  587  1175 2349 4699  9398
C#            277  554  1109 2217 4435  8870
C             262  523  1047 2093 4186  8372

Można też użyć rozszerzonej wersji, czyli PlayToneEx(frequency, duration, volume, loop)

Głośność (volume) ma zakres 0-4

Pętla (loop) przyjmuje wartości logiczne true albo false)

task main()
{
PlayToneEx(262,400,3,FALSE); Wait(500);
PlayToneEx(294,400,3,FALSE); Wait(500);
PlayToneEx(330,400,3,FALSE); Wait(500);
PlayToneEx(294,400,3,FALSE); Wait(500);
PlayToneEx(262,1600,3,FALSE); Wait(2000);
}