Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Как: Wav файл oт Windows към ADC на процесорна система
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3949
Страница 1 от 1

Автор:  abramabra [ Вто Мар 27, 2007 12:01 pm ]
Заглавие:  Как: Wav файл oт Windows към ADC на процесорна система

Знам, че въпросът ми е повече за все още неоткрития раздел "програми за персонални компютри" в тоя форум, но се надявам да ми помогнете, без много да се нервите :) .

Как да прехвърля Wav файл oт Windows към ADC на процесорна система?

Има примери за различни процесори, където направо се записва wav файла в процесора, но в момента ме интересува как да преобразувам един wav файл в последователност от амлитуди.
Разбира се, има wav файлове с различни подформати (и компресии).

Автор:  ps66 [ Вто Мар 27, 2007 12:13 pm ]
Заглавие:  Re: Как: Wav файл oт Windows към ADC на процесорна система

abramabra написа:
Знам, че въпросът ми е повече за все още неоткрития раздел "програми за персонални компютри" в тоя форум, но се надявам да ми помогнете, без много да се нервите :) .

Как да прехвърля Wav файл oт Windows към ADC на процесорна система?

Има примери за различни процесори, където направо се записва wav файла в процесора, но в момента ме интересува как да преобразувам един wav файл в последователност от амлитуди.
Разбира се, има wav файлове с различни подформати (и компресии).


почти няма WAV с компресия - прекачаш хедъра на файла (sizeof(WAV_HEADER_FMT)) и ето ти ъъъъ.... амплитуди (според формата на WAV - моно, стерео, .. честота ...)

#pragma pack(1)
typedef struct _WAV_HEADER_FMT {
ULONG RIFFString;
ULONG RIFFSize;
ULONG WAVEString;
ULONG FmtString;
ULONG FmtSize;
SHORT wFormatTag;
USHORT wChannels;
ULONG uSamplesPerSec;
ULONG uAvgBytesPerSec;
USHORT wBlockAlign;
USHORT wBitsPerSample;
ULONG DataString;
ULONG DataSize;
} WAV_HEADER_FMT;
#pragma pack()

Автор:  relsys [ Вто Мар 27, 2007 1:14 pm ]
Заглавие: 

ето ти един проект който съм писал на Delphi, за компресиране на *.wav файлове 16:1 и изпълнението им от MCU

Прикачени файлове:
Pic Sound.rar [198.87 KiB]
242 пъти

Автор:  abramabra [ Вто Мар 27, 2007 2:15 pm ]
Заглавие:  Re: Как: Wav файл oт Windows към ADC на процесорна система

Благодаря - много е полезно :)

ps66 написа:
typedef struct _WAV_HEADER_FMT {
...} WAV_HEADER_FMT;
#pragma pack()


Впрочем, това къде е дефинирано?
Някои от полетата не са ми ясни.

Автор:  abramabra [ Вто Мар 27, 2007 2:17 pm ]
Заглавие: 

Благодаря!

relsys написа:
ето ти един проект който съм писал на Delphi, за компресиране на *.wav файлове 16:1 и изпълнението им от MCU


Ами "procedure Compress_Wave;" не ми е ясна (не че е задължително), и ако искам да направя обратното на асемблер - ще трябва да си я изясня.
Знам, че е доста безочливо, но някаква сламка да имаш? :)

Автор:  ps66 [ Вто Мар 27, 2007 2:35 pm ]
Заглавие:  Re: Как: Wav файл oт Windows към ADC на процесорна система

abramabra написа:
Благодаря - много е полезно :)

ps66 написа:
typedef struct _WAV_HEADER_FMT {
...} WAV_HEADER_FMT;
#pragma pack()


Впрочем, това къде е дефинирано?
Някои от полетата не са ми ясни.


никъде - това е хедъра на WAV !

за повече виж в:
http://msdn2.microsoft.com/en-us/library/aa908934.aspx
и mmreg.h

Автор:  abramabra [ Вто Мар 27, 2007 2:39 pm ]
Заглавие:  Re: Как: Wav файл oт Windows към ADC на процесорна система

ps66 написа:
никъде - това е хедъра на WAV !
за повече виж в:
http://msdn2.microsoft.com/en-us/library/aa908934.aspx

Е за това питах :)
Извинявай, трябваше първо да пробвам в МСДН-то

Автор:  ps66 [ Вто Мар 27, 2007 2:47 pm ]
Заглавие:  Re: Как: Wav файл oт Windows към ADC на процесорна система

abramabra написа:
ps66 написа:
никъде - това е хедъра на WAV !
за повече виж в:
http://msdn2.microsoft.com/en-us/library/aa908934.aspx

Е за това питах :)
Извинявай, трябваше първо да пробвам в МСДН-то


WAV_HEADER_FMT (хедъра на WAV файла) не е WAVEFORMATEX, но полетата им:

WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
и
SHORT wFormatTag;
USHORT wChannels;
ULONG uSamplesPerSec;
ULONG uAvgBytesPerSec;
USHORT wBlockAlign;
USHORT wBitsPerSample;


са еднакви !

Автор:  relsys [ Вто Мар 27, 2007 5:01 pm ]
Заглавие: 

abramabra написа:
Благодаря!

relsys написа:
ето ти един проект който съм писал на Delphi, за компресиране на *.wav файлове 16:1 и изпълнението им от MCU


Ами "procedure Compress_Wave;" не ми е ясна (не че е задължително), и ако искам да направя обратното на асемблер - ще трябва да си я изясня.
Знам, че е доста безочливо, но някаква сламка да имаш? :)


утре ще изровя линка и ще ти го пратя, че това го правихме с колегата преди доста време и аз се занимавах само с тоя компресор и съм забравил кое от къде е вече......... :)

Автор:  abramabra [ Вто Мар 27, 2007 5:57 pm ]
Заглавие: 

relsys написа:
утре ще изровя линка и ще ти го пратя, че това го правихме с колегата преди доста време и аз се занимавах само с тоя компресор и съм забравил кое от къде е вече......... :)


Чакам и се надявам :)

Благодаря!

Автор:  abramabra [ Сря Мар 28, 2007 2:32 pm ]
Заглавие: 

Изпращам оригиналния проект с добавен чарт с две серии - едната оригиналния wav, а другата - компресирания. Нещо не е много ОК, освен, ако компресията не е диференциална :)

А това тук е линк с простичко описание на wav файловете
http://www.sonicspot.com/guide/wavefile ... fileheader

И две картинки:

Прикачени файлове:
Коментар на файл: Подробна част
Wav_Min.GIF
Wav_Min.GIF [ 24.09 KiB | Прегледано 3175 пъти ]
Коментар на файл: Цял файл
Wav_Full.GIF
Wav_Full.GIF [ 51.67 KiB | Прегледано 3163 пъти ]
Коментар на файл: Това е оригиналния проект, с добавен Chart (ако е необходимо - махнете коментара на Variants)
PicSound-org.rar [4.91 KiB]
175 пъти

Автор:  relsys [ Сря Мар 28, 2007 3:04 pm ]
Заглавие: 

ето и теорията:

http://www.romanblack.com/picsound.htm

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/