• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 Audio вопрос по библиотеке

FiNick

New member
Всем привет! Хочу озвучить один свой проект посредством библиотеки ESP8266 Audio.
earlephilhower/ESP8266Audio
Пытаюсь разобраться с примерами из библиотеки и вот тут засада .
Из приведенных в примере воспроизводится только PlayWAVFromPROGMEM, компилируется, есть звук, качество устраивает... Но не могу заменить файл viola.h.... Есть ли у кого удачный опыт использования данной библиотеки в составе встроенной памяти и встроенного DAC . Как и каким ПО пользуетесь для конвертациии WAV файла в HEX формат ?
 

Алексей.

Active member
Как и каким ПО пользуетесь для конвертациии WAV файла в HEX формат ?
Обычным hexdump-ом, посмотрим первые 64 байта файла CAMERA.WAV
alex@vb-u16:~/wav$ hexdump -n 64 -vC CAMERA.WAV
Код:
00000000  52 49 46 46 8c 15 00 00  57 41 56 45 66 6d 74 20  |RIFF....WAVEfmt |
00000010  10 00 00 00 01 00 01 00  11 2b 00 00 11 2b 00 00  |.........+...+..|
00000020  01 00 08 00 64 61 74 61  68 15 00 00 80 80 80 80  |....datah.......|
00000030  80 80 80 80 80 80 80 80  80 80 80 80 80 80 80 80  |................|
00000040
Те же первые 64 байта файла hexdump-ом для вставки как строки в си-шный код
Код:
alex@vb-u16:~/wav$ hexdump -n 64 -e '16/1 "_x%02X" "\n"' CAMERA.WAV | sed 's/_/\\/g; s/.*/    "&"/'
    "\x52\x49\x46\x46\x8C\x15\x00\x00\x57\x41\x56\x45\x66\x6D\x74\x20"
    "\x10\x00\x00\x00\x01\x00\x01\x00\x11\x2B\x00\x00\x11\x2B\x00\x00"
    "\x01\x00\x08\x00\x64\x61\x74\x61\x68\x15\x00\x00\x80\x80\x80\x80"
    "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80"
А если совсем лениво и хотим сразу заголовочный файл, берем xxd
Код:
alex@vb-u16:~/wav$ xxd --include CAMERA.WAV
unsigned char CAMERA_WAV[] = {
  0x52, 0x49, 0x46, 0x46, 0x8c, 0x15, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
  0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
  0x11, 0x2b, 0x00, 0x00, 0x11, 0x2b, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00,
...
  0x7c, 0x7c, 0x7c, 0x7c, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x80, 0x7c, 0x80,
  0x80, 0x7c, 0x7c, 0x7c, 0x7c, 0x80, 0x7c, 0x7c, 0x80, 0x80, 0x80, 0x80,
  0x80, 0x7c, 0x7c, 0x80
};
unsigned int CAMERA_WAV_len = 5524;

ПС:
Если пользователи виндовса молчат, то это вопрос на очевидный ответ или это никому не нужно, тем не менее начиная с Windows7 в дистрибутиве содержится довольно мощное средство автоматизации PowerShell, можно воспользоваться им.

PS D:\tmp> Get-Content .\CAMERA.WAV -Encoding Byte `
-ReadCount 16 | ForEach-Object {
$output = ""
foreach ( $byte in $_ ) {
#BEGIN CALLOUT A
$output += "0x{0:X2}, " -f $byte
#END CALLOUT A
}
$output
}

0x52, 0x49, 0x46, 0x46, 0x8C, 0x15, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x2B, 0x00, 0x00, 0x11, 0x2B, 0x00, 0x00,
0x01, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x68, 0x15, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
...
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
0x7C, 0x80, 0x7C, 0x80, 0x80, 0x7C, 0x7C, 0x7C, 0x7C, 0x80, 0x7C, 0x7C, 0x80, 0x80, 0x80, 0x80,
0x80, 0x7C, 0x7C, 0x80,


источник
 
Последнее редактирование:

FiNick

New member
Вот похоже результат работы xxd , похож на формат файла из примера. Но видимо мой уровень знаний не достаточен для понимания. Есть ли более простой способ получения нужного файла или подробного описания?
 
Сверху Снизу