NXC dźwięki: Różnice pomiędzy wersjami

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania
 
(Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
 
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.
 
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.
 +
 +
__FORCETOC__
  
 
==Odgrywanie dźwięków==
 
==Odgrywanie dźwięków==
Linia 47: Linia 49:
 
==Odgrywanie tonów==
 
==Odgrywanie tonów==
  
Najpierw posłużymy się poleceniem <code>PlayTone(frequency, duration)</code>
+
Najpierw posłużymy się poleceniem <code>PlayTone(frequency, duration)</code>, czyli podajemy ''częstotliwość z hz'' oraz ''czas trwania''.
  
 
<pre>
 
<pre>

Aktualna wersja na dzień 12:51, 5 lut 2014

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);
}