Skip to content

bjonnh/dinoctopus

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
src
 
 
 
 
web
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dinoctopus

Build documentation PlatformIO CI

Official documentation

This is a RP2040 based USB-Midi interface that also allows for Midi merging and other MIDI tools (coming, I'm porting them from an Arduino Mega).

It is currently still highly experimental (but works well for me) and comes with no support.

The noticeable things here is that:

  • MIDI interfaces are using the PIO state machines. We can have up to 8 MIDI I or O (or 4 duplex ports)
  • Up to 16 virtual USB interfaces (duplex) that allow connecting things together
  • (not included) 2 additional physical duplex ports with the RP2040 UARTs (trivial to add)

That's 22 MIDI interfaces (6 physical) on a $4 microcontroller.

I've not stressed tested it yet, but it handles normal playing with multiple controllers so far.

It works out of the box on Linux with no driver installation. I do not have a Windows or MacOS machine to test on them.

Building

I'm using Jetbrains Clion and PlatformIO to code and upload it to my board using a picoprobe programmer.

This should probably get you started:

pio project init
pio run -t upload

Most of the configuration you care about is in src/main.cpp

Thanks

DiyElectroMusic - About the idea of using PIOs for MIDI

Ha Thach - For TinyUSB (I had to extract some code from there to get virtual cable workings)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages