TR-909 Drums using an esp8266

With Mozzi you can play recorded samples inside a sketch, but you can only store 90kb of data. (data are stored in variables (90kb) not the flash memory used by the sketchs (1mb) )

I read a tutorial which allow to do this, with the I2S interface. 
http://blog.dspsynth.eu/

The provided example transform your ESP8266 as a drum sound generator with TR-99 roland samples.

Code here : http://www.dspsynth.eu/files/code/rtpMIDI909.ino

 
 
You can get more info on I2S - on Page 14 of the ESP8266 official documentation
https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
 
ESP8266EX has one I2S data input interface and one I2S data output interface, and supports the linked list DMA. I2S interfaces are mainly used in applications such as data collection, processing, and transmission of audio data, as well as the input and output of serial data. For example, LED lights (WS2812 series) are supported.
 
When you plug a audio jack on ESP8266 (on RX), the sound will be noisy, you need a low pass filter.
The code was meant to be used with Apple Midi (rtp-midi) which allow to use midi controller thought Wi-Fi).
On Windows, you need LoopMidi and rtp midi to make it work:
 
rtp-midi should be able to automatically detect midi controller, but i had to manually enter the IP of my esp to make it works (in DIRECTORY IP:5004)
After this, you can use it with any music production software, I used LMMS as it is free (as freedom) :-)
You have to 
  • Create a track with any instrument
  • Mute the instrument
  • Click on the piano icon
  • Enable Midi output, Canal 10
  • Choose the midi port (it has the name of your computer)
 
I still have a static sound, no idea where it came from, but the sound is not bad.

Your browser doesn't support HTML5 audio

 
 
Funny thing, since it used the I2S output which is on RX pin, during upload we can hear the sketch being upload.

Your browser doesn't support HTML5 audio