Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка синтезатора звуку в середовищі візуального програмування Delphi. Програмна реалізація

Реферат Розробка синтезатора звуку в середовищі візуального програмування Delphi. Програмна реалізація





eFormatEx) + Length (DataId) + SizeOf (DWORD) + DataCount; (RiffId [1], 4);// Laquo; RIFF (RiffCount, SizeOf (DWORD));// File data size (WaveId [1], Length (WaveId));// Laquo; WAVE (FmtId [1], Length (FmtId));// Laquo; fmt :=SizeOf (TWaveFormatEx); (TempInt, SizeOf (DWORD));// TWaveFormat data size (WaveFormatEx, SizeOf (TWaveFormatEx));// WaveFormatEx record (DataId [1], Length (DataId));// Laquo; data (DataCount, SizeOf (DWORD));// Sound data size:=TFreqObj (freqlist.objects [0]). Ftemp;:=0;:=false;:=samplerate div 2; i:=0 to trunc (2/minfreq * samplerate) do:=0 ; j:=0 to freqlist.count - 1 doTFreqObj (freqlist.objects [j]) lt; gt; nil thenTFreqObj (freqlist.objects [j]) doftemp gt; sampdiv2 then freqerror:=true;:=2 * Pi * Ftemp;:=p/pi;:=soundvalue+trunc(Volume*a/1000*sin(ph+i*w/SampleRate);;soundvaluegt;maxvalmaxval:=soundvalue;;i :=0 to DataCount - 1 do:=127; j:=0 to freqlist.count - 1 doTFreqObj (freqlist.objects [j]) lt; gt; nil thenTFreqObj (freqlist.objects [j]) doftemp lt; sampdiv2 then:=samplerate/Ftemp; j=0 then setlength (imagedata, min (datacount, trunc (5 * ptspercycle)));:=frac (i/ptspercycle + p/360);:=a/1000;:= 2 * Pi * Ftemp;:=p/pi;:=soundvalue + trunc (Volume * amp * sin (ph + i * w/SampleRate)) ;;; maxval gt; 127 then byteval:=soundvalue * 127 div maxvalbyteval:= soundvalue; (Byteval, SizeOf (Byte)); i lt;=high (imagedata) then imagedata [i]:=byteval;

end ;;


3.2 Запис звуку у файл


Одержаний звук можна записати у файл формату .WAV. Створюючи потік для програвання нашої хвилі, ми вже задали в самому його початку формат даних, всі характеристики нашої звукової хвилі, тобто ми маємо заголовок і власне звукову хвилю у вигляді потоку даних. Клас TMemoryStream, яким ми користуємося для зберігання потоку в пам'яті, містить метод SaveToFile. За допомогою даного методу ми зберігаємо наш потік у файл формату .WAV довжиною в 1 секунду. Даний файл може бути відтворений в будь-якому програвачі.

Нижче представлений код процедури запису звуку в файл:

procedure TForm1.Button1Click (Sender: TObject); програма генератор звукButton1.Caption= Запис у файл then.Click; .Caption:= Зберегти raquo ;; if Button1.Caption= Зберегти then (nil, 0, SND_Purge);:=false; SaveDialog2.Execute then [streaminuse] .SaveToFile (SaveDialog2.FileName) ;. Caption:= Запис у файл raquo ;; assigned (ms [streaminuse]) then freeandnil (Ms [streaminuse]);

end ;;;

Висновок


У ході виконання курсового проекту були вивчені основи програмування для роботи зі звуком: вивчені основні поняття, деякі класи для роботи зі звуком, а також використання потоків в створюваному додатку. Як приклад отриманих навичок було розроблено додаток Генератор звуку.

Розроблене додаток складається з наступних основних класів: TFreqObj, TMemoryStream, TWaveFormatEx; також був використаний модуль MMSystem. Клас TFreqObj зберігає в собі характеристики конкретної частоти, TMemoryStream використовується для зберігання аудіоданих в бінарному вигляді для подальшого відтворення, а TWaveFormatEx - для зберігання формату аудіоданих і таких його характеристик, як якість звуки і типу даних.

Результат роботи може використовуватися на будь-якому ПК для створення і вивчення синусоїдального звуку.


Список використаних джерел


Вікіпедія - вільна енциклопедія//URL: http://wikipedia - найбільший ресурс в Росії про створення комп'ютерних ігор//URL: http://gamedev - програмування звуку в середовищі Windows//URL: http://soundcoding

Кінтцель, Т. Керівництво програміста по роботі зі звуком/Т. Кінтцель.- М .: ДМК, 2000. - 432 с.


Додаток А


Скріншот роботи програми


Додаток Б


Вихідний кодU_SoundGen2 ;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ,, mmsystem, StdCtrls, ComCtrls, Menus, CheckLst, ExtCtrls, shellAPI, Buttons;=class (TObject), f , P, a, shape: INTEGER;: String; Create (newf, newP, newA, newshape: integer); makestringrep ;;=0..127;=class (TForm): TPageControl ;: TTabSheet ;: TOpenDialog ;: TSaveDialog ;: TTabSheet ;: TLabel ;: TLabel ;: TLabel ;: TLabel ;: TLabel ;: TButton ;: TButton ;: TTrackBar ;: TCheckListBox ;: TTrackBar ;: TRadioGroup ;: TEdit ;: TEdit ;: TEdit ;: TRadioGroup ;: TUpDown ;: TLabel ;: TLabel ;: TLabel ;: TButton ;: TSaveDialog; PlayBtnClick (Sender: TObject); StopBtnClick (Sender: TObject); VolBarChange (Sender: TObject); FormCreate (Sender: TObject); FreqbarChange (Sender: TObject ); RateRgrpClick (Sender: TObject); VolEditChange (Sender: TObject); FreqEditChange (Sender: TObject); FreqEditKeyPress (Sender: TObject; var Key: Char); Button1Click (Sender: TObject);

{Private declarations}

{Public declarations}: array ...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Запис в графічний файл формату BMP
  • Реферат на тему: Прикладне додаток &Розробка проекту для створення нового класу Auto і елеме ...
  • Реферат на тему: Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у ...
  • Реферат на тему: Зйомка відеофільму формату S-VHS при запису звуку на жорсткий диск
  • Реферат на тему: Програма, що реалізує роботу з текстом і збереженням даних у файл