nomad-midi-driver-plugin

command module
v0.0.0-...-3d6ed25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2023 License: MPL-2.0 Imports: 11 Imported by: 0

README

Maestro

Nomad is actually an orchestrator.

Maestro is A MIDI task driver for HashiCorp Nomad that sends MIDI signals from .mid files to music software like Ableton Live.

Example demo video for our Nomad team Hack Week available here!

Requirements

  • Go v1.18 or later (to compile the plugin)
  • Nomad v0.9+ (to run the plugin)
  • MacOS (maybe it works on windows, idk)
  • portmidi C lib to play the MIDI (brew install portmidi)
  • Virtual MIDI ports
  • Some music software (e.g. Ableton Live)
  • gomidi/midi has some neat tools available too.

Building the Plugin

$ make build

Deploying Driver Plugins in Nomad

Start Nomad with the example agent config and set the plugin dir to where the binary is.

make build puts it in the current directory.

$ nomad agent -dev -config=./example/agent.hcl -plugin-dir=$(pwd)

Configuring your machine

In my setup, each musical "part" needs these things:

  • MIDI file
  • virtual MIDI port
  • track in your music software DAW that listens on that port (and be sure the track is armed)
  • task in a job with the "midi-portmidi" driver (see example/example.nomad.hcl) that connects all these things together.

I export my .mid files from Ableton, which only does single-channel files, hence all the separate ports. You can generate them differently and take advantage of channels on one port, if you can work that out.

Running tasks

Have a look in example/ for various examples or whatever.

source example/funcy.sh for some helpful functions to run or stop different parts.

I'm pretty tired at the end of Hack Week, so I'm just gonna leave this here.

Good luck!

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL