A Guitar MultiFX Processor running on a Raspberry Pi 3B with no operating system.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
One of my goals is to have some sort of console-like connection to the processor so I can run commands or even code interactively.
To do this, however, I need code running on the pi that can listen over serial for commands and respond to them.
I decided to write a bare-metal compatible readline() function. Basically, it is to allow editing of typed-in commands before processing them. Additionally, GNU readline adds history to the command line, so you can press CTRL+P and get the previous line.
I first prototyped this in Ruby, and then today, I've translated the Ruby code into C++. I've had to restart the code over and over, so instead of testing on the pi, I'm running against a Teensy 3.6.
Moving the code from the Teensy to the Pi will be pretty easy.
Next step: write a simple command shell.
I've got my development environment up & running now.
I'm using the gcc-arm-none-eabi-7-2018-q2-update toolchain from Arm's website on my Mac. Kind of happy about the Mac part just because it's nice to not to have to run say, Linux in a VM for this.
Next step will probably be to write some preliminary code using the Circle library.
So, I already have a Pi 3B and a Teensy Audio Board. I ordered my touchscreen today on Amazon.
While I'm waiting for that to get here, I am going to start playing with the Circle library and see how it goes.
Create an account to leave a comment. Already have an account? Log In.
Hey there!
Here's the source for my port of Circle including the Teensy Audio Library (so far) with the Audio Injector Stereo and Octo Soundcards:
https://bitbucket.org/phorton1/src-circle/src/master/
And my own hackaday project:
https://hackaday.io/project/165696-rpi-bare-metal-vguitar-rig
- Patrick
Hey there. I've been working extensively on a circle-teensy audio project with very similar goals. I have, for instance, completely reworked the i2s audio device so that it does both input and output. I have hooked both a pi zero and 3b+ to both teensy 3.2 and 3.6 with teensy audio shield as the soundcard and the pi as an audio device within Paul's library. More recently I have interfaced the pi's directly to an audio injector stereo and have an octo waiting in the closet. That eliminated an entire round trip of the audio. I am shooting for sub 6ms latency, which I am currently acheiving. Mostly now I just use a 3.2 as a serial port and programmer for the RPI with my extended circle-dwelch-placid bootloader. I've also added a mini UART (2nd hardware serial) device to circle.
I just joined hackaday to reply to your project. I prolly should start one of my own :-)
I have thought a lot bout porting paul's library to the pi, though he has publicly stated he would prefer that not happen. Its still up in the air for me.
I got hung up for the last month on BT circle nd now have a compltely rewritten, and mostly original BT stack for circle as well .. Including l2cap, sdp, rfcomm, and a sort-of spp layer. That's cuz I'd like a cheap android on the music stand, with no wires to the pi, to function mostly as a display device, though it would be a touch screen, I'm determined to keep my hands on the guitar.
Controllers are another issue. USB does 1000+ interrupts a second to poll one input midi device, so i'm wary of it, though I have several usb midi foot controllers, I may also roll my own over serial or i2c or something. Maybe an arduino for that. I'm trying to come up with a rollup foot pad that is like a big touchscreen that you lay on the floor. I'm very sensitive to the weight I have to carry, cuz it's usually on my back or I gotta haul it around in the dinghy, and I realized a "floor mouse" would give better control, for instance, of volume, than a pedal. It is too hard to control volume with 1/8th inch foot movement. I'd prefer a 10 inch slider of some kind.
I want to combine something better than quantiloop, with something better than sample tank with an ftp midi pickup., so i'm more focused on the synth and loop, than the effects, functions. The iPad is giving me 38ms which is horrible, hence this whole project. Effects could be separate, and maybe even store bought, for me. But i'm sick of ios, linux,, and windows. Don't want no OS! Right now I have most of the pieces, and am starting to design the architecture. It' d be nice(er) to port zynthian to circle. It'd be nice to have plugins of some kind. Some standards. I really like Paul's stuff though, its very clean.
On it for 5 months now, I expect it to take another year or 18 months to a gig ready system.
So I'll keep following you. I should be posting my mods to circle and the beginnings of my project in the next month or so. When I do, I'll drop a note here.
I think there's probably some stuff there you could use.
-patrick
Hi Patrick- I'm really sensitive to latency, so that's why I'm going down the 'not linux' path. I'm actually planning to have an analog compressor + tube driven drive stage too... The latency of the time-based effects would be even less noticeable that way.
Hi I'm following this project, I hope I can develop a guitar synth with raspberry hardware someday, I think it has more than enough resource to analyze/decompose the polyphonic notes from the single coil guitar signal.. things like ehx-organ machine..
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
It should be pretty simple to hook the Teensy Soundcard (SGTL5000) up to it. It's on my list of *things to prove".