Soup Machine is a work-in-progress project to create a hardware Digital Audio Workstation, similar to the Teenage Engineering OP-1.
As the hardware used, a Maschine (the first version a.k.a. MK1), is hooked into a Raspberry Pi v3, which acts as the computer for the software DAW.
As you can see, its in very early state 😅
-
Install Raspbian Lite on the Raspberry Pi
-
Install the required libraries and software
sudo apt-get install libusb-1.0-0-dev libhidapi-dev librtmidi-dev sudo apt -y install build-essential openssl curl
-
Install the Cabl library from source
# Get source git clone https://github.com/shaduzlabs/cabl.git cd cabl git checkout -b develop && git pull origin develop git submodule update --init --recursive mkdir build && cd build # Build and install cmake .. make sudo make install
-
Install Nim (make sure you download the latest version)
# Get Nim sources cd ~ mkdir tmp cd tmp curl https://nim-lang.org/download/nim-VERSION.tar.xz -O tar -xJvf nim-VERSION.tar.xz cd nim-VERSION # Build Nim ./build.sh # Build Nim tooling ./bin/nim c koch ./koch tools ./kock nimble # Install Nim sh ./install.sh $HOME/.nimble cp ./bin/* $HOME/.nimble/nim/bin/ # Add to path export PATH="${PATH}":$HOME/.nimble/nim/bin:$HOME/.nimble/bin # Upgrade nimble nimble refresh -y nimble install -y nimble mv $HOME/.nimble/nim/bin/nimble $HOME/.nimble/nim/bin/nimble-orig
-
If you want to do memory checks with Valgrind, make sure you install it from sources, as Raspbian comes with a buggy one:
sudo apt install autotools-dev automake git clone git://sourceware.org/git/valgrind.git cd valgrind ./autogen.sh ./configure make sudo make install
- To compile and build, run
nimble start
- To perform a memory check, run
nimble memcheck
- Logs will be saved to
./valgrind/log.txt
- Logs will be saved to
- Use Cabl from Nim
- Elm-ish API
- Controls create events
- Declarative view
- Cmd-style actions like sound and lights
- Musical keyboard with pads
- Drum sampler
As an inspiration, use the OP-1 user manual and the OP-1 explainer playlist on YouTube
Icons made by Freepik from www.flaticon.com