BGPiano
BGP message <-> MIDI message, for times when you want to broadcast your music instead of your IP packets.
Usage
Point to Point
The GoBGP library we use does not support customizing peer TCP port. Thus, you are stuck with port 179 and would (in most cases) need root privilege to listen on that port.
Instrument (MIDI sender) side:
sudo bgpiano-send --bgp-port=179 --bgp-peer-ip=<peer-ip>
Synthesizer (MIDI receiver) side:
sudo bgpiano-recv --bgp-port=179 --bgp-peer-ip=<peer-ip>
Reflected
Reflector side: gobgp
or equivalent software required. Any RFC-compliant BGP daemon configured as an RR or RS can be
used.
sudo gobgpd --log-plain --config-file=contrib/rr-gobgp/gobgpd.toml
Instrument (MIDI sender) side:
bgpiano-send --bgp-peer-ip=<reflector-ip>
Synthesizer (MIDI receiver) side:
bgpiano-recv --bgp-peer-ip=<reflector-ip>
Building
Linux
Requirements:
$GOPATH
environment variable is set$GOBIN
is in$PATH
- GCC is installed (for CGO)
- Dependencies:
libasound2-dev
go install github.com/goreleaser/[email protected]
goreleaser build --snapshot --rm-dist
Notes:
- Check PIE:
checksec --dir=dist
Windows Support
GoBGP does not support Windows natively. To build this project under Windows with a little hack, use the following method:
- Clone
https://github.com/osrg/gobgp.git
somewhere outside this directory - Apply
contrib\windows\gobgp-windows.patch
to the GoBGP source directory - Append
replace github.com/osrg/gobgp/v3 => ../relative/path/to/gobgp
togo.mod
in BGPiano project directory - Build the application you need with
go build ./cmd/<executable_name>