NXC dźwięki
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); }