A full featured Companion for the Teenage Engineering OP1 Keyboard written in Python 2.7
While I adore my OP1, there are some things I would love to augment a bit to improve the workflow, plus more features = more better.
Coming Soon...
Progress | Description |
---|---|
80% | Setup hardware |
Done! | Setup Linux environment |
90% | Complete v1.0, MVP features |
90% | Put together github for everything. |
0% | Put together tutorial video on initial build, initial code, key learnings and demonstration. |
0% | Complete V2.0, Expand feature set to less essential features |
0% | 3d printable case |
The linux distro is typical raspbian lite. Upon booting it automatically runs the python script. The usb soundcard has been soldered directly to one of the usb ports on the usb hub and set as the default for the os and the controls + display auto start on boot as well. You'll notice that I used a Raspberry Pi Zero instead of a Zero W. This was because I wanted to be able to omit the wifi adapter when I didn't need wifi ( easier on the battery, primarily. ) You could totally sub in a Zero W instead and have wireless connectivity all the time.
The hardware consists of:
- A Raspberry Pi Zero Amazon Link
- Screen + Controls 'hat' Amazon Link
- 4 Port USB Hub Amazon Link
- USB Soundcard Amazon Link
- LIPO Battery Charge controller [TBD]
- LIPO Battery [TBD]
- LIPO BATTERY 5v Boost Convertor [TBD]
- Teenage Engineering OP1 Amazon Link
The actual application code is all written in Python 3.x using Pygame as the core.
4 buttons + d pad controls
Color oled screen
3 extra USB ports
Permanent USB Soundcard
A sound librarian ( wav and mp3 playback ) for building new drum kits and loading ( recording ) them or loading ( recording ) sampler synth sounds
A patch librarian for copying synth and drumkit patches to / from the OP1 with renaming ability
A complete backup / restore system supporting as many different 'snapshots' as you can store.
Auto routing any other USB MIDI devices to the OP1
SAMBA file sharing over Wifi
Auto starting the Python app on boot
A more complete file editor system ( create folders, rename things, multi select, etc. )
A rechargeable battery
A 3d printable case
A menu feature to get latest from github and restart
Wifi Access Point editing
AIF preview for sampler patches and drum kits
A system for running effects on sounds and generating new sounds.
Some simple sound generation features like single cycle sounds, sweeps, noise, glitchy noises, etc.
Actual drum kit editor of some sort ( screen is kinda small so that's a limiting factor )
Some kind of midi recording / playback system with quantizing, so you can play something into it, quantize that, then play it back into the OP!. The scope on this could go on forever, adding chord / arp effects that could be ran on top, adding a step editor, etc.
Loading midi files, choosing a start / stop point and track and playing the data out to the OP1. ( I want this for remixing video game music )
A case that attaches to the OP1 ( plugging directly into the ports on the right ) as if it were an actual OP1 addon.
Coming soon
pyusb - ( pip install pyusb ) RPi.GPIO - ( pip install RPi.GPIO )