![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.11.2012
Сообщений: 8
|
![]()
Всем доброго времени суток! Есть готовая структура пустого wav файла. Помогите создать любое элементарное звуковое наполнение этого файла.
program wwav; type TWaveHeader = record Marker1: Array[0..3] of Char; BytesFollowing: LongInt; Marker2: Array[0..3] of Char; Marker3: Array[0..3] of Char; Fixed1: LongInt; FormatTag: Word; Channels: Word; SampleRate: LongInt; BytesPerSecond: LongInt; BytesPerSample: Word; BitsPerSample: Word; Marker4: Array[0..3] of Char; DataBytes: LongInt; end; procedure CreateWavFile(const aSampleRate,aDuration,aBits,aChanne ls:integer; const aName:String); var WaveHeader:TwaveHeader; f:file; DataBytes:longint; i:longint; spm:longint; begin DataBytes := aChannels; DataBytes := DataBytes * aSampleRate; DataBytes := DataBytes * aBits; DataBytes := DataBytes div 8; DataBytes := DataBytes * aDuration; DataBytes := DataBytes div 1000; WaveHeader.Marker1 := 'RIFF'; WaveHeader.BytesFollowing := DataBytes + 36; WaveHeader.Marker2 := 'WAVE'; WaveHeader.Marker3 := 'fmt'; WaveHeader.Fixed1 := 16; WaveHeader.FormatTag := 1; WaveHeader.SampleRate := aSampleRate; WaveHeader.Channels := aChannels; WaveHeader.BytesPerSecond := aChannels; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * aSampleRate; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * aBits; WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond div 8; WaveHeader.BytesPerSample := aChannels * aBits div 8; WaveHeader.BitsPerSample := aBits; WaveHeader.Marker4 := 'data'; WaveHeader.DataBytes := DataBytes; Assign(f,aName); Rewrite(f,i); BlockWrite(f,WaveHeader,SizeOf(Wave Header)); for i:=0 to WaveHeader.DataBytes-1 do begin //любой звук end; Close(f); end; begin CreateWavFile(44100,3000,8,1,'mwav. wav'); end. Последний раз редактировалось Andy_G; 26.05.2013 в 03:01. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Вы, вообще-то, сами понимаете, о чем просите?
Цитата:
Код:
Код:
|
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 21.11.2012
Сообщений: 8
|
![]()
Компилятор фри паскаля выдает ошибку: Identifier not found "MaxSoundWalue".
Пробовал сделать изменение звука по синусоиде, но все равно wav файл пустой вместо. //любой звук написал: Spm:=Round(sin(2*Pi*(5*i/aSampleRate)*(500*i/aSampleRate))); BlockWrite(f,Spm,1); Все нормально компилируется, но файл пустой. Где ошибка? |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание Wav-файла | DelhiProgramer | Мультимедиа в Delphi | 1 | 13.08.2012 14:14 |
декомпиляция Wav файла | DzetaHunter | Общие вопросы Delphi | 3 | 14.01.2011 13:17 |
Анализ Wav файла | lacost | Общие вопросы по Java, Java SE, Kotlin | 4 | 17.12.2010 12:09 |
Спектр wav файла | varvara16 | Мультимедиа в Delphi | 3 | 01.02.2010 08:10 |
Наполнение файла мусором (перед удалением) Delphi | Lime | Помощь студентам | 5 | 09.10.2009 11:07 |