This is absolutely brilliant. I'm stunned by how powerful yet simple this project is! I may need to come back to this. Super inspiring.
@marcellicence11 ай бұрын
Thank you very much. The project may be changed a bit over time. There is also a multiplatform version which supports the ESP32 as-well =)
@romanopekushin30993 жыл бұрын
Just super.I was able to connect an external midi controller. By setting it up, I was able to achieve your result. It just shocked me. Magic sound. My homemade controller is glitching a bit, but it's a breeze. The main thing is the sound and capabilities of your synthesizer !!!Add manual control, not midi, and you get a miniature and very attractive synthesizer.
@marcellicence3 жыл бұрын
Thanks for your feedback. I am really happy that you enjoy the synthesizer.
@romanopekushin30993 жыл бұрын
@@marcellicence I realized what your synthesizer is missing - the LFO. Filter automation will be just a gift.
@marcellicence3 жыл бұрын
@@romanopekushin3099 I fully agree. But I think there is a lot more missing. But the next project is coming soon =)
@romanopekushin30993 жыл бұрын
@@marcellicence Super!!! =)
@mikolasstrajt38748 ай бұрын
Very versatile sounds. I would definitely buy one of these if it was on reasonable price.
@marcellicence8 ай бұрын
Thank you, sounds great =) I could try to prepare something
@romanopekushin30993 жыл бұрын
Fine! There is one idea. Connect multiplexer to esp32 for control. I have a very simple midi keyboard. But an external midi controller solves this problem. True, its pass-through midi channel gives a small delay. I am very glad that you decided to share the code. I will definitely repeat and write about it.
@marcellicence3 жыл бұрын
Yes a multplexer sounds good. I tried to keep the effort low as possible but feel free to add your own controls. I've seen that there are also some DIY midi controller projects
@rockpopmando13 жыл бұрын
@@marcellicence Hi Marcel, I believe, it is great to have a basic project like Yours which works for all. Adding a Multiplexer makes in more komplex for others to start with it. I have tested some analog multiplexers as the HP 6067 which brings other problems with it and would make projects more complex. A better approuch would be to decouple the CC-Controls with the changing of the values. I mostly tried to create a function which changes the values like void changeDecay( uint8_t inDecay ) and then call this from the MIDI-Dunction for a CC and to call it in the case if a "Input" of a physical UI is changed. That makes it more simple to let others adopt Your code. It is only a hint, not a recommendation. :)
@gilleslacaud3 жыл бұрын
Hi Marcel thank you for sharing the code.
@marcellicence3 жыл бұрын
You are welcome
@atalibajunior50553 жыл бұрын
You are a genius! Thank you so much for this.
@marcellicence3 жыл бұрын
Thank you too for the nice feedback!
@hansmeier16086 ай бұрын
Very good video, you're explaing optimal! Will take my ESP32S3 take out.
@marcellicence6 ай бұрын
Thank you very much for your feedback
@LoFiWeekly3 жыл бұрын
This is so awesome my friend - I now have a nice weekend project coming up soon!
@marcellicence3 жыл бұрын
Sounds great. Enjoy!
@realSethMeyers Жыл бұрын
This is so exciting! I can't wait to build my own. I've been looking for something like this for a long time now.
@marcellicence Жыл бұрын
Thank you =)
@cbrpnk8 ай бұрын
This is awesome makes me want to experiment with hardware synths.
@marcellicence8 ай бұрын
Thank you. I can highly recommend that. Working with low latency makes much more fun than using software only
@feldon272 жыл бұрын
What an awesome project and great music resulting from it!
@marcellicence2 жыл бұрын
Thank you. I am very happy to hear that =)
@rockpopmando13 жыл бұрын
Hi Marcel, wirklich cooler Sound und sehr coole Lösung. Ich war eigentlich auf der Suche nach dem Code für Deinen Sampler aber der Synth ist eigentlich noch interessanter!
@marcellicence3 жыл бұрын
Hi, danke für die Rückmeldung. Ja ich habe nicht alles veröffentlicht. Ich werde nach und nach schauen, was ich für eine Veröffentlichung nehmen kann. Zudem steckt ja leider dann doch immer etwas Arbeit dahinter (auch wenn etwas "eigentlich" schon fertig ist) ;-)
@OMNI_INFINITY Жыл бұрын
Thanks! Shopping for a DAC tonight.
@marcellicence Жыл бұрын
Good luck. You are welcome
@Lubawaandme10 ай бұрын
YEAH BABY. YOU FEEL IT
@marcellicence9 ай бұрын
Haha, thank you 😁
@fenexj Жыл бұрын
Awesome project, very inspiring.
@marcellicence Жыл бұрын
Thank you very much
@robotmr Жыл бұрын
Cool Project! Thank You for sharing the code
@marcellicence Жыл бұрын
Thank you =)
@mamax73 Жыл бұрын
You are my inspiration. Thanks
@marcellicence Жыл бұрын
Thank you so much! 😄
@marcellicence Жыл бұрын
Unfortunately you second comment was filtered by KZbin. I could only see the notification but the comment is not visible. I could read the start regarding the sound fonts 2.0. I had this also in mind but the implementation is more complex requiring some additional filters etc. I guess. Hope I can extract the samples from .sf2 soon =)
@sandrocavali98106 ай бұрын
fantastic job
@a-z-n-b-a-i2 жыл бұрын
LOVE THIS ONE
@marcellicence2 жыл бұрын
Perfect 😁
@pantalalabs2 жыл бұрын
fantastic projects!! congrats!
@marcellicence2 жыл бұрын
Thank you very much
@valdeciribeiro78393 жыл бұрын
Thank you for sharing your knowledge, you are a good person! Can I send midi messages directly to the module with another microcontroller as hardware?
@marcellicence3 жыл бұрын
Thanks, you can attach another controller. You should just be aware of the voltage. The tx signal must not exceed 3.3V. I am not sure but I think the ESP32 is not tolerant to 5V.
@valdeciribeiro78393 жыл бұрын
@@marcellicence Thank you so much, it's hard to find people like you!
@gorillaau3 жыл бұрын
@@valdeciribeiro7839 I'd use an optocoupler between the two devices, just in case you do something bad. It might just save the other device, either the ESP32 or your microcontroller.
@valdeciribeiro78393 жыл бұрын
@@gorillaau thank you my friend!
@RoyalTech_20249 ай бұрын
Hi marcel, What is the parameter you are changing with the last slider? which showing only numbers from 1-8(Unlike other plaremeters like "voice volume attack") in the serial like display on the top corner?
@marcellicence9 ай бұрын
Hi, I've checked my code. It seems that it changes DETUNE_1 or WAVEFORM_1 depends on the current configuration. You are right there should be the definition in z_config.h
@zo1dberg3 жыл бұрын
Very nice!
@renaulth20093 жыл бұрын
Good coder/engineer and keyboard player hehe
@marcellicence3 жыл бұрын
Thanks a lot =D
@ainu_channel6 ай бұрын
When using esp a1s audio kit, which channel using for audio out? Or it stereo? In case if I want to connect output to audio interface combined IN jack
@marcellicence6 ай бұрын
I am using stereo output. Depending on the audio codec on the audio kit there is some mixing possible (LineIn to Out without processing on the ESP32). I've tested different audio kits and got a stereo output which can be connected to a speaker system, computer or other device with line-in. Hope this helps
@MagnusWedmark3 жыл бұрын
Maybe the noise could be implemented using LFSR which with good resolution if similar to real noise and very cheap calculation .
@marcellicence3 жыл бұрын
Thank you I could give it a try. In the meantime I've received a code snipped and merged into the project. So real noise is also available
@OMNI_INFINITY Жыл бұрын
Recommend any links or videos with thorough explanation of what a DAC does? (From for loop to output basically...) And is the DAC using a couple of capacitors to smooth the waves?
@marcellicence Жыл бұрын
Hm... I don't know have recommendation at the moment. In external circuit I used capacitors usually in series to remove the DC offset (it is a high-pass filter).
@doonutaprivoise99174 ай бұрын
why don't you use the ESP32's ADC?
@marcellicence3 ай бұрын
Do you mean the DAC for audio output? In that case I had some problems using the ESP32 board not supporting driving the DAC via the I2S init structure. The support was missing in the SOCs
@RoyalTech_20242 жыл бұрын
Hi, marcellicense. Which variation of ESP32 is required for this project 4MB one or 8MB one? Aslo for your esp32 fm synth?
@marcellicence2 жыл бұрын
Hi, the latest generated bin file has a size of 777 KB. I think the smallest one should be good to go. If you add some graphical stuff / display etc. it may require a lot more memory to store images etc. The bin file of the fm synth has a size of 806 KB.
@RoyalTech_20242 жыл бұрын
@@marcellicence Thanks. Is the ESP32 Audio kit 4mb or 8mb? On buying sites it shows 8mb, but when I search for ESP32 A1S Module(used in audio kit) I found it to be 4mb? Do you have any idea?
@cuddleslapine2 жыл бұрын
amazing
@marcellicence2 жыл бұрын
😄
@davidkain90463 жыл бұрын
wow ...esp32...wow . wizard
@marcellicence3 жыл бұрын
Haha ... maybe xD
@AWSXDER2 жыл бұрын
This is very cool. Have you tried to use the recorded samples of real instruments instead of synthetic waves?
@marcellicence2 жыл бұрын
Thank you. Not yet but it would be possible. This feature is covered by the sampler project. The projects may be fused together =)
@AWSXDER2 жыл бұрын
@@marcellicence Yes thank you. I saw this project. Very well. For many people, this opens the way to a cheap, but very well-sounding midi synthesizer, which is not based on synthesizing waves, but on samples of real musical instruments. I follow the development of this project. Now I am just studying it, trying to understand whether it is possible to redo it under the TTGO TM (music albums) board.
@silic1um1272 жыл бұрын
its unbelievable a single esp32 can do all this, great job!!! since the sound engine is customizable is it possible to modify the waves/filter to make it sound like a retro juno/jupiter/prophet sound?
@marcellicence2 жыл бұрын
I was also suprised. The integration of new sounds and oscillators might work. Getting the filters into a digital form might be more challenging. There are some designs open source which I could integrate. I do not know how good they are for mimik the retro sounds. At the moment I have only the alpha juno inspired sound which can be modified. I can imagine to make some new sounds soon.
@silic1um1272 жыл бұрын
@@marcellicence oh i see, is the alpha juno sound already implemented on the github code? and also do you use a wav file to generate the wavetables? (sorry if the question is stupid, i absolutely suck at coding)
@marcellicence2 жыл бұрын
@@silic1um127 The Alpha Juno is available on GitHub. It is part of a library. It does not use any wavetables because of it more complex modulation. You can control the shape and modulation speed, depth via MIDI. The latest version is here: github.com/marcel-licence/ml_synth_pwm_osc_example - I am also working on a kind of better sounding "pro" version. You might recognize that the version on GitHub has some audible aliasing in the higher range.
@cbrightly3 жыл бұрын
I’m curious what the CPU overhead is on the one core as currently implemented; could the second core be used for additional processing further down the signal chain?
@marcellicence3 жыл бұрын
I think I've set the polyphony as high as possible in the project. I didn't use the second core for audio yet only for the other stuff (serial messages, adc etc.). I could imagine that it would be possible to do some audio processing as well.
@cbrightly3 жыл бұрын
@@marcellicence Thanks again for posting your source! I’m particularly curious to see if it’s possible to get the second core to apply a basic effect or two onto the audio or if lowering polyphony to free up more resources is necessary…
@alexrozkoff8148 ай бұрын
Привет, скоро получу с Алиэкспресс uyz32 и pcm5102, тоже хочу сделать такой синтезатор. Есть одна проблема, хотелось бы сделать контроллер на Arduino Uno и управлять параметрами через него. Но я не могу найти ни кода, ни проекта такого миди-контроллера.
@marcellicence8 ай бұрын
I wonder that there is no existing project using the Arduino Uno to build a MIDI controller. I would expect that you can setup Serial with a baudrate of 31250 and sending the MIDI messages to control the ESP32. If the IOs work with 3.3V levels they can be directly connected otherwise you will need some circuit in between. Regarding the messages there are example messages for NoteOn, NoteOff and ControlChange online. Hope this helps to get a step further
@alexrozkoff8148 ай бұрын
СПАСИБО!@@marcellicence
@alexrozkoff8148 ай бұрын
kzbin.info/www/bejne/h6fbfJ-FitSrna8
@deejayfree3 жыл бұрын
HI marcel, should i put a pullup for rx ? And the missing diode can be replaced by a led diode ? Many thx for your work 😉
@marcellicence3 жыл бұрын
Hi, yes I think you need a pullup for rx because the opto coupler has an open collector/drain. There are some little schematics which can be found on google. Which you a lot of fun =)
@deejayfree3 жыл бұрын
@@marcellicence thx, i've found. I've put a 1k on the 3v pin for the pullup. Sound work Nice, but the notes won't stop 😂
@marcellicence3 жыл бұрын
Oh I guess the problem. I've updated the code of all projects on GitHub. There are some controllers using NoteOn with velocity set to 0 instead of the NoteOff message. This might be causing the stuck notes. The fix is now online. Please also feel free to use issue/discussion area for ideas/feedback etc. Hope it will now work ;-)
@RoyalTech_20243 жыл бұрын
Hi, Very good work. Is there any way to remove dac and use pwm signal instead or the internal dac. Because the dac you are using is a very expensive one. 😄
@marcellicence3 жыл бұрын
Hi, thanks! It might work without DAC (just mono), more information on GitHub. Regarding the DAC .. I've payed less than 5€. There are some cheap based on the PCM5102 =)
@RoyalTech_20243 жыл бұрын
@@marcellicence Can you give me the purchase link.?
@marcellicence3 жыл бұрын
I've found it on aliexpress. There may be also other places to purchase from. Hope this helps
@RoyalTech_20243 жыл бұрын
@@marcellicence Aliexpress is banned here in India. On other sites it costs around 19$. 😭
@rockpopmando13 жыл бұрын
Hi Marcel, I have tried to compile it for a ESP32 DEVboard but the ESP reboots every minute. Any hint? I used the optionen "large app, no OTA" . Any other suggestions? Second, - the VCC of the DAC is mostly connected to 5 Volts in other DIY-Projects but You connected it tp 3.3Volts. Is it really connected that way? 3.3 or 5Volts to VCC? I tried both. Any hint would be cool!
@marcellicence3 жыл бұрын
Hi, you can check serial output in your console window. In arduino there is an ESP exception decoder which can show you where the ESP crashes. You can try to boot also the ESP without any additional hardware connected. If you like use the Q&A in GitHub
@rockpopmando13 жыл бұрын
@@marcellicence excuse my comment, - it was a Bug in my Arduino IDE. with a new installation, I was able to install Your synth without problems! - letting all settings on default, it works. As You are trying to create a sampler which takes more Flash, - have You seen these Waveforms from Adventure Kid: www.adventurekid.se/akrt/waveforms/adventure-kid-waveforms/ I stumbled across them in the context of a Teensy-based synth. Pre-Converted into C-Header: github.com/DatanoiseTV/AKWF_WaveForms
@marcellicence3 жыл бұрын
@@rockpopmando1 no problem. Good to hear that it works. There are some tools for conversion. Maybe you can also use littleFS (SPIFFS) and use .wav files to copy them in advance. Maybe I will try to set up a simple project soon and publish it =) Instead of Teensy you could also take a look at the daisySeed. It also uses the STM32
@OMNI_INFINITY Жыл бұрын
Found this for BLE MIDI in today: kzbin.info/www/bejne/gHTReaJvZ7yIjrs&pp=ygUXVVNCIE1JREkgcmVjZWl2ZXIgRVNQMzI%3D Planning to make an onboard sequencer for the constant step duration slides though, so still some things to figure out on the MIDI transport input though.