Git Product home page Git Product logo

autoroute's Introduction

autoroute

USB MIDI command-line automatic patchbay for Linux. Connects USB MIDI devices together as they get plugged in, according to configuration.

No GUI means it can run on simple devices such as a Raspberry Pi.

autoroute (list | connect [--config=configfile] | install)

Usage

Autoroute is simple to use:

  • autoroute list shows all available USB MIDI device ports
  • autoroute connect wires devices together according to the config file (./autoroute.conf is used by default)
  • autoroute install sets up autoroute as a systemd service & udev callback that triggers on boot and everytime a USB MIDI device is connected or disconnected.

Autoroute requires python 3.5. Built-in service installer requires systemd.

Installation

At a terminal, from the raspberrypi where autoroute is intended to run:

git clone https://github.com/fralalonde/autoroute
cd autoroute

# get device names
./autoroute list

# edit the configured routes, see configuration section in README
nano autoroute.conf
sudo cp autoroute.conf /usr/local/etc/autoroute.conf

# set up udev to rerun autoroute everytime USB MIDI config changes
sudo python3 autoroute install

# reload udev (or just reboot)
sudo udevadm control --reload-rules && udevadm trigger

Configuration

The included autoroute.conf is a sample, and needs to replaced with entries from your own setup.

Once installed, autouroute reads the config from /etc/autoroute.conf

Config file entries can be of two types:

  • ignore name of device
  • connect source device -> target device

Lines starting with # are comments. Device names have to match exactly the ones reported by the autoroute list command, excluding the [device,port]. If a configured device is not currently connected it is simply ignored.

# Ignored devices
ignore Timer
ignore Announce
ignore Midi Through Port-0

# Connections
connect USB Oxygen 49 MIDI 1 -> Arturia BeatStep MIDI 1
connect Arturia BeatStep MIDI 1 -> MicroBrute MIDI 1
connect Arturia BeatStep MIDI 1 -> GS-10 MIDI
connect Arturia BeatStep MIDI 1 -> GS-10 Control
connect Arturia BeatStep MIDI 1 -> R3 MIDI 1

Thanks

Adapted from https://neuma.studio/rpi-as-midi-host.html to handle multi-port devices and fixed config.

FAQ

Why choose that name?

  • Autoroute is french for Highway and translates to german as Autobahn, which is a great album.

autoroute's People

Contributors

fralalonde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

autoroute's Issues

Installation steps for Raspberry Pi

Hi, first of all, congrats, it´s great, working very well.

Just to add setup steps for begginers (like me):

cd ~
git clone https://github.com/fralalonde/autoroute
cd autoroute
cp autoroute.conf my.conf
aconnect -l (get device names)
sudo nano my.conf (edit your configurations using device names)
sudo python3 autoroute install
sudo cp my.conf /etc/autoroute.conf
sudo reboot

Configuration file is read from /usr/local/etc/ instead of /etc

According to the readme file, once autoroute is installed it should read its configuration from /etc/autoroute.conf.

Instead, it reads its configuration from /usr/local/etc/autoroute.conf.

I guess the readme file should be updated to reflect the new location of the configuration file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.