Code Monkey home page Code Monkey logo

esp-adf's Introduction

Espressif Audio Development Framework

Documentation Status

Espressif Systems Audio Development Framework (ESP-ADF) is the official audio development framework for the ESP32, ESP32-S2, ESP32-C3, ESP32-C6, ESP32-S3, and ESP32-P4 SoCs.

Overview

ESP-ADF supports development of audio applications for the Espressif Systems SoCs in the most comprehensive way. With ESP-ADF, you can easily add features, develop audio and video applications from simple to complex:

  • Music player or recorder supports audio formats such as MP3, AAC, FLAC, WAV, OGG, OPUS, AMR, TS, EQ, Downmixer, Sonic, ALC, G.711 and etc.
  • Play music from sources: HTTP, HLS (HTTP Live Streaming), SPIFFS, SDCARD, A2DP-Source, A2DP-Sink, HFP and etc.
  • Integrate media protocols, such as: DLNA, VoIP, RMTP, ESP-RTC (SIP, RTSP, and RTCP), etc.
  • Video call, video recording and video live streaming
  • Internet Radio
  • Voice recognition and integration with online services such as Alexa, DuerOS and etc.

As a general, the ESP-ADF features will be supported as shown below:

ADF Block Diagram

Developing with the ESP-ADF

IDF Version

The following table shows the ESP-IDF versions supported by ESP-ADF at the current time. The label alt text means supported, and the label alt text means not supported.

The ESP-IDF master branch is marked as not supported because the major feature changes it has introduced may cause conflicts with ESP-ADF. Yet, the ADF examples not affected by those feature changes can still run correctly on the IDF master branch.

End of Life IDF branches are removed. See IDF Supported Periods for details.

ESP-IDF
Release/v4.4
ESP-IDF
Release/v5.0
ESP-IDF
Release/v5.1
ESP-IDF
Release/v5.2
ESP-IDF
Master
ESP-ADF
Master
alt text alt text alt text alt text alt text
ESP-ADF
Release/v2.6
alt text 1 alt text alt text alt text alt text
ESP-ADF
Release/v2.5
alt text 1 alt text alt text alt text alt text
ESP-ADF
Release/v2.4
alt text 1 alt text alt text alt text alt text

Note 1: The built-in IDF branch of ESP-ADF v2.4 is IDF Release/v4.4 at the current time.

Quick Start

You need one of ESP-IDF versions described in ESP-ADF Releases, one of audio boards below and headphones.

Note: If this is your first exposure to ESP-IDF, proceed to Getting Started documentation specific for ESP32, ESP32-S2, or ESP32-S3 SoCs.

Click on one of audio boards shown below to set up and start using ESP-ADF.

Hardware

Espressif Systems has released a number of boards for ESP-ADF to develop audio applications. Click the links below to learn more information on each board.

It is recommended to use the ESP-ADF master branch, as it has the latest bugfixes and the new features.

ESP32-LyraT ESP32-LyraTD-MSC ESP32-LyraT-Mini ESP32-Korvo-DU1906 ESP32-S2-Kaluga-1 Kit ESP32-S3-Korvo-2 ESP32-C3-Lyra ESP32-S3-Box Serials
ESP32-LyraT Development Board 2 ESP32-LyraTD-MSC Development Board 2 ESP32-LyraT-Mini Development Board ESP32-Korvo-DU1906 Development Board 2 ESP32-LyraT-Mini Development Board 2 ESP32-S3-Korvo-2 Development Board ESP32-C3-Lyra Development Board ESP32-S3-Box Development Board
ESP-ADF Master alt text alt text alt text alt text alt text alt text alt text alt text
ESP-ADF Release/v2.6 alt text alt text alt text alt text alt text alt text alt text alt text 1
ESP-ADF Release/v2.5 alt text alt text alt text alt text alt text alt text alt text alt text
ESP-ADF Release/v2.4 alt text alt text alt text alt text alt text alt text alt text alt text

Note 1: For the development board of esp-box series, only esp32-s3-box and esp32-s3-box-lite are supported in ESP-ADF Release/v2.6.

Note 2: The board has reached its end of life.

Examples

Check folder examples that contains sample applications to demonstrate API features of the ESP-ADF.

Resources

esp-adf's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp-adf's Issues

Any plans on adding G.711 codec ?

This ESP32-LyraT V4.3 board is quite awesome!
I know it does not have allot of codecs (yet). This would be a great platform to make a VoIP phone.
We use SIP modules, and their cost is quite high at $150 per module. The cost savings would be insane to switch to the ESP32.

Audio codec

It looks like only ES8388 is supported.
Are there any plans to support other codecs, like WM8978 found on some ESP32 boards?

automatic sample_rate

Hi,
I was playing this example play_mp3_dac on ESP32 board. It works. However, I have some questions:

The macro I2S_STREAM_INTERNAL_DAC_CFG_DEFAULT() is defined as:

#define I2S_STREAM_INTERNAL_DAC_CFG_DEFAULT() {                                     \
    .type = AUDIO_STREAM_WRITER,                                                    \
    .i2s_config = {                                                                 \
        .mode = I2S_MODE_MASTER | I2S_MODE_DAC_BUILT_IN | I2S_MODE_TX,              \
        .sample_rate = 44100,                                                       \
        .bits_per_sample = 16,                                                      \
        .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,                               \
        .communication_format = I2S_COMM_FORMAT_I2S_MSB,                            \
        .dma_buf_count = 3,                                                         \
        .dma_buf_len = 300,                                                         \
        .intr_alloc_flags = ESP_INTR_FLAG_LEVEL2,                                   \
    },                                                                              \
    .i2s_port = 0,                                                                  \
}

The sample rate is set to sample_rate = 44100. However, this causes problem when the MP3 file is not 44.1 KHZ. It plays the Music much faster if it was not 44.1KHZ.

My question is: how to dynamically set the sample_rate to be exactly as the Mp3 file sample rate without hard-coding it.

One another question: after calling audio_pipeline_run(pipeline_);. The Mp3 starts till it ends. How can I have control over it? Does it open some kind of thread?

Question about <dueros> pjoject!

  • when I build the pjoject, but i find the error log :

rapper.c:33:29: fatal error: recorder_engine.h: No such file or directory compilation terminated.

Play_http_mp3_example plays Baidu speech synthesis

Hello,
I changed the http link to "https://ai.baidu.com/aidemo?type=tns2&idx=1&tex=hello&cuid=baidu_speech_demo&cod=2&lan=zh&ctp=1&pdt=1&spd=5&per=0&vol=5&pit=5" and the following error occurred,

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5604
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
I (28) boot: ESP-IDF v3.0-rc1-257-g489e98c 2nd stage bootloader
I (28) boot: compile time 09:49:44
I (32) boot: Enabling RNG early entropy source...
I (34) boot: SPI Speed : 40MHz
I (38) boot: SPI Mode : DIO
I (42) boot: SPI Flash Size : 4MB
I (46) boot: Partition Table:
I (49) boot: ## Label Usage Type ST Offset Length
I (57) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (64) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (72) boot: 2 factory factory app 00 00 00010000 00100000
I (79) boot: End of partition table
I (83) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1d870 (120944) map
I (135) esp_image: segment 1: paddr=0x0002d898 vaddr=0x3ffb0000 size=0x02778 ( 10104) load
I (139) esp_image: segment 2: paddr=0x00030018 vaddr=0x400d0018 size=0x7f664 (521828) map
I (324) esp_image: segment 3: paddr=0x000af684 vaddr=0x3ffb2778 size=0x00aec ( 2796) load
I (325) esp_image: segment 4: paddr=0x000b0178 vaddr=0x40080000 size=0x00400 ( 1024) load
I (331) esp_image: segment 5: paddr=0x000b0580 vaddr=0x40080400 size=0x1282c ( 75820) load
I (371) esp_image: segment 6: paddr=0x000c2db4 vaddr=0x400c0000 size=0x00000 ( 0) load
I (382) boot: Loaded app from partition at offset 0x10000
I (382) boot: Disabling RNG early entropy source...
I (383) cpu_start: Pro cpu up.
I (386) cpu_start: Starting app cpu, entry point is 0x40080ff8
I (0) cpu_start: App cpu up.
I (397) heap_init: Initializing. RAM available for dynamic allocation:
I (404) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (410) heap_init: At 3FFB91B0 len 00026E50 (155 KiB): DRAM
I (416) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (422) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (429) heap_init: At 40092C2C len 0000D3D4 (52 KiB): IRAM
I (435) cpu_start: Pro cpu start user code
I (117) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (180) HTTP_MP3_EXAMPLE: [ 1 ] Start audio codec chip
I (200) HTTP_MP3_EXAMPLE: [2.0] Create audio pipeline for playback
I (200) HTTP_MP3_EXAMPLE: [2.1] Create http stream to read data
I (200) HTTP_MP3_EXAMPLE: [2.2] Create i2s stream to write data to codec chip
I (210) HTTP_MP3_EXAMPLE: [2.3] Create mp3 decoder to decode mp3 file
I (220) HTTP_MP3_EXAMPLE: [2.4] Register all elements to audio pipeline
I (220) HTTP_MP3_EXAMPLE: [2.5] Link it together http_stream-->mp3_decoder-->i2s_stream-->[codec_chip]
I (230) HTTP_MP3_EXAMPLE: [2.6] Setup uri (http as http_stream, mp3 as mp3 decoder, and default output is i2s)
I (240) HTTP_MP3_EXAMPLE: [ 3 ] Start and wait for Wi-Fi network
I (360) phy: phy_version: 366.0, ba9923d, Dec 29 2017, 14:25:06, 0, 0
I (3640) HTTP_MP3_EXAMPLE: [ 4 ] Setup event listener
I (3640) HTTP_MP3_EXAMPLE: [4.1] Listening event from all elements of pipeline
I (3640) HTTP_MP3_EXAMPLE: [4.2] Listening event from peripherals
I (3650) HTTP_MP3_EXAMPLE: [ 5 ] Start audio_pipeline
W (3650) AUDIO_ELEMENT: [http] RESUME:Element has not running,state:3,task_run:1
W (3670) AUDIO_ELEMENT: [mp3] RESUME:Element has not running,state:3,task_run:1
W (3670) AUDIO_ELEMENT: [i2s] RESUME:Element has not running,state:3,task_run:1
I (3680) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffb9bd8 cmd:8, data:0xd, data_len:4
I (3690) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffbffe8 cmd:8, data:0xd, data_len:4
I (3700) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffbde3c cmd:8, data:0xd, data_len:4
I (3710) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffbde3c cmd:8, data:0xc, data_len:4
W (4860) HTTP_STREAM: No more data,errno:9
Encountered error reading when MP3 init
E (4870) AUDIO_ELEMENT: [mp3] AEL_STATUS_ERROR_OPEN
W (4870) AUDIO_ELEMENT: IN-[i2s] AEL_IO_ABORT
E (4880) AUDIO_ELEMENT: [mp3] AEL_MSG_CMD_ERROR
I (4880) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffb9bd8 cmd:10, data:0x0, data_len:0
I (4890) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffb9bd8 cmd:8, data:0xc, data_len:4
I (4900) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffbffe8 cmd:8, data:0x1, data_len:4
I (4910) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffb9bd8 cmd:8, data:0xe, data_len:4
I (4920) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3ffbde3c cmd:8, data:0xe, data_len:4
I (4930) HTTP_MP3_EXAMPLE: [ 6 ] Stop audio_pipeline
W (4940) AUDIO_PIPELINE: There are no listener registered
W (4960) PERIPH_WIFI: Wi-Fi disconnected from SSID OhhSmart, auto-reconnect enabled, reconnect after 5000 ms

pipeline_http_mp3

我使用pipeline_http_mp3这个例程可以正常播放【http://dl.espressif.com/dl/audio/adf_music.mp3】这个链接的MP3,当我把链接修改成:

audio_element_set_uri(http_stream_reader, "http://zhangmenshiting.qianqian.com/data2/music/bf160d8f4fb3bb924659f20a3b00f8b6/559184460/559184460.mp3?xcode=f4c51f4e425f5db748ae5c20176c0886");

出现以下错误:

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5604
load:0x40078000,len:0
load:0x40078000,len:13724
entry 0x40078fb4
\0x1b[0;32mI (28) boot: ESP-IDF v3.0-rc1-243-gf851568 2nd stage bootloader\0x1b[0m
\0x1b[0;32mI (28) boot: compile time 15:56:25\0x1b[0m
\0x1b[0;32mI (30) boot: Enabling RNG early entropy source...\0x1b[0m
\0x1b[0;32mI (34) boot: SPI Speed : 40MHz\0x1b[0m
\0x1b[0;32mI (38) boot: SPI Mode : DIO\0x1b[0m
\0x1b[0;32mI (42) boot: SPI Flash Size : 4MB\0x1b[0m
\0x1b[0;32mI (46) boot: Partition Table:\0x1b[0m
\0x1b[0;32mI (49) boot: ## Label Usage Type ST Offset Length\0x1b[0m
\0x1b[0;32mI (57) boot: 0 nvs WiFi data 01 02 00009000 00006000\0x1b[0m
\0x1b[0;32mI (64) boot: 1 phy_init RF data 01 01 0000f000 00001000\0x1b[0m
\0x1b[0;32mI (72) boot: 2 factory factory app 00 00 00010000 00100000\0x1b[0m
\0x1b[0;32mI (79) boot: End of partition table\0x1b[0m
\0x1b[0;32mI (83) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x21754 (137044) map\0x1b[0m
\0x1b[0;32mI (140) esp_image: segment 1: paddr=0x0003177c vaddr=0x3ffb0000 size=0x03428 ( 13352) load\0x1b[0m
\0x1b[0;32mI (145) esp_image: segment 2: paddr=0x00034bac vaddr=0x40080000 size=0x00400 ( 1024) load\0x1b[0m
\0x1b[0;32mI (147) esp_image: segment 3: paddr=0x00034fb4 vaddr=0x40080400 size=0x0b05c ( 45148) load\0x1b[0m
\0x1b[0;32mI (174) esp_image: segment 4: paddr=0x00040018 vaddr=0x400d0018 size=0x9a8b8 (633016) map\0x1b[0m
\0x1b[0;32mI (394) esp_image: segment 5: paddr=0x000da8d8 vaddr=0x4008b45c size=0x0f4d0 ( 62672) load\0x1b[0m
\0x1b[0;32mI (420) esp_image: segment 6: paddr=0x000e9db0 vaddr=0x400c0000 size=0x00000 ( 0) load\0x1b[0m
\0x1b[0;32mI (435) boot: Loaded app from partition at offset 0x10000\0x1b[0m
\0x1b[0;32mI (436) boot: Disabling RNG early entropy source...\0x1b[0m
\0x1b[0;32mI (438) spiram: SPI RAM mode: flash 40m sram 40m\0x1b[0m
\0x1b[0;32mI (441) spiram: PSRAM initialized, cache is in low/high (2-core) mode.\0x1b[0m
\0x1b[0;32mI (448) cpu_start: Pro cpu up.\0x1b[0m
\0x1b[0;32mI (452) cpu_start: Starting app cpu, entry point is 0x400812e4\0x1b[0m
\0x1b[0;32mI (0) cpu_start: App cpu up.\0x1b[0m
\0x1b[0;32mI (1353) spiram: SPI SRAM memory test OK\0x1b[0m
\0x1b[0;32mI (1354) heap_init: Initializing. RAM available for dynamic allocation:\0x1b[0m
\0x1b[0;32mI (1354) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM\0x1b[0m
\0x1b[0;32mI (1360) heap_init: At 3FFB93B0 len 00026C50 (155 KiB): DRAM\0x1b[0m
\0x1b[0;32mI (1367) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM\0x1b[0m
\0x1b[0;32mI (1373) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM\0x1b[0m
\0x1b[0;32mI (1379) heap_init: At 4009A92C len 000056D4 (21 KiB): IRAM\0x1b[0m
\0x1b[0;32mI (1386) cpu_start: Pro cpu start user code\0x1b[0m
\0x1b[0;32mI (1391) spiram: Adding pool of 4096K of external SPI memory to heap allocator\0x1b[0m
\0x1b[0;32mI (1399) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations\0x1b[0m
\0x1b[0;32mI (79) cpu_start: Starting scheduler on PRO CPU.\0x1b[0m
\0x1b[0;32mI (0) cpu_start: Starting scheduler on APP CPU.\0x1b[0m
\0x1b[0;32mI (169) HTTP_MP3_EXAMPLE: [ 1 ] Start audio codec chip\0x1b[0m
\0x1b[0;32mI (199) HTTP_MP3_EXAMPLE: [2.0] Create audio pipeline for playback\0x1b[0m
\0x1b[0;32mI (199) HTTP_MP3_EXAMPLE: [2.1] Create http stream to read data\0x1b[0m
\0x1b[0;32mI (199) HTTP_MP3_EXAMPLE: [2.2] Create i2s stream to write data to codec chip\0x1b[0m
\0x1b[0;32mI (209) HTTP_MP3_EXAMPLE: [2.3] Create mp3 decoder to decode mp3 file\0x1b[0m
\0x1b[0;32mI (219) HTTP_MP3_EXAMPLE: [2.4] Register all elements to audio pipeline\0x1b[0m
\0x1b[0;32mI (219) HTTP_MP3_EXAMPLE: [2.5] Link it together http_stream-->mp3_decoder-->i2s_stream-->[codec_chip]\0x1b[0m
\0x1b[0;32mI (229) HTTP_MP3_EXAMPLE: [2.6] Setup uri (http as http_stream, mp3 as mp3 decoder, and default output is i2s)\0x1b[0m
\0x1b[0;32mI (239) HTTP_MP3_EXAMPLE: [ 3 ] Start and wait for Wi-Fi network\0x1b[0m
\0x1b[0;32mI (329) phy: phy_version: 366.0, ba9923d, Dec 29 2017, 14:25:06, 0, 0\0x1b[0m
\0x1b[0;32mI (3629) HTTP_MP3_EXAMPLE: [ 4 ] Setup event listener\0x1b[0m
\0x1b[0;32mI (3629) HTTP_MP3_EXAMPLE: [4.1] Listening event from all elements of pipeline\0x1b[0m
\0x1b[0;32mI (3629) HTTP_MP3_EXAMPLE: [4.2] Listening event from peripherals\0x1b[0m
\0x1b[0;32mI (3639) HTTP_MP3_EXAMPLE: [ 5 ] Start audio_pipeline\0x1b[0m
\0x1b[0;33mW (3639) AUDIO_ELEMENT: [http] RESUME:Element has not running,state:3,task_run:1\0x1b[0m
\0x1b[0;33mW (3659) AUDIO_ELEMENT: [mp3] RESUME:Element has not running,state:3,task_run:1\0x1b[0m
\0x1b[0;33mW (3659) AUDIO_ELEMENT: [i2s] RESUME:Element has not running,state:3,task_run:1\0x1b[0m
\0x1b[0;32mI (3669) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3f800130 cmd:8, data:0xd, data_len:4\0x1b[0m
\0x1b[0;32mI (3679) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3f800348 cmd:8, data:0xd, data_len:4\0x1b[0m
\0x1b[0;32mI (3689) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3f800224 cmd:8, data:0xd, data_len:4\0x1b[0m
\0x1b[0;32mI (3699) HTTP_MP3_EXAMPLE: [ * ] Event received: src_type:131072, source:0x3f800224 cmd:8, data:0xc, data_len:4\0x1b[0m
Guru Meditation Error: Core 0 panic'ed (LoadProhibited)
. Exception was unhandled.
Register dump:
PC : 0x4009a0b8 PS : 0x00060530 A0 : 0x801323e9 A1 : 0x3ffd1d70
A2 : 0x00000000 A3 : 0x3f4126f0 A4 : 0x00000007 A5 : 0x00000200
A6 : 0xe6af6218 A7 : 0x3ffd1de0 A8 : 0x3ffb3320 A9 : 0x3ffd1d70
A10 : 0x3ffd4bf4 A11 : 0x3ffb3324 A12 : 0x00000007 A13 : 0x3ffd4bfa
A14 : 0x00000001 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x40099e98 LEND : 0x40099ec6 LCOUNT : 0xffffffff

Backtrace: 0x4009a0b8:0x3ffd1d70 0x401323e6:0x3ffd1d90 0x4013f10d:0x3ffd1dd0 0x4013f3ba:0x3ffd1e00 0x40165ae7:0x3ffd1e30 0x4013f9d1:0x3ffd1ea0 0x40132740:0x3ffd1ed0 0x4012fbf1:0x3ffd1f90 0x40130146:0x3ffd1fc0

I2S0 & I2S1 issue

We want to use I2S0 & I2S1 at the same time. I2S0 works at the master mode to play music. and I2S1 works at the slave mode to record ; How to set i2s, is there any reference code?
Please kindly help us to fix the issue .

How to configure I2S1

  1. I2S1 is the slave mode
    2.GPIO :Sclk -GPIO32;Lrclk-GPIO13;Din -GPIO27;
    3.Rate 16K,Bit 16,Channel 1;

Please kindly help us to fix the issue .
TKS .

ESP32-LyraT battery issues

My ESP32-LyraT board does not work from a battery. It will not charge nor run. Anyone else having this problem?

pipeline_sdcard_mp3 Fail to open file in SD card (AUD-1834)

  1. What did I do:
    I am trying to play mp3 file from my sd card. Using my own ESP-WROOM-32 module. First, I modified the I2S pins to working with my hardware, it works on play_mp3_dac example. Next, I wired the SD card same as module esp32-lyrat and removed the element codec_chip in pipeline_sdcard_mp3 example's main file.
  2. Problem:
    The SD card is mounted success. But mp3 file can't be read.

It returns:

I (320) SDCARD_MP3_EXAMPLE: [ 1 ] Mount sdcard
I (420) SDCARD_MP3_EXAMPLE: [3.0] Create audio pipeline for playback
I (420) SDCARD_MP3_EXAMPLE: [3.1] Create fatfs stream to read data from sdcard
I (420) SDCARD_MP3_EXAMPLE: [3.2] Create i2s stream to write data to codec chip
I (430) SDCARD_MP3_EXAMPLE: [3.3] Create mp3 decoder to decode mp3 file
I (430) SDCARD_MP3_EXAMPLE: [3.4] Register all elements to audio pipeline
I (440) SDCARD_MP3_EXAMPLE: [3.5] Link it together [sdcard]-->fatfs_stream-->mp3_decoder-->i2s_stream-->[codec_chi
p]
I (450) SDCARD_MP3_EXAMPLE: [3.6] Setup uri (file as fatfs_stream, mp3 as mp3 decoder, and default output is i2s)
I (460) SDCARD_MP3_EXAMPLE: [ 4 ] Setup event listener
I (470) SDCARD_MP3_EXAMPLE: [4.1] Listening event from all elements of pipeline
I (480) SDCARD_MP3_EXAMPLE: [4.2] Listening event from peripherals
I (480) SDCARD_MP3_EXAMPLE: [ 5 ] Start audio_pipeline
E (490) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x109
E (500) diskio_sdmmc: sdmmc_read_blocks failed (265)
E (500) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x107
E (510) diskio_sdmmc: sdmmc_read_blocks failed (263)
E (520) FATFS_STREAM: Failed to open file /sdcard/test.mp3
E (520) AUDIO_ELEMENT: [file] AEL_STATUS_ERROR_OPEN

W (530) AUDIO_ELEMENT: IN-[mp3] AEL_IO_ABORT
E (530) AUDIO_ELEMENT: [file] AEL_MSG_CMD_ERROR
Encountered error reading when MP3 init
E (540) AUDIO_ELEMENT: [mp3] AEL_STATUS_ERROR_OPEN
E (550) AUDIO_ELEMENT: [mp3] AEL_MSG_CMD_ERROR

I (550) SDCARD_MP3_EXAMPLE: [ 6 ] Listen for all pipeline events
W (580) SDCARD_MP3_EXAMPLE: [ * ] Stop event received
I (580) SDCARD_MP3_EXAMPLE: [ 7 ] Stop audio_pipeline
W (580) AUDIO_PIPELINE: There are no listener registered

Com port settings for Lyrat

Ive got my comport setup in menuconfig but always seem to get the following error. Menu config is COM10

A fatal error occurred: Failed to connect to ESP32: Invalid head of packet ('\x08')
make: *** [/home/woodtiger/esp/esp-adf/esp-idf/components/esptool_py/Makefile.projbuild:55: flash] Error 2

adf的配置跟之前有什么不同吗?

git下最近的adf编译运行里面的demo有几个pipeline_sdcard_mp3,pipeline_sdcard_wav等几个demo没有播放出音乐,没有任何错误信息,就是没有声音,另外的一些demo例如element_sdcard_mp3,pipeline_bt_sink都能够通过耳机听到音乐,是配置跟之前有什么不同吗?adf是git的最新的,idf默认的是c2b39f4a5f4没有声音,乐鑫官网上的举例是ca3faa61 也没有声音,是需要其他配置吗?使用之前git的都能够听到音乐的。
default

REC.WAV get from sample code pipeline_wav_sdcard, cannot be played

The front character of the binary is:
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 b6ff 1500
baff 2a00 a4ff 1900 a4ff 1600 b2ff 3100
b0ff 3200 c1ff 2a00 c9ff 2300 c6ff 0700
cdff fbff b2ff 0100 adff f5ff d1ff e3ff
d0ff ddff d4ff e5ff ddff eeff c6ff eaff
d2ff cdff f0ff cdff e9ff c8ff e8ff b4ff
daff bbff c7ff abff daff a7ff ddff afff
e6ff b6ff f3ff b9ff dfff b4ff d2ff b0ff
efff caff f7ff dcff 0100 ccff f2ff c2ff
ccff beff f6ff dcff 0f00 f7ff efff eaff
0800 efff 3400 0900 2400 1100 1e00 1000
1f00 2e00 3000 3300 4700 3b00 2900 3d00
1700 3100 2800 4400 2700 4900 2200 2800
2700 4800 2c00 5c00 3b00 3f00 3900 4700
2400 4100 5300 2100 5400 1b00 4400 2d00
6300 2000 6000 2400 4e00 2700 6400 3000
5100 4700 4800 3700 4a00 4400 4c00 4c00
"
Obviously, it does not have the file header information of the standard wav file. and I play it with audacity, it can play if I Import raw data

ESP32-LyraT Connection to PC

Hello, so I just received my ESP32-LyraT v4.3 today, and I tried going through the Getting Started with the LyraT and noticed my board wasn't behaving as expected.

When I plug in both MicroUSB ports to two USB ports on my Mac, I don't see the Standby green LED light up (neither the battery LED). I do see the red Power LED light up when I turn the power on though. Additionally, I don't see the computer recognizing the serial port that the LyraT is connected to, however when I connect to my ESP-WROVER-KIT board I see the port just fine. Is my LyraT board defective?

Bluetooth HFP support (AUD-617)

Hello,

The readme page says that LyraT will be supporting Bluetooth A2DP and HFP.

I see that the Bluetooth A2DP sink support has been added - fantastic!

When will the Bluetooth HFP support become available? HFP is required by my product.

Thanks!

play_mp3

Hello,

When running the play_mp3 on esp32-lyrat v4.3, I get the following error. I can't hear any audio even though I connected an apple headphones to the PhoneJack.

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
b4
[0;32mI (28) boot: ESP-IDF v3.0.1 2nd stage bootloader
I (28) boot: compile time 13:48:38
I (30) boot: Enabling RNG early entropy source...
I (33) boot: SP Speed : 40MHz
I (37) boot: SPI Mode : DIO
I (41) boot: SPI Flash Size : 8MB
I (45) boot: Partition Table:
I (48) boot: ## Label 6 boot: 0 nvs WiFi data 01 02 00009000 00006000
I (63) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (71) boot: 2 factory factory app 00 00 00010000 00100000
I (78) boot: End of partition table
I (82) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1f238 (127544) map
[0;32mI (136) esp_image: segment 1: paddr=0x0002f260 vaddr=0x3fb0000 size=0x00db0 ( 3504) load
I (138) esp_image:segment 2: paddr=0x00030018 vaddr=0x400d0018 size=0x212dc (13590) map
[0;32mI (190) esp_image: segment 3: paddr=0x000512fc vaddr=0x3fb0db0 size=0x01464 ( 5220) load
I (193) esp_image:segment 4: paddr=0x00052768 vaddr=0x40080000 size=0x00400 ( 104) load
I (197) esp_image: segment 5: paddr=0x0005270 vaddr=0x40080400 size=0x09de4 ( 40420) load
[0;32mI (223) esp_image: segment 6: paddr=0x0005c95c vaddr=0x400c0000 size=0x00000 ( 0) load
I (229) boot: Loadd app from partition at offset 0x10000
I (229) boot: Disabling RNG early entropy source...
I (232) cpu_start: Pro cpu up.
I (236) cpu_start: Starting app cpu, entry point is 0x40080edc
I (0) cpu_start: App cpu up.
I (246) heap_init: Initializing. RAM availablE6E0 len 00001920 (6 KiB): DRAM
I (259) heap_init: At 3FFB2A40 len 0002D5C0 (181 KiB): DRAM
I (265) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (272) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
M
I (284) cpu_start: Pro cpu start user code
I (302) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
(304) PLAY_MP3_FLASH: [ 1 ] Start audio codec chip
E (304) gpio: gpio_isr_handler_add(377): GPIO isr service is not installed, call gpio_install_isr_service() first
[0;32mI (334) PLAY_MP3_FLASH: [ 2 ] Create audio pipeline, add all elements to pipeline, and subscribe pipeline ev ent
I (334) PLAY_MP3_FLASH: [2.1] Create mp3 decoder to decode mp3 file and set custom read callback
udio pipelineMP3_FLASH: [2.2] Create i2s stream to write data to codec chip
I (364) PLAY_MP3_FLASH: [2.4] Link it together [mp3_music_read_cb]-->mp3_decoder-->i2s_stream-->[codec_chip]
I (374) PLAY_MP3_FLASH: [ 3 ] Setup event lisener
I (374) PLAY_MP3_FLASH: [3.1] Listening event : [ 4 ] Start audio_pipeline
I (404) PLAY_MP3_FLASH: [ * ] Receive music info from mp3 decoder, sample_rates=44100, bits=16, ch=2
I (7184) PLAY_MP3_FLASH: [ 5 ] Stop audio_pipeline
W (7184) AUDIO_PIPELINE: There are no listener registered

Thanks

Santosh

Using original ESP32

Hi,
The answer seems obvious but I just want to double check. Does esp-adf basic features such as decoding Mp3 from an external SD card and playing it using the internal DAC (GPIO 25,26) available with the original ESP32 (I do not have Lyrat board ).

dueros无法连接

我申请了自己的profile
I (223959) DUEROS: duer_start, len:1469
{"configures":"{}","bindToken":"4cfeba812f400c2cd5105a2566cad21b","coapPort":443,"token":"ihLzR544LijFKXxeNBTJLGFyn8LsP7yS","se
rverAddr":"device.iot.baidu.com","lwm2mPort":443,"uuid":"xxxxxxxxxxxx","rsaCaCrt":"-----BEGIN CERTIFICATE-----\nMIIDUDCCAjgCC
QCmVPUErMYmCjANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJD\nTjETMBEGA1UECAwKU29tZS1TdGF0ZTEOMAwGA1UECgwFYmFpZHUxGDAWBgNVBAMM\nDyouaW90
LmJhaWR1LmNvbTEcMBoGCSqGSIb3DQEJARYNaW90QGJhaWR1LmNvbTAe\nFw0xNjAzMTEwMzMwNDlaFw0yNjAzMDkwMzMwNDlaMGoxCzAJBgNVBAYTAkNOMRMw\nEQY
DVQQIDApTb21lLVN0YXRlMQ4wDAYDVQQKDAViYWlkdTEYMBYGA1UEAwwPKi5p\nb3QuYmFpZHUuY29tMRwwGgYJKoZIhvcNAQkBFg1pb3RAYmFpZHUuY29tMIIBIjAN
\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtbhIeiN7pznzuMwsLKQj2xB02+51\nOvCJ5d116ZFLjecp9qtllqOfN7bm+AJa5N2aAHJtsetcTHMitY4dtGmOpw4
dlGqx\nluoz50kWJWQjVR+z6DLPnGE4uELOS8vbKHUoYPPQTT80eNVnl9S9h/l7DcjEAJYC\nIYJbf6+K9x+Ti9VRChvWcvgZQHMRym9j1g/7CKGMCIwkC+6ihkGD/X
G40r7KRCyH\nbD53KnBjBO9FH4IL3rGlZWKWzMw3zC6RTS2ekfEsgAtYDvROKd4rNs+uDU9xaBLO\ndXTl5uxgudH2VnVzWtj09OUbBtXcQFD2IhmOl20BrckYul+HE
IMR0oDibwIDAQAB\nMA0GCSqGSIb3DQEBBQUAA4IBAQCzTTH91jNh/uYBEFekSVNg1h1kPSujlwEDDf/W\npjqPJPqrZvW0w0cmYsYibNDy985JB87MJMfJVESG/v0Y
/YbvcnRoi5gAenWXQNL4\nh2hf08A5wEQfLO/EaD1GTH3OIierKYZ6GItGrz4uFKHV5fTMiflABCdu37ALGjrA\nrIjwjxQG6WwLr9468hkKrWNG3dMBHKvmqO8x42s
ZOFRJMkqBbKzaBd1uW4xY5XwM\nS1QX56tVrgO0A3S+4dEg5uiLVN4YVP/Vqh4SMtYkL7ZZiZAxD9GtNnhRyFsWlC2r\nOVSdXs1ttZxEaEBGUl7tgsBte556BIvufZ
X+BXGyycVJdBu3\n-----END CERTIFICATE-----\n","macId":"","version":8900}
I (223928,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:1469, profile:0x3f8106e4
I (223929,tid:3ffbd110) lightduer_ca_conf.c( 38): duer_conf_get_string: uuid = xxxxxxxxxxxxxxxx
I (223939,tid:3ffbd110) lightduer_ca_conf.c( 38): duer_conf_get_string: serverAddr = device.iot.baidu.com
I (223957,tid:3ffbd110) baidu_ca_socket_adp.c( 116): DNS lookup succeeded. IP=180.97.33.165
I (223972,tid:3ffbd110) lightduer_connagent.c( 169): will start latter(DUER_ERR_TRANS_WOULD_BLOCK)
I (224477,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:0, profile:0x0
I (224478,tid:3ffbd110) lightduer_connagent.c( 169): will start latter(DUER_ERR_TRANS_WOULD_BLOCK)
I (225490,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:0, profile:0x0
I (225490,tid:3ffbd110) lightduer_connagent.c( 169): will start latter(DUER_ERR_TRANS_WOULD_BLOCK)
I (227496,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:0, profile:0x0
I (227497,tid:3ffbd110) lightduer_connagent.c( 169): will start latter(DUER_ERR_TRANS_WOULD_BLOCK)
I (231500,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:0, profile:0x0
I (231501,tid:3ffbd110) lightduer_connagent.c( 169): will start latter(DUER_ERR_TRANS_WOULD_BLOCK)
I (239510,tid:3ffbd110) lightduer_engine.c( 174): duer_engine_start, g_handler:0x3f806aa4, length:0, profile:0x0
I (239511,tid:3ffbd110) lightduer_connagent.c( 131): =====> event: 1[DUER_EVT_START], status: -50
E (239517,tid:3ffbd110) lightduer_connagent.c( 178): start fail! status:-50
E (239524,tid:3ffbd110) lightduer_connagent.c( 255): Action failed: event: 1, status: -50
I (239534,tid:3ffbd110) baidu_ca_socket_adp.c( 427): stop timer:0x3f8105a4
I (239544,tid:3ffbd110) baidu_ca_socket_adp.c( 444): start last timer:0x3f8105a4, soc:0x3f8100d8
I (239547,tid:3ffbd110) lightduer_engine.c( 636): no action
I (239552,tid:3ffbd110) lightduer_connagent.c( 131): =====> event: 5[DUER_EVT_STOP], status: -50
E (239561,tid:3ffbd110) lightduer_voice.c( 101): lock failed: rs = -1, status = 1
E (239568,tid:3ffbd110) lightduer_voice.c( 101): lock failed: rs = -1, status = 0
W (239576,tid:3ffbd110) lightduer_engine.c( 332): duer_engine_send not started
E (239582,tid:3ffbd110) lightduer_engine.c( 377): Report failed: rs = -20
W (239589,tid:3ffbd110) lightduer_ds_log.c( 217): CA not connected: -20
I (239595,tid:3ffbd110) lightduer_ds_log_cache.c( 45): cached tracecode: 0x14010009
W (239603,tid:3ffbd110) lightduer_ds_log.c( 228): trace log report fail: {"duer_trace_info":{"code":335609865,"ts":239575}}
I (239614,tid:3ffbd110) lightduer_connagent.c( 228): connect stopped, status:-50!!
E (239857) DUEROS: event: 1
E (239860) DUEROS: event: DUER_EVENT_STOPPED

始终无法连接到dueros

pipeline_raw_http

Hello,

I tried running the pipeline_raw_http by following the instructions in readme file.
I connected both the laptop and the lyrat board to the same wifi network and also specified server URI as "http://192.168.0.248:8000/upload". Also on another terminal I ran the "python server.py" and I get a message saying "Serving HTTP on 0.0.0.0 port 8000". When I press the REC button and release it, after few seconds I get the error below.

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5564
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
I (28) boot: ESP-IDF v3.0.1 2nd stage bootloader
I (28) boot: compile time 15:59:11
I (30) boot: Enabling RNG early entropy source...
I (32) boot: SPI Speed : 40MHz
I (37) boot: SPI Mode : DIO
I (41) boot: SPI Flash Size : 8MB
I (45) boot: Partition Table:
I (48) boot: ## Label Usage Type ST Offset Length
I (56) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (63) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (70) boot: 2 factory factory app 00 00 00010000 00100000
I (78) boot: End of partition table
I (82) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1ad20 (109856) map
I (130) esp_image: segment 1: paddr=0x0002ad48 vaddr=0x3ffb0000 size=0x03248 ( 12872) load
I (135) esp_image: segment 2: paddr=0x0002df98 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _iram_start at /home/santosh/esp/esp-adf/esp-idf/components/freertos/./xtensa_vectors.S:1685

I (137) esp_image: segment 3: paddr=0x0002e3a0 vaddr=0x40080400 size=0x01c70 ( 7280) load
I (148) esp_image: segment 4: paddr=0x00030018 vaddr=0x400d0018 size=0x83088 (536712) map
0x400d0018: _stext at ??:?

I (342) esp_image: segment 5: paddr=0x000b30a8 vaddr=0x40082070 size=0x0a2a4 ( 41636) load
0x40082070: esp_timer_impl_set_alarm at /home/santosh/esp/esp-adf/esp-idf/components/esp32/./esp_timer_esp32.c:224

I (360) esp_image: segment 6: paddr=0x000bd354 vaddr=0x400c0000 size=0x00000 ( 0) load
I (367) boot: Loaded app from partition at offset 0x10000
I (367) boot: Disabling RNG early entropy source...
I (369) cpu_start: Pro cpu up.
I (373) cpu_start: Starting app cpu, entry point is 0x40081000
0x40081000: call_start_cpu1 at /home/santosh/esp/esp-adf/esp-idf/components/esp32/./cpu_start.c:215

I (0) cpu_start: App cpu up.
I (383) heap_init: Initializing. RAM available for dynamic allocation:
I (390) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (396) heap_init: At 3FFB91A0 len 00026E60 (155 KiB): DRAM
I (402) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (409) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (415) heap_init: At 4008C314 len 00013CEC (79 KiB): IRAM
I (421) cpu_start: Pro cpu start user code
I (104) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (168) REC_RAW_HTTP: [ 1 ] Initialize Button Peripheral & Connect to wifi network
I (228) phy: phy_version: 3662, 711a97c, May 9 2018, 14:29:06, 0, 0
I (2148) REC_RAW_HTTP: [ 2 ] Start codec chip
I (2168) REC_RAW_HTTP: [3.0] Create audio pipeline for recording
I (2168) REC_RAW_HTTP: [3.1] Create http stream to post data to server
I (2168) REC_RAW_HTTP: [3.2] Create i2s stream to read audio data from codec chip
I (2178) REC_RAW_HTTP: [3.3] Register all elements to audio pipeline
I (2188) REC_RAW_HTTP: [3.4] Link it together [codec_chip]-->i2s_stream->http_stream-->[http_server]
I (2198) REC_RAW_HTTP: [ 4 ] Setup event listener
I (2198) REC_RAW_HTTP: [4.1] Listening event from the pipeline
I (2208) REC_RAW_HTTP: [4.2] Listening event from peripherals
I (2218) REC_RAW_HTTP: [ 5 ] Listen for all pipeline events
I (12238) REC_RAW_HTTP: [ * ] Resuming pipeline
I (12238) REC_RAW_HTTP: [ + ] HTTP client HTTP_STREAM_PRE_REQUEST, lenght=0
I (14698) REC_RAW_HTTP: [ * ] Stop pipeline
E (29708) HTTP_CLIENT: Connection failed, sock < 0
E (29708) AUDIO_ELEMENT: [http] AEL_STATUS_ERROR_OPEN
W (29708) AUDIO_ELEMENT: OUT-[i2s] AEL_IO_ABORT
E (29708) AUDIO_ELEMENT: [http] AEL_MSG_CMD_ERROR

Thanks,

Santosh

No example works from ADF

Hello Team Espressif,

Recently we have brought a ESP-LyraTD-MSC which works excellent with IDF. I have a technical doubt around which I have tried and read everything but nothing worked out.

I think the issue is with I2C Driver. Can you please look into it and suggest if we are missing on something obvious?
No example works from ADF, for instance you can refer to following logs for Play_MP3 example project given in repository esp-adf/examples/get-started/play_mp3 :

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5568
ho 0 tail 12 room 4
load:0x40078000,len:0
load:0x40078000,len:13756
entry 0x40078fb4
�[0;32mI (30) boot: ESP-IDF v3.0-rc1-257-g489e98cf 2nd stage bootloader�[0m
�[0;32mI (30) boot: compile time 19:08:49�[0m
�[0;32mI (33) boot: Enabling RNG early entropy source...�[0m
�[0;32mI (36) boot: SPI Speed : 40MHz�[0m
�[0;32mI (40) boot: SPI Mode : DIO�[0m
�[0;32mI (44) boot: SPI Flash Size : 4MB�[0m
�[0;32mI (49) boot: Partition Table:�[0m
�[0;32mI (52) boot: ## Label Usage Type ST Offset Length�[0m
�[0;32mI (59) boot: 0 nvs WiFi data 01 02 00009000 00004000�[0m
�[0;32mI (67) boot: 1 otadata OTA data 01 00 0000d000 00002000�[0m
�[0;32mI (74) boot: 2 phy_init RF data 01 01 0000f000 00001000�[0m
�[0;32mI (82) boot: 3 factory factory app 00 00 00010000 00100000�[0m
�[0;32mI (89) boot: 4 ota_0 OTA app 00 10 00110000 00100000�[0m
�[0;32mI (97) boot: 5 ota_1 OTA app 00 11 00210000 00100000�[0m
�[0;32mI (104) boot: End of partition table�[0m
�[0;32mI (109) esp_image: segment 0: paddr=0x00110020 vaddr=0x3f400020 size=0x1eee8 (126696) map�[0m
�[0;32mI (162) esp_image: segment 1: paddr=0x0012ef10 vaddr=0x3ffb0000 size=0x01100 ( 4352) load�[0m
�[0;32mI (164) esp_image: segment 2: paddr=0x00130018 vaddr=0x400d0018 size=0x20510 (132368) map�[0m
�[0;32mI (215) esp_image: segment 3: paddr=0x00150530 vaddr=0x3ffb1100 size=0x010e4 ( 4324) load�[0m
�[0;32mI (217) esp_image: segment 4: paddr=0x0015161c vaddr=0x40080000 size=0x00400 ( 1024) load�[0m
�[0;32mI (222) esp_image: segment 5: paddr=0x00151a24 vaddr=0x40080400 size=0x09de4 ( 40420) load�[0m
�[0;32mI (247) esp_image: segment 6: paddr=0x0015b810 vaddr=0x400c0000 size=0x00000 ( 0) load�[0m
�[0;32mI (254) boot: Loaded app from partition at offset 0x110000�[0m
�[0;32mI (254) boot: Disabling RNG early entropy source...�[0m
�[0;32mI (257) cpu_start: Pro cpu up.�[0m
�[0;32mI (261) cpu_start: Starting app cpu, entry point is 0x40080edc�[0m
�[0;32mI (0) cpu_start: App cpu up.�[0m
�[0;32mI (271) heap_init: Initializing. RAM available for dynamic allocation:�[0m
�[0;32mI (278) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM�[0m
�[0;32mI (284) heap_init: At 3FFB2A10 len 0002D5F0 (181 KiB): DRAM�[0m
�[0;32mI (290) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM�[0m
�[0;32mI (296) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM�[0m
�[0;32mI (303) heap_init: At 4008A1E4 len 00015E1C (87 KiB): IRAM�[0m
�[0;32mI (309) cpu_start: Pro cpu start user code�[0m
�[0;32mI (327) cpu_start: Starting scheduler on PRO CPU.�[0m
�[0;32mI (0) cpu_start: Starting scheduler on APP CPU.�[0m
�[0;32mI (329) PLAY_MP3_FLASH: [ 1 ] Start audio codec chip�[0m
�[0;31mE (329) gpio: gpio_isr_handler_add(377): GPIO isr service is not installed, call gpio_install_isr_service() first�[0m
�[0;31mE (339) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (349) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (349) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (359) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (359) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (359) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (369) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (369) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (379) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (379) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (389) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (389) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (399) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (399) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (409) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (409) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (419) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (419) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (429) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (429) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (429) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (439) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (439) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (449) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (449) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (459) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (459) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (469) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (469) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (479) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (479) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (489) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (489) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (499) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (499) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (499) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (509) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (509) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (519) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (519) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (529) ES8388_DRIVER: es_write_reg error�[0m
�[0;31mE (529) ES8388_DRIVER: es_read_reg error�[0m
�[0;31mE (539) ES8388_DRIVER: es_write_reg error�[0m
�[0;32mI (539) PLAY_MP3_FLASH: [ 2 ] ------------------- shaunak :-------------------------Create audio pipeline, add all elements to pipeline, and subscribe pipeline event�[0m
�[0;32mI (559) PLAY_MP3_FLASH: [2.1] Create mp3 decoder to decode mp3 file and set custom read callback�[0m
�[0;32mI (569) PLAY_MP3_FLASH: [2.2] Create i2s stream to write data to codec chip�[0m
�[0;32mI (579) PLAY_MP3_FLASH: [2.3] Register all elements to audio pipeline�[0m
�[0;32mI (579) PLAY_MP3_FLASH: [2.4] Link it together [mp3_music_read_cb]-->mp3_decoder-->i2s_stream-->[codec_chip]�[0m
�[0;32mI (589) PLAY_MP3_FLASH: [ 3 ] Setup event listener�[0m
�[0;32mI (599) PLAY_MP3_FLASH: [3.1] Listening event from all elements of pipeline�[0m
�[0;32mI (609) PLAY_MP3_FLASH: [ 4 ] Start audio_pipeline�[0m
�[0;32mI (629) PLAY_MP3_FLASH: [ * ] Receive music info from mp3 decoder, sample_rates=44100, bits=16, ch=2�[0m
�[0;32mI (7409) PLAY_MP3_FLASH: [ 5 ] Stop audio_pipeline�[0m
�[0;33mW (7409) AUDIO_PIPELINE: There are no listener registered�[0m

OPUS DECODING SUPPORT

hi I would like to know when would be next release for ESP-ADF with OPUS DECODE Support.

DuerOs

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:5468
load:0x40078000,len:0
load:0x40078000,len:12464
entry 0x40078fbc
�[0;32mI (28) boot: ESP-IDF v3.0.1 2nd stage bootloader�[0m
�[0;32mI (28) boot: compile time 14:53:23�[0m
�[0;32mI (30) boot: Enabling RNG early entropy source...�[0m
�[0;32mI (33) boot: SPI Speed : 80MHz�[0m
�[0;32mI (37) boot: SPI Mode : DIO�[0m
�[0;32mI (41) boot: SPI Flash Size : 4MB�[0m
�[0;32mI (45) boot: Partition Table:�[0m
�[0;32mI (48) boot: ## Label Usage Type ST Offset Length�[0m
�[0;32mI (56) boot: 0 nvs WiFi data 01 02 00009000 00006000�[0m
�[0;32mI (63) boot: 1 phy_init RF data 01 01 0000f000 00001000�[0m
�[0;32mI (71) boot: 2 factory factory app 00 00 00010000 00100000�[0m
�[0;32mI (78) boot: End of partition table�[0m
�[0;32mI (82) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x43f28 (278312) map�[0m
�[0;32mI (172) esp_image: segment 1: paddr=0x00053f50 vaddr=0x3ffb0000 size=0x03844 ( 14404) load�[0m
�[0;32mI (177) esp_image: segment 2: paddr=0x0005779c vaddr=0x40080000 size=0x00400 ( 1024) load�[0m
�[0;32mI (179) esp_image: segment 3: paddr=0x00057ba4 vaddr=0x40080400 size=0x0846c ( 33900) load�[0m
�[0;32mI (199) esp_image: segment 4: paddr=0x00060018 vaddr=0x400d0018 size=0xfa5a4 (1025444) map�[0m
�[0;32mI (497) esp_image: segment 5: paddr=0x0015a5c4 vaddr=0x4008886c size=0x09070 ( 36976) load�[0m
�[0;32mI (510) esp_image: segment 6: paddr=0x0016363c vaddr=0x400c0000 size=0x00000 ( 0) load�[0m
�[0;31mE (511) esp_image: Image length 1390176 doesn't fit in partition length 1048576�[0m
�[0;31mE (516) boot: Factory app partition is not bootable�[0m
�[0;31mE (522) boot: No bootable app partitions in the partition table�[0m
user code done
这是为什么呢,其它的例程都可以,就这个不行。

wav_head.h: No such file or directory

编译例程的时候出现这个错误:
/home/esp8266/Desktop/esp/esp-adf/components/audio_stream/./fatfs_stream.c:39:22: fatal error: wav_head.h: No such file or directory
compilation terminated.
make[1]: *** [fatfs_stream.o] Error 1
make: *** [component-audio_stream-build] Error 2

求提供关于i2s的SCLK和LRCK的时钟频率由外部提供的方法

求提供关于i2s的SCLK和LRCK的时钟频率由外部提供的方法,我们公司准备接上esp32传蓝牙音频,问题是我们的SCLK和LRCK由自己的DSP芯片提供,历程上esp32的音频好像只能选择由esp提供,能否由外部提供i2s时钟信号,如何修改,万分感谢能提供帮助的

pipeline_wav_sdcard录音

最近在lyrat_v4.2上测试录音,发现编译这个例程运行的时候录音只有10秒(理论上应该是20秒的),而且通过其他播放器播放的时候播放速度比录的声音要快,这是什么原因啊?

audio_event_iface_listen blocking the other operation

In Play_mp3_dac example:

esp_err_t ret = audio_event_iface_listen(evt, &msg, portMAX_DELAY);

This line seems to be blocking. The loop works for 3 iterations and then stops at this lines. I tired to change the third parameter from portMAX_DELAY to 10 and it does not block anymore but the MP3 is played with wrong clock for few seconds (it is logical to cause this problem since the bit/sample rate has not been fetched yet).

How can I prevent it from been blocked ?

希望能够修改录音wav头文件信息

现在sdk提供录音demo只支持44.1KHz格式下录音,不开放16kHz录音,我查看了源码,采集数据是可以做到16k录音,但是wav信息头文件还是写到44.1KHz,导致录音文件播放出错,后来追踪到贵司把该部分代码封装到静态库,这样子无法修改wav头文件,16KHz和8KHz是非常常用的格式。,希望贵司工程师能够开放支持修改wav头文件信息。

编译play_mp3时出现如下错误

$ make all
fatal: 不是一个 git 仓库(或者任何父目录):.git
fatal: 不是一个 git 仓库(或者任何父目录):.git
fatal: 不是一个 git 仓库(或者任何父目录):.git
fatal: 不是一个 git 仓库(或者任何父目录):.git
/c/Users/Tonly/Desktop/esp-adf-master/esp-idf/make/project.mk:502: 警告:未定义的变量“which git”
WARNING: Missing submodule components/micro-ecc/micro-ecc...
ERROR: esp-idf must be cloned from git to work.
make[1]: *** [/c/Users/Tonly/Desktop/esp-adf-master/esp-idf/make/project.mk:501:/c/Users/Tonly/Desktop/esp-adf-master/esp-idf/components/micro-ecc/micro-ecc/.git] 错误 1
make: *** [/c/Users/Tonly/Desktop/esp-adf-master/esp-idf/components/bootloader/Makefile.projbuild:40:/c/Users/Tonly/Desktop/esp-adf-master/test/play_mp3/build/bootloader/bootloader.bin] 错误 2

audio_element_deinit(i2s_stream_writer); infinite loop

Hi,
I am trying to mimic the play_mp3_dac example (which works correctly Commit: f6d007a ). I am almost sure that I have done everything as it was written in the example. However, after the Mp3 is played and finished, I call :

        audio_pipeline_terminate(pipeline_);
	audio_pipeline_remove_listener(pipeline_);
	audio_event_iface_destroy(evt_);
	audio_pipeline_deinit(pipeline_);
	audio_element_stop(i2s_stream_writer_);
	audio_element_deinit(i2s_stream_writer_);
	audio_element_deinit(mp3_decoder_);	

At this line:
audio_element_deinit(i2s_stream_writer_);
The program stops responding. I went into audio_element_deinit code and I found that the problem is exactly at this line:
audio_element_wait_for_stop(el);

I commented it out and everything worked fine. However, I am sure that at some points my program will explode because it is trying to free something while it is still working.

May you please give me any hint why does this happen?

Thank you very much!

STA333BW power-amplifier I²C control support

The ST STA333BW is a 2x20W I²S power-amplifier IC around 3.50 €. Besides power-supply and 4 inductors it only needs 1 electrolytic capacitor, 2 THT capacitors, 22 SMD capacitors and 9 SMD resistors for a stereo configuration.

It provides the followiing 3 power output configurations:
– 2 channels of ternary PWM (2 x 20 W into 8 Ω at 18 V) + PWM output
– 2 channels of ternary PWM (2 x 20 W into 8 Ω at 18 V) + ternary stereo line-out
– 2.1 channels of binary PWM (left, right, LFE) (2 x 9 W into 4 Ω +1 x 20 W into 8 Ω at 18 V)

This issue is meant as a starting point to implement ESP-ADF-support for more powerful power-amplifiers than on the LyraT boards.

pipeline_bt_sink

When I used bluetooth demo to play music, I ran into the following problem.And I can't hear anything.
log

dueros无法识别 (AUD-616)

试了好多次 ,百度语音提示都是提示“抱歉,我不知道你说了什么”,请问调试的话应从什么方向入手呢?

在编译上传时候报错 修改了环境变量了printenv PATH 也能正确显示出完整路径

pi@raspberrypi:~/esp/play_mp3$ make flash
/bin/sh: 1: xtensa-esp32-elf-gcc: Exec format error
/bin/sh: 1: xtensa-esp32-elf-gcc: Exec format error
WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu
/bin/sh: 1: xtensa-esp32-elf-gcc: Exec format error
/bin/sh: 1: xtensa-esp32-elf-gcc: Exec format error
WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu
CC build/bootloader/bootloader_support/src/bootloader_flash.o
/home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: 1: /home/pi/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc: Syntax error: "(" unexpected
/home/pi/esp/esp-adf/esp-idf/make/component_wrapper.mk:273: recipe for target 'src/bootloader_flash.o' failed
make[2]: *** [src/bootloader_flash.o] Error 2
/home/pi/esp/esp-adf/esp-idf/make/project.mk:450: recipe for target 'component-bootloader_support-build' failed
make[1]: *** [component-bootloader_support-build] Error 2
/home/pi/esp/esp-adf/esp-idf/components/bootloader/Makefile.projbuild:40: recipe for target '/home/pi/esp/play_mp3/build/bootloader/bootloader.bin' failed
make: *** [/home/pi/esp/play_mp3/build/bootloader/bootloader.bin] Error 2

用的树莓派3b+ 谢谢

Using ESP-ADF with Arduino (AUD-3517)

Hi,
Is it possible to use ESP-ADF from Arudino IDE with other Arduino libraries? I used to use ESP-IDF from Arduino IDE. However, I could not find any documentation about using ESP-ADF from Arduino.

A fatal error occurred when make flash

I download firmware to ESP32-LyraTD-MSC with make flash in Ubuntu, It prompts error:
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet ('\x08')
Please give me some suggestion

pipeline_sdcard_mp3_control example

Anyone have pipeline_sdcard_mp3_control example works properly on latest update?
I tried the example, it worked well (before adding google translate function, I think).
After update the repository, touching SET touch pad just make the pipeline stop. I have to touch SET pad 2 times for playing next song.

Output log:
I (308) SDCARD_MP3_CONTROL_EXAMPLE: [1.0] Initialize peripherals management
I (308) SDCARD_MP3_CONTROL_EXAMPLE: [1.1] Start SD card peripheral
I (318) SDCARD_MP3_CONTROL_EXAMPLE: [1.2] Start SD card peripheral
I (428) SDCARD_MP3_CONTROL_EXAMPLE: [1.3] Initialize Touch peripheral
I (428) SDCARD_MP3_CONTROL_EXAMPLE: [1.4] Start touch peripheral
I (428) SDCARD_MP3_CONTROL_EXAMPLE: [ 2 ] Start codec chip
E (428) gpio: gpio_install_isr_service(406): GPIO isr service already installed
I (458) SDCARD_MP3_CONTROL_EXAMPLE: [3.0] Create audio pipeline for playback
I (458) SDCARD_MP3_CONTROL_EXAMPLE: [3.1] Create i2s stream to write data to codec chip
I (468) SDCARD_MP3_CONTROL_EXAMPLE: [3.2] Create mp3 decoder to decode mp3 file
I (478) SDCARD_MP3_CONTROL_EXAMPLE: [3.3] Register all elements to audio pipeline
I (488) SDCARD_MP3_CONTROL_EXAMPLE: [3.4] Link it together [my_sdcard_read_cb]-->mp3_decoder-->i2s_
stream-->[codec_chip]
I (498) SDCARD_MP3_CONTROL_EXAMPLE: [4.0] Setup event listener
I (498) SDCARD_MP3_CONTROL_EXAMPLE: [4.1] Listen for all pipeline events
I (508) SDCARD_MP3_CONTROL_EXAMPLE: [4.2] Listening event from peripherals
W (518) SDCARD_MP3_CONTROL_EXAMPLE: [ 5 ] Tap touch buttons to control music player:
W (528) SDCARD_MP3_CONTROL_EXAMPLE: [Play] to start, pause and resume, [Set] next song.
W (538) SDCARD_MP3_CONTROL_EXAMPLE: [Vol-] or [Vol+] to adjust volume.
I (2858) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (2858) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
I (3218) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Received music info from mp3 decoder, sample_rates=44100
, bits=16, ch=2
I (6918) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (6918) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
E (6948) MP3_DECODER: output aborted 1024
I (9798) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (9798) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
I (9848) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Received music info from mp3 decoder, sample_rates=44100
, bits=16, ch=2
I (12438) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (12438) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
E (12468) MP3_DECODER: output aborted 2048
I (13998) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (13998) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
I (14048) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Received music info from mp3 decoder, sample_rates=4410
0, bits=16, ch=2
I (16518) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (16518) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
E (16538) MP3_DECODER: output aborted 2560
I (18258) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] [Set] touch tap event
I (18258) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Finishing current song
I (18318) SDCARD_MP3_CONTROL_EXAMPLE: [ * ] Received music info from mp3 decoder, sample_rates=4410
0, bits=16, ch=2

Add an Equalizer to the current ADF

Hello,

I would like to add an equalizer on audio output in ADF framework. In short i need access to data or embed equalizer functionality into pipeline as an element.

How do i do that. I have gone through documentation and the code but is clear as mud.

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.