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.
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.
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).
How to edit MIDIs?
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:
- Avoid chords, unless you would want the program to try and handle those itself.
- Avoid making notes shorter than 40 milliseconds or longer than 4 seconds.
- Note duration limitations are dependent on FPS. This means that you will be able to perform more complex arrangements with higher FPS (=For example, by performing indoors)
- The playable notes ranges from C3 to C6, spanning three octaves. This might vary in different Midi editors.
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.
- Do not change the "Playback options" in the settings. The default options are: Hold notes ON, and Simulate chords ON.
- Start each trackname with the intended instrument. The trackname is the name visible below the keyboard in the player interface.
- An octave shift can be added next to the instrument in the trackname ("Flute+2" = Octave shift +2) to automatically set it upon track selection.
- Preferably, keep all of the notes within octave range so the song can be downloaded and played as easy as possible.
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.
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:
<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.
<b.load> Filenamewhere Filename is the name of the shared Midi file. This will load the song for every performer.
- Select each performer in your orchestra (click them in-game) and type
<b.track> "<t>" Trackwhere Track is the track number of the Midi you want them to play. This will assign each track to each performer.
- Then, type
<b.open>for everyone to open their instruments according to the Midi file.
- Finally, type
<b.play>to play the song in synchronization.
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/con||Starts orchestra mode. Type "off" as parameter to unset.|
|b.play/pl||Plays the loaded song.|
|b.pause/pa||Pauses the loaded song.|
|b.stop/st||Stops the loaded song.|
|b.load/ld||Loads a song by a given filename. Filename can be partial.|
|b.track/tr||Selects a track for the loaded song.|
|b.note/nt||Plays one performance note.|
|b.open/op||Opens the given instrument. (1-6 or instrument name*)|
|b.close/cl||Closes the current instrument.|
|b.command/cmd||Types the given text in to the chat.|
|b.delay/dl||Delays progress by the given milliseconds. (-500 to 500)|
|b.seek/sk||Advances progress by the given milliseconds. (-500 to 500)|
|b.loop/lp||Toggles or sets the loop button. (false/true or empty)|
|b.octaveshift/os||Sets the octave shift. (-4 to 4)|
|b.speedshift/ss||Sets the speed shift. (0.1 to 2.0)|
Writing frequently used commands into in-game macros is recommended.
<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.
- While performing in-game, and as long as you don't have forced mode on (corner checkbox), you can press Space to play/pause the current song and the arrow keys to seek through the file. The program will also allow you to type in the chatbox, but will not pause the song during typing.
- Make sure that all of the keys on the keyboard has letters labeling them. The in-game performance needs to be in "extended" mode, where the full octave range is displayed and bound.
- The program supports Midi inputs, such as a Midi keyboard plugged in to the computer. You can enable it in the settings.
Bard Music Player (c) paru 2018