A guitar processor based on STM32H743ZITx. Currently in a prototype phase - a lot of things were tested separately, but now we work on bringing everything together into a final prototype to check everything before finishing the actual hardware design.
-
A flexible mixer with 4 mono/2 stereo inputs and outputs.
Easily integrate your guitar with other instruments and equipment. -
Built-in multitreack looper and recording capabilities.
Capture your musical ideas on the spot and save them to an SD-card, . stay on the beat with a dedicated LED indication for the Looper. -
Modular effects chain.
Arrange reverb, chorus, distortion, flanger, and more effects in any order you choose - for each input or their mix. Place Recorder, Looper, FX chain, Mixer and Monitor blocks in any sequence you need. -
Intuitive interface that's out of your way.
Easily adjust parameters and fine-tune your sound while staying focused on your music. Different sound routing options to fit all scenarios, adjustable and saved as presets.
Thought-out navigation with knobs and buttons
made both for nerds and for those who like their gear simple. -
Connectivity without compromise
Four combined XLR/TRS inputs with phantom power, full-sized MIDI In|Out|Thru ports, two external pedal/switch connectors, USB Type-C for audio streaming, file browsing and charging, four mono/differential TRS outputs.
Clone with submodules. A plain git clone leaves the SystemSW folders
empty and nothing will link:
git clone --recurse-submodules https://github.com/RATsynthesizers/FXcursion.git
Already cloned without them? Fill them in:
git submodule update --init --recursive
SystemSW is one repository — RATsynthesizers/SystemSW — checked
out at two paths, one per controller:
TestBenchmarks/FXcursion_Audio_SHIELD/SystemSW
TestBenchmarks/FXcursion_Interface_SHIELD/SystemSW
Both boards share it because both compile the same inter-controller protocol
out of SystemSW/Lib/InterComProtocol — the frame layout, the loop session
state machine, the CRC. The two pointers must always be on the same commit.
A split pointer is how the sender and the receiver end up built against
different definitions of the same frame, which on this link means silently
misrouted audio rather than a build error. Check them with:
git submodule status
Both lines must show the same SHA. When you bump one, bump the other in the same commit.
If a submodule fails to fetch a commit, it usually means someone committed a
pointer without pushing SystemSW itself. Push there first, then here.
We use STM32CubeIDE for development. Each controller's IDE project lives in
its own STM32CubeIDE/ folder, with ApplicationSW, Config, SystemSW,
UtilitySW and Tests beside it and reached through Eclipse linked resources.
Include paths therefore use ${workspace_loc:/${ProjName}/...} rather than
../, because only the workspace form resolves through a link.
There are also host test suites that build for the PC and exclude anything touching the HAL, so a green run there says nothing about whether the firmware compiles — build in the IDE for that (or GIT Bash in Windows directory):
cmake -S WIP/FXcursion_Audio_SHIELD/Tests -B /tmp/at && cmake --build /tmp/at
Building the firmware from the command line (or other IDEs) might be possible, but we haven't tested this yet.
Hardware designs are availible at https://github.com/RATsynthesizers/FXcursion-HW
♡ Stay tuned for updates! ♡
Documentation currently lives in the wiki.
PCBWay sponsored our project with free PCB prototyping services. You can read more about our experience working with them on our Hackaday.