dźwięki w Pascalu


Dźwięki w Pascalu

Wprowadzenie do teorii dźwięku

Dźwięk muzyczny to dźwięk o określonej wysokości tworzony przez instrument muzyczny lub głos ludzki.

Cechy dźwięku:

Ucho ludzkie jest w stanie słyszeć dźwięki z zakresu 16 do 20000 drgań na sekundę (Hz). Zakres wykorzystywany przez tradycyjne dźwięki muzyczne wynosi od 16 do 16834 drgań na sekundę. Dźwięki o częstotliwości powyżej 16834 cykli na sekundę są zwykle tworzone przez instrumenty elektroniczne.

Skala muzyczna

Skala muzyczna to podstawowy zestaw dźwięków muzycznych. W tradycyjnej muzyce europejskiej tworzy ją 8 dźwięków, z których najwyższy jest powtórzeniem najniższego w interwale oktawy.

Zakres dźwięków jest tradycyjnie podzielony na 10 oktaw. Podstawowym dźwiękiem oktawy jest dźwięk C. Częstotliwości kolejnych dźwięków C są elementami szeregu geometrycznego o ilorazie 2, przy czym najniższemu C odpowiada w przybliżeniu dźwięk o częstotliwość 16 Hz (cykli na sekundę).

Nazwa oktawy

Częstotliwość dźwięku C oktawy w Hz

Oznaczenia dźwięków

16,351598

C2 D2 E2 F2 G2 A2 H2

lub 0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic

32,703196

C1 D1 E1 F1 G1 A1 H1

lub C D E F G A H

65,406391

C D E F G A H

130,812783

c d e f g a h

261,625565

c1 d1 e1 f1 g1 a1 h1

523,251132

c2 d2 e2 f2 g2 a2 h2

1046,502261

c3 d3 e3 f3 g3 a3 h3

2093,004249

c4 d4 e4 f4 g4 a4 h4

4186,009042

c5 d5 e5 f5 g5 a5 h5

8372,018085

c6 d6 e6 f6 g6 a6 h6

Tabela 1 - poszczególne oktawy

Dźwięk

Współczynnik

Poszczególne oktawy

subkontra

kontra

wielka

mała

razkreslna

dwukreślna

trójkreślna

czterokreślna

pięciokrerślna

sześciokreślna

C

1

16

33

65,4

131

262

523

1046

2093

4186

8372

D

1,1225

18

37

73

147

294

587

1175

2349

4699

9398

E

1,2599

21

41

82

165

330

659

1318

2637

5274

10548

F

1,3348

22

44

87

175

349

698

1397

2794

5587

11175

G

1,4983

24

49

98

196

392

784

1568

3136

6272

12544

A

1,6818

27

55

110

220

440

880

1760

3520

7040

14080

H

1,8878

31

62

123

247

494

988

1976

3951

7902

15805

C2

2

33

65

131

262

523

1046

2093

4186

8372

16744

Każda oktawa zawiera siedem dźwięków diatonicznych, tworzących szereg określany w systemie dur-moll jako gama C-dur. Kolejno są to C, D, E, F, G, A, H (w angielskiej notacji B). Dźwięki posiadają też nazwy solmizacyjne kolejno: do, re, mi, fa, sol, la, si. Ósmy dźwięk gamy, kolejne C, jest zarazem pierwszym dźwiękiem następnej oktawy.

Osiem dźwięków występujących w gamie C-dur zwane jest naturalnym szeregiem diatonicznym. Dźwięki te odpowiadają białym klawiszom fortepianu. Rozkład częstotliwości dźwięków w pojedynczej oktawie nie jest równomierny.

0x01 graphic

Rysunek 1 -Gama na pięciolinii

Gama podstawowa

Gama podstawowa odpowiada dźwiękom z zakresu 260-530hz. Zwana jest również oktawą razkreślną.

Oktawa razkreślna

Dźwięk

Częstotliwość cykli na sekundę

c1

261,6

d1

293,7

e1

329,6

f1

349,6

g1

391,9

a1

440,0

h1

493,9

c2

523,2

Tabela 2 - rozkład dźwięków w gamie podstawowej

Dźwięk

Współczynnik częstotliwości

c1

10000

d1

11225

e1

12599

f1

13348

g1

14983

a1

16818

h1

18878

c2

20000

Tabela 3 - stosunek częstotliwości nut w oktawie

Odległość (różnica częstotliwości) pomiędzy dźwiękami naturalnego szeregu diatonicznego wynosi cały ton dla par c - d, d - e, f - g, g - a i a - h. Odległość pomiędzy parami e - f i h - c jest o połowę mniejsza i wynosi pół tonu. Półton jest najmniejszą odległością między dźwiękami stosowaną w muzyce europejskiej.

W związku z powyższym oktawę można podzielić na dwanaście półtonów. Dźwięki uzyskane poprzez podwyższenie lub obniżenie dźwięków z naturalnego szeregu noszą nazwę dźwięków chromatycznych.

Naturalna skala diatoniczna w połączeniu z dźwiękami chromatycznymi tworzy skalę chromatyczną.

Dźwięk
nazwa solmizacyjna

Dźwięk
nazwa literowa

Dźwięk podwyższony o pół tonu

Dźwięk obniżony o pół tonu

do

c

cis

ces

re

d

dis

des

mi

e

eis

es

fa

f

fis

fes

sol

g

gis

ges

la

a

ais

as

si

h

his

b

Tabela 4 - Dźwięki szeregu półtonowego

W zależności od wyjściowego dźwięku ten sam dźwięk może mieć różne nazwy (i różny zapis muzyczny):

Dźwięk podwyższony

Dźwięk obniżony

cis

des

dis

es

eis

f

fes

e

fis

ges

gis

as

ais

b

his

c

ces

h

Tabela 5 - porównanie dźwięków obniżonego i podwyższonego

Długość nuty

Nazwa nuty

symbol

Czas trwania

Cała nuta

0x01 graphic

Trwa najdłużej

Półnuta

0x01 graphic

Trwa o połowę krócej niż nuta.

Cała nuta trwa tyle, co dwie półnuty.

Ćwierćnuta

0x01 graphic

Trwa o połowę krócej niż półnuta.

Cała półnuta trwa tyle, co dwie ćwierćnuty.

Ósemka

0x01 graphic

Trwa o połowę krócej niż ćwierćnuta.

Cała ćwierćnuta trwa tyle, co dwie ósemki.

Szesnastka

Nutami o mniejszym czasie trwania są następnie:

Realizacja w Pascalu

Polecenia w pascalu

SOUND(x);

x - częstotliwość (w Hertzach)

Dźwięk wydawany z PC-Speakera. Zaraz po poleceniu "SOUND" najlepiej stosować polecenie "DELAY", które zatrzyma dźwięk na określoną ilość czasu.

DELAY(x);

x - czas w milisekundach.

Polecenie to daje możliwość wstrzymania programu na określoną ilość czasu (przydaje się zwłaszcza w programach demonstracyjnych).

NOSOUND;

Przerywa dźwięk wydobywający się ze spikera. Dobrze jest go stosować na końcu programu, bo może okazać się, że dźwięk nie ustanie.

Przykład 1

Program ten przez pięć sekund odegra bardzo denerwujący dźwięk.

PROGRAM jeden_dzwiek;

USES CRT;

BEGIN

sound(2200);

delay(5000);

nosound;

END.

Przykład 2

Program w zależności od wciśniętych klawiszy odgrywa określone dźwięki.

PROGRAM keyboard;

USES Crt;

VAR x:char;

BEGIN

REPEAT

x:=readkey; {wczytanie znaku z klawiatury}

sound(15*ord(x)); {ord -odczytuje nr ASCII tego znaku}

{sound -odgrywa dźwięk o takiej częstotliwości*15}

delay(100); {czas trwania dźwięku}

nosound;

UNTIL ord(x)=27; {kod klawisza ESCAPE}

END.

Ćwiczenie 1

Warto sprawdzić, jakie będą efekty następujących zmian w programie.

1 - usunięcie linijki nosound;

delay(100);

UNTIL ord(x)=27;

END.

2 - przesunięcie linijki nosound; poza pętlę

delay(100);

UNTIL ord(x)=27;

nosound;

END.

Aby wygenerować nuty, które jakoś brzmią, należy określić częstotliwość dźwięku w systemie równomiernie temperowanym. Przedstawiony poniżej kod ma za zadanie tego dokonać.

unit Sounds;
interface
uses Crt;

  const N_C  = 10000;
        N_Cis= 10595;
        N_D  = 11225;
        N_Dis= 11892;
        N_E  = 12599;
        N_F  = 13348;
        N_Fis= 14142;
        N_G  = 14983;
        N_Gis= 15874;
        N_A  = 16818;
        N_B  = 17818;
        N_H  = 18878;
 procedure TCSound (Note:Word; Oct:Byte);

implementation

 procedure TCSound (Note:Word; Oct:Byte);
 var OutNote:Single;
 begin
  OutNote := (Oct*261)*(Note / 10000);
  Sound (Round (OutNote));
 end;

end.

Muzyka z PC Speaker'a

Ta opcja nie daje zbyt pożądanych efektów, ale może być pomocna podczas tworzenia nie skomplikowanych gier lub programów użytkowych. Teraz zademonstruję jedynie odtwarzanie gamy dźwięków za pomocą pascal'a


{$N+}
PROGRAM Organki;
USES Crt;
CONST MaxNut=20;
     FirstK1 = 16;
     FirstK2 = 2;
     C       = 538;
     D       = 615;
VAR
 Temp  : Single;
 Temp2 : Single;
 Temp3 : Single;

 Tab:ARRAY [0..MaxNut] OF Word;

PROCEDURE Generate;
VAR i:Integer;
BEGIN
 Temp:=D;
 Temp2:=C;

 FOR i:=0 TO MaxNut DO
 BEGIN
   Temp3:=Temp+(Temp-Temp2)*65/71;
   Temp2:=Temp;Temp:=Temp3;
   Tab[i]:=Round(Temp);
 END;
END;


BEGIN
 Generate;
 REPEAT
   Sound(Tab[PORT[$60]-FirstK1]);
   IF KeyPressed THEN ReadKey;
   IF PORT[$60]>127 THEN NoSound;
 UNTIL PORT[$60]=1;
END.



Wyszukiwarka

Podobne podstrony:
Turbo Pascal projektowanie kart dźwiękowych
Norbert Kilen Programowanie Kart Dzwiekowych w Turbo Pascalu
Norbert Kilen Programowanie Kart Dzwiekowych w Turbo Pascalu
Wykład z Pascala 2
Dzwieki
PASCAL 1
Sem II Transport, Podstawy Informatyki Wykład XXI Object Pascal Komponenty
Formaty plików dźwiękowych
Dźwięk cyfrowy plik cyfrowy
ref 2004 04 26 object pascal
Prezentacja trójkątów Pascala
15 Realizowanie nagrań dźwiękowych na potrzeby spektakli
kurs pascala
barwy i dzwieki wiosennej laki
asystent operatora dzwieku 313[06] z2 04 n
Śmieszne dźwięki
AUTO, DO ĆWICZEŃ DŹWIĘKONAŚLADOWCZYCH

więcej podobnych podstron