Manual for Bard Music Player
Yours truly~

Important

The Performance action in FFXIV is very, very limited. The in-game keyboard only has three full octaves to play, whereas more advanced songs use three or more.
Don't be surprised if the MIDI doesn't play correctly.

Set up

Download the latest release, unzip to a folder and create a separate folder next to the executable called "songs", this is where you place all of your MIDI files. You need to set up FFXIV correctly for BMP to function as intended:

Playing a MIDI file

Midi files are tiny files to describe sequences of notes and the information surrounding them, commonly used for instrumental compositions (for example on the piano). Bard Music Player makes use of Midi files and Midi input for playing back notes in-game. Because of the simplicity of the in-game Performance, the Midis should also be simple for optimal playback.

This means that Midi files downloaded from the internet will most likely sound wrong. (=Touhou Midis will sound broken)
If you're interested in already-made songs, check out the Midi repository

Midi files makes use of tracks. Tracks can be thought like different parts of the song - for example, the left or the right hand on a two-track song. Tracks can also contain "hidden" playback settings, even when no notes are seen on the track - be careful! The track can be selected in the track selector to the right of the file selector in the player.

Because of the limited Performance, a few helpful options are available in Bard Music Player. The shift settings are available to shift either the playback octave or speed around. This is to easily adjust incorrect songs in to a playable state. The keyboard preview shows a preview of what notes will be played back of the selected Midi track. The corners turn red if notes are out of range. Short messages are also displayed on the keyboard when the playback may be limited.

Playing:

To select and play a song, you need to change your in-game class to bard. Then, load the song that you've placed inside the "songs" folder by loading a song in the song browser (1), loading the desired track (2), making sure the notes are playable (3) and finally playing the song (4).

1, 2, 3, 4

How to edit MIDIs?

Recommended editor, used for the examples: MidiEditor
Other editors: onlinesequencer, Sibelius, Musescore.
Music editors generally allow Midi export as well.

As mentioned before, it is rare for Midi files to work straight off the internet due to the fact that most of them are too complex to be played on the in-game Performance keyboard. You will then be required to edit the Midi file to fit for playback. Google has plenty of tutorials for editing Midis of any kind. If you need assistance, feel free to ask the people in the support discord.

How to edit:

Generally, you would want to keep Midi songs simple, separated and straightforward. This means that it should have as few meaningful tracks as possible, with as few notes played sequentially while still performing recognizable music. In the case with a downloaded song, open it up and clean up all of the double/chord notes, simplify the progression, and reduce the amount of tracks to the bare minimum. If the Midi only has one track with many notes, split all of them over new tracks separated by instrument.
General advice for limitations in the game engine:

Bad vs Good midi example
Please keep the Midis clean and straightforward for others enjoyment!

Release guidelines:
Good tracknames

If you desire to upload the Midi files for others to play, there's a few guidelines to follow to make the best quality Midi file.

Orchestra Mode

A trio ready to play: three performers on the left, and the conductor on the right.

Orchestra mode is a feature to allow for multi-track performances using multiple bards to perform the same song. To make this work, there needs to be a dedicated "conductor", whose task is to set up and synchronize the performers. The conductor cannot participate in performance, because they need to have the same viewpoint as the audience to do the right adjustments. Though, since the conductor only relies on giving chat commands, it isn't required that they run Bard Music Player.

Setup:

Trial accounts can also be used as performers, by leveling them up to 30 and unlocking performance.

At least three people are required to perform orchestras: two performers, and one conductor. Each performer needs to have Bard Music Player running and configured correctly, and have the "Listen Channel" setting set to the same channel, where the conductor will be issuing commands. Each performer should also have a copy of the song to be performed together.

Then, the conductor should issue key commands in order to set up the orchestra:

  1. Type <b.conduct> in the chat listen channel. This will ask the performers if they want to listen to your commands. Wait for them to accept it through Bard Music Player.
  2. Type <b.load> Filename where Filename is the name of the shared Midi file. This will load the song for every performer.
  3. Select each performer in your orchestra (click them in-game) and type <b.track> "<t>" Track where Track is the track number of the Midi you want them to play. This will assign each track to each performer.
  4. Then, type <b.open> for everyone to open their instruments according to the Midi file.
  5. Finally, type <b.play> to play the song in synchronization.
Commands:

All commands are written in brackets. (<b.play>)
Commands can be written in the long or short way. (<b.play> or <b.pl>)
An optional target can be specified in quotation marks. (<b.play> "Nare Katol")
Parameters are specified after the brackets, or name. (<b.load> "Nare Katol" File.mid)

b.conduct/conStarts orchestra mode. Type "off" as parameter to unset.
b.play/plPlays the loaded song.
b.pause/paPauses the loaded song.
b.stop/stStops the loaded song.
b.load/ldLoads a song by a given filename. Filename can be partial.
b.track/trSelects a track for the loaded song.
b.note/ntPlays one performance note.
b.open/opOpens the given instrument. (1-6 or instrument name*)
b.close/clCloses the current instrument.
b.command/cmdTypes the given text in to the chat.
b.delay/dlDelays progress by the given milliseconds. (-500 to 500)
b.seek/skAdvances progress by the given milliseconds. (-500 to 500)
b.loop/lpToggles or sets the loop button. (false/true or empty)
b.octaveshift/osSets the octave shift. (-4 to 4)
b.speedshift/ssSets the speed shift. (0.1 to 2.0)

Writing frequently used commands into in-game macros is recommended.

Good instruments

The <b.open> command only works if the instrument icons (from the Performance actions menu) are placed on to hotbars. Make sure they are only bound by keyboard keys, and not mouse keys. The list of instruments are the same as the in-game instrument names with no spaces.

The conductor can test the synchronisation status after <b.open> by typing <b.note> C. This makes every performer play the C note.

During song play, if one of the performers suffer a slowdown (due to network/fps lag), the conductor can remedy this by issuing a <b.delay> or a <b.seek> command. Common parameters are between 50 to 150 ms adjustment.

Notes


Bard Music Player (c) paru 2018