Skip to content

Midiguitar is a virtual guitar midi player and generator similar to virtual piano keyboards.

License

Notifications You must be signed in to change notification settings

Stazed/midiguitar

Repository files navigation

midiguitar README

Midiguitar is a midi player and generator similar to virtual piano keyboards, but for a guitar. The default build uses RtMidi classes which are included. There is also a legacy Alsa build. This can be enabled with ./configure --enable-alsa A Jack midi standalone build can be enabled with ./configure --enable-jack The RtMidi build can be disabled with ./configure --disable-rtmidi

Requires fltk, jack, alsa libraries.

How to install?

read INSTALL.

How to use midiguitar?

-As a player (pianola)

Midiguitar can display fret locations from midi notes when received from a player. It was designed to work with a sequencer such as seq32, seq42 (or seq24, sequencer64, etc). When midiguitar receives a midi note, it will display the note by turning the fret or open string location green, and also indicate the letter value or midi note value.

The basic problem with using midi with a guitar is that unlike piano keyboards, the guitar can play the same tone (midi note) from multiple locations. There is no one to one midi correlation as with a piano keyboard.

Midiguitar uses two methods:

  1. Calculate nearest fret (default). The program will loop through each possible midi note location and based on the previous note played, determine the nearest fret to play. This method works... sometimes. It does not work with chords (multiple notes played at the same time), and won't work with open strings (no fret location), and does not work if pitch bending (string bending). Also, a starting string location must be set or the program will assume the first midi note found. In addition, if the play requires a jump to a more distant fret, then the new string location must be indicated.

This method is for single note (lead) playing.

To allow for setting the starting string location or string jumps, a midi CC message can be sent prior to the given note.

Send CC message for note calculation (default CC 16) based on string starting location 1 to 6. The string number is indicated to the left of the guitar fret OPEN strings.

The default CC value can be changed from the command line -s option.

  1. Send to all frets. (Press the "Control On/Off" button). The program will display all possible fret and open string locations based on the midi note received.

MIDI IN: The Transpose selector can be used to adjust incoming midi up or down by single notes.

The Midi Channel will select the midi channel to listen. Default '0' will use all channels.

-As a MIDI note generator. Left mouse press (or drag) on fret or open string to send midi note message.

MIDI OUT: Select the midi channel for sending notes and program change messages.

Send Program change messages from the "Program" spinner.

Adjust the note velocity sent using the "Velocity" slider.

Use the "Reset" button to send note off's to all MIDI notes, and clear any stuck notes and CC messages.

Send Control Codes CC using the CC Value slider.

See command line -h for additional options.

Screenshots

screenshot

This program was written as a practice project for learning C++, fltk, alsa, jack, RtMidi and anything else I can throw in :).

Your mileage may vary!!!

Enjoy.

About

Midiguitar is a virtual guitar midi player and generator similar to virtual piano keyboards.

Resources

License

Stars

Watchers

Forks

Packages

No packages published