Nice work. I got answers to many questions about the use of I2S. This is the first time that I can successfully play different sounds on an external DAC from the BLE midi input on the ESP32.
Great explanation, the best I've stumbled upon. Can I use two I2S ports as OUTPUTS simultaneously? My idea is to build a Bluetooth audio receiver which sends the data through two I2S ports at the same time. The idea is to implement high pass filter on one signal and low-pass on the other. Then feed the I2S signals to 2 external DACs and create a 2.1 audio system (subwoofer + 2 satelites). Do you think this is possible?
Yes, I believe you can. I've never tried but I don't see why not. Getting them perfectly in sync maybe the only issue. That said they'd only be a few bits out at most, which surely would not be noticeable. It would be such a small time scale.
@@XTronical @XTronical Awesome! Thanks for your prompt reply. Few samples will not be noticeable time difference. There are much more things to find out before worrying about sync. At first I have to find out how to initialize both I2S ports simultaneously...static const i2s_port_t i2s_num = I2S_NUM_???? Sorry, I'm complete noob.
Hi, I would like to use I2C MIC to capture the sound and forward it to the I2S DAC MAX98357A, I can not find any example how to do that. Can you help? Thx.
Hi, thank you very much these precious informations. I'd have a quesiton. I want to use stereo headphone connected thru jack using two MAX98357. My question is how do I connect the two MAX negative output to jack ground pin ? directly together (but I suppose not...) ? Thank you for everything !
Yes, directly together for ground to ground of Jack then one positive to one jack connection and the other positive to the remaining last jack connection.
Hi, I have a really frustrating experience trying to set up the code you are explaining in this video. The #include "driver/i2s.h" statemanet throws a "no such file or directory" error. I have the according esp8266 library installed, I don't find the folder "driver" anywhere and I can not find any information about how to change my directory system or which file I have to include so that it is working... Would be a big help if you know something!
Have you tried deleting the line. I think this library maybe standard include now and you don't need to write the words line explicitly, although I'm using esp32 in my examples not 8266
Great, just what I need! Is this a slip of the tongue? "longer wavelength and higher frequency". Line: static const uint16_t WaveLength=100; As I understand it for quite some time, a longer wavelength gives a lower frequency. Or do you have something else in mind?
Thank you for your great explanation let us know more about i2s. Recently i wanna to build the audio spectrum to show as led matrix from mp3 in sd card. I think it is workable, is it possible got the analog signal from i2S to transform into fft to display the sound movement to led matrix, would you share your idea how to implement to esp32 board ?
It is possible. There is some maths you’ll can do on the digital data but I worked on this over a year ago and couldn't get it to work properly and I spent some time on it. I can tell you the library if you want and you can have a go if you wish.
There is nothing different for wiring as the analyser works with the digital file before it's output. I can't find the code that I did (I probably deleted it in frustration!). However I based all my work on the videos from the channel called "Dave's Garage", here's a link to the first video he does on the spectrum analyser. I used whatever library he does. ua-cam.com/video/f_zt7zdGJCA/v-deo.html Good luck :)
I haven't done this for i2s but I did do it for my dac audio series. This page has the code. www.xtronical.com/testing-the-dacaudio-hardware/ It would need a rewrite for i2s but does show the principles. When I release the full library for i2s this will be able to generate sine waves, if you want to wait.
No reason, I probably saw them used in some documentation or just picked them semi randomly. There might have been some logic a while back but if there was I've forgotten it! The pins can be largely any you want.
If you have heard it before; you will understand, and chuckle. If you have never heard it before, think about it, long and hard "put it back in the sand...."
This is a simple intro, I've my own I2S library in some of my other videos. But there's a lot of crap on YT, so can't promise it'll do what you want. Probably best to not bother actually. Probably disappointing.
It's a shame doing things a new garbage way seems to interest so many people who have any idea how to code, and also bother to upload videos for others. It's also a shame that's the depth of your opinion.
One person's garbage is another person treasure. But if we're resorting to personal insults rather than constructive criticism then I'm out. Feel free to have the last word. I'm done.
Your clear explanation on i2s was long due to the world. Thank you.
Good job. Answered a lot of questions that I had after reading the esp32 documentation on I2S !
Nice work. I got answers to many questions about the use of I2S. This is the first time that I can successfully play different sounds on an external DAC from the BLE midi input on the ESP32.
Nice and clear explanation about I2S interface. Thank you.
fantastic explanation on i2s works, well done!
Thanks for the feedback
this was wonderful, very glad i found it!
great vid. You have many great vids. How is this not a 100k channel?
Ive been reserching i2s but the information is so clutterd with non standerd with standers or naming the pins otherly its just painful
Thank you for the excellent explanation!
🙏🏻
Thanks for the feedback
Could I ask you why you masked Output value? You add two 16bit values (OuputValue is uint16_t) so I think that Value32But = (OutputValue
Hi sir ..i need I2s parallel how i can do it ?
Great explanation, the best I've stumbled upon. Can I use two I2S ports as OUTPUTS simultaneously? My idea is to build a Bluetooth audio receiver which sends the data through two I2S ports at the same time. The idea is to implement high pass filter on one signal and low-pass on the other. Then feed the I2S signals to 2 external DACs and create a 2.1 audio system (subwoofer + 2 satelites). Do you think this is possible?
Yes, I believe you can. I've never tried but I don't see why not. Getting them perfectly in sync maybe the only issue. That said they'd only be a few bits out at most, which surely would not be noticeable. It would be such a small time scale.
@@XTronical @XTronical Awesome! Thanks for your prompt reply. Few samples will not be noticeable time difference. There are much more things to find out before worrying about sync. At first I have to find out how to initialize both I2S ports simultaneously...static const i2s_port_t i2s_num = I2S_NUM_???? Sorry, I'm complete noob.
Hi, I would like to use I2C MIC to capture the sound and forward it to the I2S DAC MAX98357A, I can not find any example how to do that. Can you help? Thx.
Sorry, I've never looked at this.
Hi, thank you very much these precious informations. I'd have a quesiton. I want to use stereo headphone connected thru jack using two MAX98357. My question is how do I connect the two MAX negative output to jack ground pin ? directly together (but I suppose not...) ? Thank you for everything !
Yes, directly together for ground to ground of Jack then one positive to one jack connection and the other positive to the remaining last jack connection.
Will all of your examples work with I2S PCM5102?
Yes, they will. Just follow the wiring in the episode on Internet radio from a few episodes ago
@@XTronical
Thank you!
Hi, I have a really frustrating experience trying to set up the code you are explaining in this video. The #include "driver/i2s.h" statemanet throws a "no such file or directory" error. I have the according esp8266 library installed, I don't find the folder "driver" anywhere and I can not find any information about how to change my directory system or which file I have to include so that it is working... Would be a big help if you know something!
I have the same problem, dont know which library to install
Have you tried deleting the line. I think this library maybe standard include now and you don't need to write the words line explicitly, although I'm using esp32 in my examples not 8266
Great, just what I need!
Is this a slip of the tongue? "longer wavelength and higher frequency".
Line: static const uint16_t WaveLength=100;
As I understand it for quite some time, a longer wavelength gives a lower frequency. Or do you have something else in mind?
Yes, a mistake. They are inversely proportional as you say, good spot!
Very good explanation.
Just a question: is it possible to use a ESP8266 instead of ESP32 ?
Yes, should be OK. It supports i2s it's just a little less powerful and less memory than the 32.
Thank you for your great explanation let us know more about i2s. Recently i wanna to build the audio spectrum to show as led matrix from mp3 in sd card. I think it is workable, is it possible got the analog signal from i2S to transform into fft to display the sound movement to led matrix, would you share your idea how to implement to esp32 board ?
It is possible. There is some maths you’ll can do on the digital data but I worked on this over a year ago and couldn't get it to work properly and I spent some time on it. I can tell you the library if you want and you can have a go if you wish.
@@XTronical Thank you for your reply. Would you share all information you have such as library, connection diagram etc to me?
There is nothing different for wiring as the analyser works with the digital file before it's output. I can't find the code that I did (I probably deleted it in frustration!). However I based all my work on the videos from the channel called "Dave's Garage", here's a link to the first video he does on the spectrum analyser. I used whatever library he does.
ua-cam.com/video/f_zt7zdGJCA/v-deo.html
Good luck :)
best explanation!!
Great! Tks.
Help, How can I generate a sine cosine wave with PCM5102?
I haven't done this for i2s but I did do it for my dac audio series. This page has the code. www.xtronical.com/testing-the-dacaudio-hardware/
It would need a rewrite for i2s but does show the principles. When I release the full library for i2s this will be able to generate sine waves, if you want to wait.
Thank you!
Ooh, Could build another synthesizer.
Why using 25 27 26 in this order?
No reason, I probably saw them used in some documentation or just picked them semi randomly. There might have been some logic a while back but if there was I've forgotten it! The pins can be largely any you want.
Favor ativar legenda.
If you have heard it before; you will understand, and chuckle. If you have never heard it before, think about it, long and hard "put it back in the sand...."
Oh boy, library successfully installed. Finally might have a good example to test my DAC.... nope. More youtube garbage.
This is a simple intro, I've my own I2S library in some of my other videos. But there's a lot of crap on YT, so can't promise it'll do what you want. Probably best to not bother actually. Probably disappointing.
@@XTronical Instead of documentation, you and dozens others want to re-design... re-PAINT, the wheel.
My website is available for further information. People upload what interests them. Nature of the beast.
It's a shame doing things a new garbage way seems to interest so many people who have any idea how to code, and also bother to upload videos for others. It's also a shame that's the depth of your opinion.
One person's garbage is another person treasure. But if we're resorting to personal insults rather than constructive criticism then I'm out. Feel free to have the last word. I'm done.