Ver. 1.0 Beta, Nie masz kompilatora? Teraz moesz pisa skrypty ONLINE! Wersja podstawowa -nie zawiera wszystkich polece Pascala. Suy do nauki podstaw

Pascal

Muzyka z PC Speaker'a

Przykad demonstruje odtwarzanie gamy dwikw za pomoc pascal'a.


Tworzenie Gamy dwikw, czstotliwoci nut


W duym przyblieniu: C = 538Hz, D=615Hz, (nagraem widmo dwiku C granego na flecie i zbadaem czstotliwo najgoniejszego tonu) E = D * D / C, F = E * D / C itd..


Kady dwik gamy ma wasn czstotliwo, nastpny jest po prostu kolejnym elementem cigu geometrycznego. Ten sam dwik wyszej oktawy ma dokadnie dwukrotnie wysz czstotliwo. Dwikw w oktawie jest 8. Jest 8 dwikw granych normalnie, s te bemole i krzyyki. Kady kolejny dwik jest wyszy czstotliwoci od poprzedniego o okoo 71/65. Taki pomiar mona uzyska mierzc 2 ssiednie progi gitary. Ich stosunek da nam rnic wysokoci tonw. Za pierwszy dwik np. C mona przyj dowoln czstotliwo (tak jakby przestroi gitar), ale lepiej przyj standardow warto, ok 538Hz


A teraz w praktyce:




{$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.

 

Programy ON-LINE!

Strona korzysta z plikw cookie w celu wiadczenia usug Google (reklamy, statytyki) oraz Facebook. Jeli chcesz zablokowa pliki cookies wyacz je w swojej przegldarce. Potrzebujesz pomocy? kliknij