Coder Social home page Coder Social logo

sinneb / esp32-hvcc Goto Github PK

View Code? Open in Web Editor NEW
18.0 3.0 2.0 3.56 MB

Heavy compiler (hvcc) sources running on ESP32-DevKitC powered eurorack module

CMake 0.29% Makefile 0.05% C++ 74.66% C 25.01%
esp32 hvcc i2s puredata hvcc-compiler mcp3208 dual-i2s eurorack audio pcb

esp32-hvcc's Introduction

ESP32-DevKitC & hvcc

This repo demonstrates a single file solution for running hvcc sources on the ESP32-devkitc, inspired by the Faust ESP32 architecture example. The hvcc compiler leverages the use of (a subset of) puredata operators on the cheap and fast esp32 uprocessor. The ESP32-devkitc combined with one PCM5102 CODEC, one WM8731 CODEC and an 8 port MCP3208 ADC provides a complete and available audio development platform with a very reasonable pricetag. UI provided via 4 buttons, 4 potentiometers and 4 leds.

Goal

The goal of this development is to realise a generic eurorack module that is based on the ESP32 and programmable via puredata. Each cheap module consists of four control voltage inputs and four audio / cv outputs (all io -5v -> +5v and fully eurorack compatible). All parts are easily obtainable and all software and hardware is open source, so ordering your own set of PCB's is also possible

Status

15-nov-2020: Replaced one of the PCM5102 with a WM8731 to have audio stereo line in over i2s

25-oct-2020: PCB design ready, gerbers generated and boards ordered.

18-oct-2020: Code cleanup and PCB design ongoing. Current schematic tested and working!

Installation

  • Install Espressif IoT Development Framework 4.1, the official development framework for ESP32.
  • Install the hvcc compiler
  • Clone this repo

Hardware setup

Check the Kicad schematics in the schematics folder

Usage

  • Create your puredata patch, using the supported objects only. Use tabread with a $0-array instead of the table object, seems to work better.
  • Issue a Issue a python2.7 hvcc.py input.pd -o ./heavy/ to generate the source files, where input.pd is your puredata patch
  • MAC: compile using hvcc and libs and copy to project subdir: python2.7 hvcc.py esp32_2.pd -p ./Hoclib/ ./Josephlarralde/ ./ParkinsonHashizume/ ./MikeMorenoAudio/ ./Heavylib -o ./heavy/ ; cp ./heavy/c/Heavy_heavy.* ~/Documents/GitHub/esp32-hvcc/main/heavy/
  • WIN: compile and copy: c:\Python27\python.exe rest as above, then a copy /Y heavy\c\Heavy_* c:\Users\Arthur\Github\esp32-hvcc\main\heavy
  • Add all heavy c and cpp sources to /main/CMakeLists.txt (only when adding new objects)
  • Run idf.py -p /dev/tty.SLAB_USBtoUART flash monitor to compile, upload and monitor the esp32 binary
  • MAC: idf.py -p /dev/cu.usbserial-1A14301 -b 921600 flash monitor
  • WIN: idf.py -p COM4 -b 921600 flash monitor
  • Enjoy your pd patch!

Performance

A large and nice sounding puredata patch from "manwithfeathers" on rebeltech.org named "Fascination IV" yields about 60% performance of the ESP32 which looks like a very nice performance / cost ratio!

esp32-hvcc's People

Contributors

sinneb avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

esp32-hvcc's Issues

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.