Code Monkey home page Code Monkey logo

esp32_midi_sampler's Introduction

esp32_midi_sampler

ESP32 Audio Kit Sampling MIDI Module - A little DIY Arduino based audio/synthesizer project

The project is written for the ESP32 Audio Kit V2.2 Arduino Settings:

  • Board: ESP32 Dev Module
  • PSRAM: Enabled

ESP32 LittleFS Data Upload is required to upload samples into flash.

Compile information:

  • board 'esp32' Version 1.0.6
  • core 'esp32' Version 1.0.6

Following libraries are used:

  • FS in Version 1.0
  • LittleFS_esp32 in Version 1.0.6
  • SD_MMC in Version 1.0
  • WiFi in Version 1.0
  • AC101 in Version 0.0.1
  • Adafruit_NeoPixel in Version 1.7.0
  • Wire in Version 1.0.1
  • ML_SynthTools (https://github.com/marcel-licence/ML_SynthTools)

Configuration of the Audio Kit:

  • Set DIP 2, 3 to on and all other DIP switches to off (required for SD card access)

To store samples on the ESP32 you can upload them using the Arduino plugin:

A WS2812 8x8 led matrix can be connected to IO12, 3V3, GND (defined by LED_STRIP_PIN in config.h) ref: https://hackaday.com/2017/01/20/cheating-at-5v-ws2812-control-to-use-a-3-3v-data-line/

MIDI should be connected to IO18 (you can modify the define MIDI_RX_PIN in config.h)

AS5600 can be now used for scratching. To use it, set the define "AS5600_ENABLED" in config.h as active. The connection is defined below:

  • SDA: IO21
  • SCL: IO22 Note: MIDI_RX_PIN changed from IO18 to IO19 on the ESP32 Audio Kit. In that case you can attach a 160x80 display but its connection will change to:
  • MOS: IO23
  • SCLK: IO18
  • CS: IO5
  • DC: IO0
  • RST -> should be connected to RST / EN of the ESP32

A controller mapping can be found in z_config.ino.

Keys can be used with only one IO by a little modification of the ESP32 Audio Kit (ref: https://youtu.be/r0af0DB1R68)

  • move R66-70 to R60-R64 (0 Ohm resistors, you can also put a solder bridge)
  • place at R55-R59 a 1.8k resistor Finally the define AUDIO_KIT_BUTTON_ANALOG in config.h is required

If you have questions or ideas please feel free to use the discussion area!


External resources: reverb_module.ino is a ported from stm32 code (src. https://github.com/YetAnotherElectronicsChannel/STM32_DSP_Reverb/blob/master/code/Src/main.c) A great video explaining the reverb can be found on his channel: https://youtu.be/nRLXNmLmHqM

Specifications and datasheets:

ESP32-A1S (AC101 variant): https://www.makerfabs.com/desfile/files/ESP32-A1S%20Product%20Specification.pdf ESP32-A1S (ES8388 variant): https://github.com/marcel-licence/esp32_midi_sampler/files/7075076/esp32-a1s_v2.3_specification.pdf AC101 user manual: http://www.x-powers.com/en.php/Info/down/id/96 ES8388 datasheet: http://www.everest-semi.com/pdf/ES8388%20DS.pdf ES8388 user guide: https://dl.radxa.com/rock2/docs/hw/ds/ES8388%20user%20Guide.pdf

Derived projects

If you like please let me know if you want to get your project listed here which is based on the esp32_midi_sampler project.

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.