Skip to content

About

Maestro - Nomad is actually an orchestrator

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

43 Commits

Folders and files

Repository files navigation

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!

About

Maestro - Nomad is actually an orchestrator

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages