pantherb / setBfree

DSP tonewheel organ
http://setbfree.org
GNU General Public License v2.0
194 stars 35 forks source link

ESP32 port #91

Open schef opened 1 year ago

schef commented 1 year ago

Hi guys, would be evan possible and what would be the effort to port this beautiful software to esp32? The board i have in mind is ESP32-Audio-kit.

x42 commented 1 year ago

I do not know enough about the ESP32 to answer that question. For the Xtensa LX7 Processor it might be a close call.

How are you going to get MIDI input?

Cadence offers a C/C++ compiler, and the best way forward to port a project to a microprocessor is to strip it down to the bare minimum. Basically only need to call the following methods in a loop for each process cycle

parse_raw_midi_data (..);
oscGenerateFragment (..);
preamp (..);
reverb (..);
whirlProc (..);

All that being said, if you do want a "micro-B3" you can just get a Raspberry Pi. setBfree runs there, and you can just connect a USB soundcard and/or USB-keyboard.

schef commented 1 year ago

MIDI would be handled over UART interface.. The issue with Raspberry Pi is that the whole OS has to boot which is like more then 30s. With a microprocessor a battery solution would also be more acceptable and complete/embedded. If I get my hands dirty i will come back to you. Thanks

On Mon, Jun 12, 2023 at 6:01 PM Robin Gareus @.***> wrote:

I do not know enough about the ESP32 to answer that question. For the Xtensa LX7 Processor it might be a close call.

How are you going to get MIDI input?

Cadence offers a C/C++ compiler, and the best way forward to port a project to a microprocessor is to strip it down to the bare minimum. Basically only need to call the following methods in a loop for each process cycle

parse_raw_midi_data (..);oscGenerateFragment (..);preamp (..);reverb (..);whirlProc (..);

All that being said, if you do want a "micro-B3" you can just get a Raspberry Pi. setBfree runs there, and you can just connect a USB soundcard and/or USB-keyboard.

— Reply to this email directly, view it on GitHub https://github.com/pantherb/setBfree/issues/91#issuecomment-1587626828, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF5KTRJKTSSSVOL54BVB6TXK44NXANCNFSM6AAAAAAZC5U7VU . You are receiving this because you authored the thread.Message ID: @.***>

x42 commented 1 year ago

The issue with Raspberry Pi is that the whole OS has to boot which is like more then 30s.

I suggest to remove the Desktop system, which is usually what requires the most time.

Projects like zynthian (which uses a stock RPi) manages this in 5 seconds from power on to play. mod.audio is a bit faster (using a custom ARM board). A Kawai piano also need 3-4 seconds, which I find acceptable.

That being said, if you manage to get it going on the ESP32 it'd be cool! Have fun hacking!

aeonSolutions commented 1 year ago

@schef you can find a C++ port to Teensy boards (ESP32) here: https://github.com/rodisch/Teensy-Orgl

Kirtai commented 11 months ago

You could use the https://github.com/rsta2/circle environment to port setBfree to Raspberry Pi bare hardware.

A couple other projects do that, such as MT32-pi and MiniDexed.

schef commented 11 months ago

Oh, this sounds very exciting! I have couple or RPi zero laying around. Thanks.

On Sun, Sep 24, 2023 at 6:25 PM Kirtai @.***> wrote:

You could use the https://github.com/rsta2/circle environment to port setBfree to Raspberry Pi bare hardware.

A couple other projects do that, such as MT32-pi and MiniDexed.

— Reply to this email directly, view it on GitHub https://github.com/pantherb/setBfree/issues/91#issuecomment-1732613326, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAF5KTTRWSBKXZLB3KYEIXTX4BNIDANCNFSM6AAAAAAZC5U7VU . You are receiving this because you were mentioned.Message ID: @.***>