Skip to content

connorslade/makey-midi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

makey-midi Build

Lets you use a Makey Makey to send midi commands! When run, this program will load the config file and either create a virtual midi output port or connect to another midi device. Pressing the keyboard keys defined in the config file will then send their respective note values.

You may want to consider remapping your Makey Makey so you can make use of the click button and so any arrow key inputs don't mess with any synth you have opened.

Usage

To install, you can download the latest binary from releases. Alternatively, you can build from source, either by cloning the repo or with cargo install makey-midi.

After installing, there are two main ways to run the application. To connect to an existing midi device or create a new virtual output port. When creating an output port, no further configuration is needed and the device name will be 'makey-midi' (makey-midi create). When connecting to an existing port, you can specify the name of the port or leave it blank to automatically pick one (makey-midi connect [name]).

The config parameter allows you to specify a path of the config file that contains the key map. Omitting this will default to config.toml in the current directory. The debug flag will log what keys are pressed to the console (Ex: Key pressed: UpArrow). Below is the output of running makey-midi --help.

Usage: makey-midi [OPTIONS] <COMMAND>

Commands:
  connect  Connects to a MIDI device to send events to
  create   Creates a new virtual MIDI output device. Only works on Linux.
  list     Lists all available MIDI devices. For use with the `connect` subcommand
  help     Print this message or the help of the given subcommand(s)

Options:
  -c, --config <CONFIG>  The location of the config file. Defaults to `config.toml` in the current directory
  -d, --debug            Logs each key event to stdout
  -h, --help             Print help

Here is an example command. This will load the default config file, enable debug output, and connect to the (pretty bad) built-in midi synth in windows.

makey-midi --debug connect "Microsoft GS Wavetable Synth"

Config

Below is an example config.toml file. If no config file is found when running, makey-midi will fall back to the default config shown below. The channel defined what channel the midi events are sent on. The keymap is the main part where you map keyboard keys to midi notes. A list of all possible key values is in the dropdown below, and a table of midi notes can be found here.

channel = 0
keymap = [
    { key = 'KeyW', note = 59 },       # B
    { key = 'UpArrow', note = 60 },    # C
    { key = 'DownArrow', note = 62 },  # D
    { key = 'LeftArrow', note = 64 },  # E
    { key = 'RightArrow', note = 65 }, # F
    { key = 'Space', note = 67 },      # G
    { key = 'KeyM', note = 69 },       # A
]
Key List (From rdev)
  • Alt
  • AltGr
  • Backspace
  • CapsLock
  • ControlLeft
  • ControlRight
  • Delete
  • DownArrow
  • End
  • Escape
  • F1
  • F10
  • F11
  • F12
  • F2
  • F3
  • F4
  • F5
  • F6
  • F7
  • F8
  • F9
  • Home
  • LeftArrow
  • MetaLeft
  • MetaRight
  • PageDown
  • PageUp
  • Return
  • RightArrow
  • ShiftLeft
  • ShiftRight
  • Space
  • Tab
  • UpArrow
  • PrintScreen
  • ScrollLock
  • Pause
  • NumLock
  • BackQuote
  • Num1
  • Num2
  • Num3
  • Num4
  • Num5
  • Num6
  • Num7
  • Num8
  • Num9
  • Num0
  • Minus
  • Equal
  • KeyQ
  • KeyW
  • KeyE
  • KeyR
  • KeyT
  • KeyY
  • KeyU
  • KeyI
  • KeyO
  • KeyP
  • LeftBracket
  • RightBracket
  • KeyA
  • KeyS
  • KeyD
  • KeyF
  • KeyG
  • KeyH
  • KeyJ
  • KeyK
  • KeyL
  • SemiColon
  • Quote
  • BackSlash
  • IntlBackslash
  • KeyZ
  • KeyX
  • KeyC
  • KeyV
  • KeyB
  • KeyN
  • KeyM
  • Comma
  • Dot
  • Slash
  • Insert
  • KpReturn
  • KpMinus
  • KpPlus
  • KpMultiply
  • KpDivide
  • Kp0
  • Kp1
  • Kp2
  • Kp3
  • Kp4
  • Kp5
  • Kp6
  • Kp7
  • Kp8
  • Kp9
  • KpDelete
  • Function

About

Use a Makey Makey to send MIDI commands.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages