Making electronic music is awesome! But for most of us, it requires a lot of setup, a lot of moving a mouse around on a laptop that's probably not quite equipped to handle realtime audio processing.
The OTTO is a complete hardware and software solution, with synths, a sampler, effects, sequencers, and studio modules. It is heavily inspired by the OP-1, but takes some things in a different direction. The goal is to create an all-in-one portable device, that allows anyone to play around with electronic music. It shall be open and accessible, while maintaining the very constrained interfaces, necessary to really be creative.
Come chat with us at our discord server if you're interested in the project.
@D-I-S-K-U-S has been working hard on graphics, and these are some of the highlights:
The software is modular, with modules in six groups: Synths, drums, effects, modulation, sequencing, and studio. These modules are chained together as can be seen in this diagram:
Each module has up to 4 settings, that can be controlled using 4 rotary encoders. Like the OP-1, the colours of the 4 rotaries corresponds to the colour of the option on screen that will be changed. Each module slot will be accessible from a single hardware button press.
The software will be set up to run on a Raspberry Pi, with a small AMOLED screen, 4 rotary encoders, and around 20 buttons. This can then be built into any kind of enclosure, with or without a midi keyboard and other bells and whistles.
A lot of the main software backend is completed. The 4-track tapedeck is implemented, along with the mixer and the metronome. We are working hard on synths and drums, currently there's a proof of concept additive drum synthesizer, and drum and synth samplers.
Currently, it runs in a window on your desktop, and uses jack for audio. We have been considering using portaudio instead, as it is better for cross platform development. Currently the OTTO only runs on Linux, but there are efforts to get it running on OS X and Windows.
These are the key bindings currently emulating the hardware buttons:
Key | Action | Key | Action |
---|---|---|---|
Ctrl | (mod) Encoder Click | ||
Q | +Red Encoder | A | -Red Encoder |
W | +Blue Encoder | S | -Blue Encoder |
E | +White Encoder | D | -White Encoder |
R | +Green Encoder | F | -Green Encoder |
Left Arrow | Rewind | Shift + Left Arrow | Skip Rewind |
Right Arrow | Forward | Shift + Right Arrow | Skip Forward |
Space | Play | Z | Record |
F1 | Track 1 | F2 | Track 2 |
F3 | Track 3 | F4 | Track 4 |
Ctrl + T | Tape | Ctrl + Y | Mixer |
Ctrl + U | Synth | Ctrl + G | Metronome |
I | Go to Loop In | Shift + I | Set Loop In |
O | Go to Loop Out | Shift + O | Set Loop Out |
L | Toggle Looping | Ctrl + X | Cut Tape Selection |
Ctrl + C | Lift Tape Selection | Ctrl + V | Drop Tape Selection |
The OTTO is written in bleeding edge C++17, which gives some problems with dependencies. First of all, you need a up to date compiler: GCC-7 or clang 5.0 should work. The biggest problem is the standard library. Currently i think only libstdc++ 7
has all that we need. This will probably change in a few months, as other implementations catch up.
For Debian/Ubuntu, this should install most of the dependencies:
apt install jackd\
g++-7\
libjack-jackd2-dev\
libgles2-mesa-dev -y
(If you don't have g++-7
, google how to get it for your specific version)
You will also need cmake 3.8 or above, get it here
I recommend also installing patchage
and jack-keyboard
, but they are in no way required.
With this set up, you should be able to build & run the OTTO with:
cmake .
make -j4
bin/otto
As previously mentioned, there are (currently unfruitful) efforts to run on OS X and windows.
Nearly all DSP in the OTTO is written in faust. Faust compiles to C++, and if you don't have plans to edit the .dsp
files, you don't have to worry about faust. If you do want to do DSP work, it is very important that you use the correct faust version, which currently is 0.9.104
. To install that, run the following commands:
git clone https://github.com/grame-cncm/faust
cd faust
git checkout 24db8d98e63aa8a119ffc601bf6aeec3e33e7a86
make
sudo make install
Once you have faust installed, verify that the faust
command uses the correct version. You should see something like this:
$ faust --version
FAUST, DSP to C++ compiler, Version 0.9.104
Copyright (C) 2002-2017, GRAME - Centre National de Creation Musicale. All rights reserved.
Then, make the apropriate changes in the .dsp
files, and compile them by running
sh scripts/compile-faust.sh
We are a small group of people who would really appreciate your help or just your interest in the project. If you do want to help, these are some areas you could help with:
- Software testing
- Writing documentation
- Hardware design / testing
- UI design
- Creating default samples & settings
And of course, the coding itself, with areas like
- Synth/Effect design
- General backend design
- Hardware bridging
- Distro setup - a custom distro for the Pi might be necessary
If you are interested, come chat with us at our discord server, it's where all the magic happens!