Blackstomp Opensource DIY Digital Pedal

Started by Hamuro, November 17, 2021, 04:59:37 AM

Previous topic - Next topic

Hamuro

BLACKSTOMP DIY DIGITAL PEDAL (OPEN SOURCE)

Deal all members, I have designed an opensource DIY digital pedal, called Blackstomp, with the following features:

  • Stereo line or guitar input/output
  • Potentiometer, switch, and button interfaces
  • MIDI input/output interface
  • WiFi and Bluetooth connectivity
  • 24-Bit stereo codec with analog pass-through bypass
  • Dual core Tensilica Xtensa LX6 240 MHz 32-bit processor with single precision FPU (floating point unit)
  • C++ library for fast development with Arduino IDE and ESP-IDF development tool chains.

The provided example sketches only provide stereo chorus and tap tempo ping-pong delay for the moment, but I have successfully used it to develop my proprietary codes of vocoder, polyphonic pitch shifter, and double rotor leslie speaker simulator. Get the complete schematic diagram, demo video, and link to the opensource codes at deeptronic.com/blackstomp , and happy building!




FiveseveN

Any issues with interference when using WiFi / Bluetooth? Have you tested it on a pedalboard, next to high gain pedals?
Quote from: R.G. on July 31, 2018, 10:34:30 PMDoes the circuit sound better when oriented to magnetic north under a pyramid?

vigilante397

I bought a Blackstomp several months ago and I have to admit I was not impressed, I regret giving it a chance long enough to miss my return window. Aside from the finish issues (which were ridiculous) the pedal itself was extremely noisy even used by itself on an isolated power supply. I sincerely hope you've changed things and aren't selling people the same quality that I received.
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

niektb

Did you already upload your schematic to your website? In the incredibly unclear schematic i did not find the analog pass-through (or did you just mean true-bypass and not analog dry signal path?) and neither do I see a 24-bits codec (the esp-32 ADC and DAC are 12 and 8 bits respectively)

pruttelherrie

Quote from: niektb on November 17, 2021, 12:07:07 PM
Did you already upload your schematic to your website? In the incredibly unclear schematic i did not find the analog pass-through (or did you just mean true-bypass and not analog dry signal path?) and neither do I see a 24-bits codec (the esp-32 ADC and DAC are 12 and 8 bits respectively)

He uses the ESP32-A1S, which has a built-in 24 bit codec.

In my experiments, using the first version of the ESP32-A1S with the AC101 codec, I had a lot of problems with hashing noise from the wireless part of the module. I could not get rid of that. I'm not sure if the new version of the ESP32-A1S with ES8388 codec also has these problems, but I expect the worst.

ElectricDruid

#5
Sounds a bit like the design could have used a bit more beta-testing and bouncing off a few of the folks around here and elsewhere before it hit the big time.

Hamuro

Quote from: FiveseveN on November 17, 2021, 05:23:13 AM
Any issues with interference when using WiFi / Bluetooth? Have you tested it on a pedalboard, next to high gain pedals?

Currently only BLE (bluetooth low energy) interface function is provided in the blackstomp library, and there's no plan to provide WiFi interface function (but you can still implement yourself with the ESP-IDF api). The bluetooth is not yet tested with adjacent other high gain pedal, but testing it alone  by activating it (in the blepedal.ino example) introduces a bit of audible noise. So it's not recommended to use BT as always-on feature. In case of my proprietary implementation, bluetooth is only activated when foing firmware upgrade and the effect is completely off.

Hamuro

Quote from: vigilante397 on November 17, 2021, 09:23:11 AM
I bought a Blackstomp several months ago and I have to admit I was not impressed, I regret giving it a chance long enough to miss my return window. Aside from the finish issues (which were ridiculous) the pedal itself was extremely noisy even used by itself on an isolated power supply. I sincerely hope you've changed things and aren't selling people the same quality that I received.

I'm really sorry about your bad experience with blackstomp pedal. The old pedal has improper coating and several design flaws, but it was all clear in the schematic (all old documents (product page, schematic, and other links is never deleted).  The new pedal  (blackstomp core/bscore dev pedal) has several improvement: more proper and stronger spray paint coating, separate audio and digital ground to minimize digital noise interference, isolated digital interface socket to keep different ground isolation, and added zobel network for more high frequency stability and high frequency noise dumping.

Hamuro

Quote from: pruttelherrie on November 17, 2021, 01:37:08 PM

He uses the ESP32-A1S, which has a built-in 24 bit codec.

In my experiments, using the first version of the ESP32-A1S with the AC101 codec, I had a lot of problems with hashing noise from the wireless part of the module. I could not get rid of that. I'm not sure if the new version of the ESP32-A1S with ES8388 codec also has these problems, but I expect the worst.

The old AC101 version is actually has lower noise than ES8388 version, at least in my testing. The latest version of blackstomp circuit (using separate daughter board called blackstomp core/bscore module) adds a zobel network circuit  for both L and R out and this reduce the noise (i think the noise comes from unstable d/a conversion filtering), did you use this circuit version?

Here are several points I found:
- Enabling BLE communication (blepedal.ino for example) adds a bit of audible noise, but not so disruptive, tested on single pedal (not connected to any effect chain)
- Enabling serial/UART communication for debugging (by running runSystemInfo() ) add a bit of audible noise, and getting worse when microphone is enable (input mode IM_LMIC) and set to high gain.
- Noise added by serial/UART can be lowered by reducing the baud rate
- Activating MIDI i/o communication (midipedal.ino) adds no audible noise (maybe because of optical isolation), tested with line/guitar input mode (IM_LR), not tested yet with high gain input mic
- Connecting serial/UART port to PC add horrible noise when the audio input/output of the pedal is connected to the PC audio, I'm sure this is caused by the ground loop since the serial/UART port is not isolated.



vigilante397

If anyone wants to buy a used Blackstomp PM me, I still have mine. I was going to post pictures of it on this thread but didn't want to feel like I was attacking the maker.
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

pruttelherrie

Quote from: Hamuro on November 17, 2021, 10:18:13 PM
The old AC101 version is actually has lower noise than ES8388 version, at least in my testing. The latest version of blackstomp circuit (using separate daughter board called blackstomp core/bscore module) adds a zobel network circuit  for both L and R out and this reduce the noise (i think the noise comes from unstable d/a conversion filtering), did you use this circuit version?

I used Gerber_Blackstomp_Core_PCB_Standard_20200210155128. Actually, I didn't use the wireless when testing, just serial to upload. But I did not use PC audio, just guitar -> ESP -> amp. I'll have to revisit the board to do more investigations where the noise is coming from.

Furthermore you make good points, which are unfortunately not applicable for my tests.

Hamuro

Quote from: vigilante397 on November 18, 2021, 09:36:30 AM
If anyone wants to buy a used Blackstomp PM me, I still have mine. I was going to post pictures of it on this thread but didn't want to feel like I was attacking the maker.

I have sent a reply to you private message twice because I checked the option to save a copy in my outbox but it shows no message in my outbox after got sent. I'm new to this forum and I hope everything works.. Have you received my message about compensation offer?

Hamuro

Quote from: pruttelherrie on November 18, 2021, 12:34:11 PM
Quote from: Hamuro on November 17, 2021, 10:18:13 PM
The old AC101 version is actually has lower noise than ES8388 version, at least in my testing. The latest version of blackstomp circuit (using separate daughter board called blackstomp core/bscore module) adds a zobel network circuit  for both L and R out and this reduce the noise (i think the noise comes from unstable d/a conversion filtering), did you use this circuit version?

I used Gerber_Blackstomp_Core_PCB_Standard_20200210155128. Actually, I didn't use the wireless when testing, just serial to upload. But I did not use PC audio, just guitar -> ESP -> amp. I'll have to revisit the board to do more investigations where the noise is coming from.

Furthermore you make good points, which are unfortunately not applicable for my tests.

I think the PCB Gerber_Blackstomp_Core_PCB_Standard_20200210155128 you were using is much older version which lacks the zobel network high frequency dumper and  even has bad audio and digital signal separation. As long as I remember, I have deleted that file on the github repo, but I'm worrying if the link is still published somewhere on my website.

pruttelherrie

This was quite some time ago so I'm pretty sure you've removed it since then.

It's still ok as an algorithm testing platform (I used an adapted Teensy Audio lib), but before using an ESP32-A1S in an end-product I really would like to see (hear?) what is possible with proper design. I'm still worried that having the codec and the CPU under the same metal cover, with the targeted purpose IoT devices, is not a great starting point for guitar effects.

Hamuro

Quote from: pruttelherrie on November 19, 2021, 02:27:20 AM
This was quite some time ago so I'm pretty sure you've removed it since then.

It's still ok as an algorithm testing platform (I used an adapted Teensy Audio lib), but before using an ESP32-A1S in an end-product I really would like to see (hear?) what is possible with proper design. I'm still worried that having the codec and the CPU under the same metal cover, with the targeted purpose IoT devices, is not a great starting point for guitar effects.

To hear the latest blackstomp version sounds, here are two demos that use different ESP32-A1S version the first demo (tap-tempo pingpong delay effect) uses the new ESP32-A1S module with ES8388 codec, and the second demo (retention loss effect) uses the older version with AC101 codec. Hear it and you'll see the older AC101 version has much cleaner noise. All are recorded in stereo from the blackstomp output to the soundcard input, only amplitude normalization is don in audio editing (no noise reduction or tone manipulation):

Demo-1: Tap tempo ping pong delay run on BSCORE module with ES8388 codec at https://youtu.be/B4dWFLrq8To
Demo-2: Retention loss effect  run on BSCORE module with AC101 codec at https://youtu.be/s0glZ7jaQes

The latest blackstomp circuit is published at https://www.deeptronic.com/blackstomp
For end product, the circuit still need input buffering since the codec has pretty low impedance, but I think it's ok for development mode pedal. From hearing the demo, do you think the noise level of the old module with AC101 codec will be acceptable for end product?

pruttelherrie

Quote from: Hamuro on November 19, 2021, 08:47:50 PM
To hear the latest blackstomp version sounds, here are two demos that use different ESP32-A1S version the first demo (tap-tempo pingpong delay effect) uses the new ESP32-A1S module with ES8388 codec, and the second demo (retention loss effect) uses the older version with AC101 codec. Hear it and you'll see the older AC101 version has much cleaner noise. All are recorded in stereo from the blackstomp output to the soundcard input, only amplitude normalization is don in audio editing (no noise reduction or tone manipulation):

Demo-1: Tap tempo ping pong delay run on BSCORE module with ES8388 codec at https://youtu.be/B4dWFLrq8To
Demo-2: Retention loss effect  run on BSCORE module with AC101 codec at https://youtu.be/s0glZ7jaQes

The latest blackstomp circuit is published at https://www.deeptronic.com/blackstomp
For end product, the circuit still need input buffering since the codec has pretty low impedance, but I think it's ok for development mode pedal. From hearing the demo, do you think the noise level of the old module with AC101 codec will be acceptable for end product?

Indeed, the ES8388 is pretty noisy, but the AC101 is actually very usable!

I'm always using some kind of (heavy) distortion in my sound, so I always use a gate, but some digital effects normally go after the gate and then the noise of the ES8388 is unwanted, especially when playing gigs.

Firesledge

Quote from: Hamuro on November 17, 2021, 04:59:37 AMpolyphonic pitch shifter
I would be very interested in such a working algorithm. Do you plan to publish it? If not, could you please give some pointers on papers or other resources dealing with polyphonic pitch shifting on an embedded device?
Pédale Vite, multi-FX pedalboard

Hamuro

Quote from: Firesledge on November 20, 2021, 05:31:29 PM
Quote from: Hamuro on November 17, 2021, 04:59:37 AMpolyphonic pitch shifter
I would be very interested in such a working algorithm. Do you plan to publish it? If not, could you please give some pointers on papers or other resources dealing with polyphonic pitch shifting on an embedded device?


I don't have any plan to publish the codes for the pitch shifter, but I use the old-school rotating playback head simulation for the implementation. See the ilustration here: https://valhalladsp.com/wp-content/uploads/2010/05/rotarytapehead11.png

It uses about 10% CPU time of ESP32 processing core (blackstomp uses one dedicated core for signal processing, other core handles all the the other non DSP tasks).

I'm confident enough to use it as the shimmering component of a reverb or as vocal/guitar harmony (which always comes along with the dry) but not to compete with pitchfork or whammy. My optimized algo is just a bit better than my old Korg AX3000G's pitch shifter. Maybe I have to write new code with frequency domain processinh for better transient performance to compete with pitchfork or whammy, and fortunately ESP-DSP library provides optimized codes for doing FFT and IFFT.

Firesledge

Ah O.K. I thought it was a frequency-domain based pitch shifter.
Pédale Vite, multi-FX pedalboard

Hamuro

Just to announce that the library has been updated to Version 3.4. Now the new ES8388-version module can be optimized for lower conversion range to produce much cleaner sound. Here is the new demo video just to show how clean the sound is:

https://youtu.be/T4cFuPED8H8

The audio in that video is recorded directly from the pedal's out to the soundcard's line-input, so we can hear it with a stereo headset and judge the sound.