DIY Volca - POlca

Hi Folks, I have created something like a Volca to play Samples.
I know this is not “Modular”-Stuff.
As others use a more expensive Sampletrigger-Board and put behind a modular frontplate, I have created a complete 16 Step Drum-Thing which includes the ability to play up to 12 Samples 16Bit Mono which could be panned in the Stereo Field.
Currently it is more like a TR727 which is not the main Drum-Computer but adds a lot of texture with its samples.
With some inside effects and filters and all the variables to manipulate each sound, it could sound like a Disco-Drum, FM-Drums or like really other strange things - or very natural.

SW-Features:

  • 16 Steps, MIDI Clock Slave
  • 12 WAV-Samples per Sampleset ( 4-5 Samplesets should work )
  • Variables per Sound: Pitch, Decay, Attack-Cut, Volume, Pan, Pitch-follows-decay, Midi-Note, Midi-Channel
  • Arduino-IDE (Code)
  • 3 Effects: Filter LP/HP with Resonance, Bitcrusher, PCM-Speed
    Hardware-Features:
  • ESP32 ( any model should work)
  • 16 Step-Buttons with 16 LEDs
  • 5 Control-Buttons, F1, F2, Start, Cont, etc.
  • OLED Display 128x64 Pixels
  • Midi-In, Midi-Out

The Sample-Engine is based on the code from Marcel Licences Drum-Computer.

Github:

Latest Video with very low Volume!

Is this information enough to rebuild it or should I create a board-layout?
Is it to complex?

Should I use Touch-Pads or better Tactile Switches as I did?
What Do You prefer?
Is this something to be in a modular setup?
Should I add Sync In / Sync Out?
Do You need more Pots? I tried to get it working with 4 because this was the space on the oled-display.

Planned features for the next days:
Sync In/Out
Switching the Sound-Sets
Load/Save of Patterns

10 Likes

Awesome work dude :+1: :+1: :+1:

3 Likes

Good stuff! I think the layout is great for actually building the thing DIY, and doesnt compromise on the interface of using it.

2 Likes

Superb layout and design!
Really flexible project.
Please keep the buttons which I prefer to the touch keys (less to test)
Very taken with the use of small pots and the case.
Bravo!

Updated my German vocabulary too …
Rotary encoder
Midi in
Midi out and multiplexer :grinning:

Wer wusste???

3 Likes

Hi, thanks, excuse me for posting a german video in a english speaking discourse-board. In that stage, I have connected all the UI-Elements, Pots, Buttons, LEDs using multiplexers using the same I2C-Bus. … only 2 wires.
For the I2S - Audio I use 3 wires, 2 Wires for Midi In and Out. That way it could be used with most Dual-Core ESP32-DEV-Boards.
The Encoder wasn´t that good as expected and the Pots work great. First it was only a LAB-Boards without a housing but I thought to try to build one after buying a simple 3d-printer. The Github-Page is in english :slight_smile: only a few old comments in the code are german.

4 Likes

Hmm, there would be more space if you would not spend one line per pot on the title of the pot. If instead you would precede the dial with the first letter of the pot’s title that would save you 4 lines. E.g. if you would want to show ADSR values you could do it like this:

Attack
---------
Decay
---
Sustain
---------
Release
------

Note the - signs are meant to be the graphical representation of the value here.
But instead this would take up less space:

A: ---------
D: ---
S: ---------
R: ------

This might look a bit condensed, but who would not know what A, D, S, and R stand for?
You now have 4 more lines on the display. You could do this for the already existing pots.

B.t.w.: really nice project !

2 Likes

Hi, I have changed the Display like You mentioned but the height of the chars was too big. I wasn´t able to get more 2 lines of space.
Finally, after testing different option I came to this:
I came to this as I did not have all first characters as unique and well known chars:

Vol ===== Dec ========
Pit ========== Pan =====

That way I had one more line for other things to display!
In most menus I used that free line to add some margin/spacing between all the informations.
The last step was to replace the too small OLED.
Replaced the SSD1306 OLED 0.96" with a bigger SH1106 OLED 1.3".

You could see the difference between the small one ( laying loosely on the box) and the newer bigger one.
I am still updating the funktionality on github.
Last features: Delay and Reverb and Changing the Soundsets ( TR727-Like, TR6xx, TR8xx, TR9xx)

6 Likes

@erichheinemann Hi! How to upload your code on esp?
I”m instal LittleFS.jar, mklittlefs, esp32fs, driver ch34xser. Code upload fine, serial monitor displayed .ino -filed to open directory.

Esp32 sketch Data upload - LittleFS Upload Filed

ESP32 Dev Module
Upload Speed 115200
CPU 240Mhz
Flash 80Mhz
FlashMode QIO
FlashSize 4MB(32MB)
Partition Scheme:Default 4mb with spiffs (1.2mb APP/1.5MB SPIFFS)
Core Debug Level None
PSRAM Disabled

Hi, You have to install the Arduino IDE, then the Module for the ESP32.
LittleFS.jar …

Upload the Code with the Arduino-IDE and afterwards the Samples using the Little-FS-Tool. Thats all… The Samples have to placed into a directory “data” and subdirectory “0”, “1”, “2” for the Sample-Kits.

Are You able to upload other simple Arduino-Sketches well? In my case, my last esp32 needs to get “boot” pressed to accept new programs.

Yes, blink, and test oled display worked

can i contact you by mail or other messengers?