Bard Music Player, in its core, is a simple Midi player for FFXIV's bard Performance mode. It plays back individual tracks of the Midi files, with various options to faciliate playback. Due to the fact that the Bard's Performance is limited (only three octaves, rate limited notes, etc), all Midis won't play back flawlessly - in fact, you are encouraged to edit them for optimizing playback. To edit Midi files, I would recommend MidiEditor, MidiPiano or onlinesequencer.
※A lot has changed from the previous program, bard macro player, so expect some songs to break. In most cases, simple songs will play fine, but if it relied on specific quirks it will most likely sound wrong.
Requirements are as follows:
- DirectX 11 (64-bit) version (Launcher settings)
- Bard Performance unlocked (archer level 30)
- Extended Performance keyboard layout (Performance settings → "Assign all notes to keyboard.")
The program looks for midi files under a folder called "songs" next to the executable. Create it if it doesn't exist. All Midi files are listed in alphabetical order.
All Midi files are separated in to tracks. For example, one track for the left hand and one for the right hand. This is the basis of how playback works - select and load a Midi file, then select the track number, and play. As mentioned, because of the limitations of the Performance mode, playing all of the notes in the whole Midi file would sound terrible. Hence playing individual tracks.
Track 0 is often used for so-called "meta events", events that passes non-note events such as lyrics, track name, tempo, etc. In some songs, track 0 is void of any notes - this does not mean you should remove it. Removing it would likely mess with how the song is played back.
Optimal track layout is dependent on the amount of notes played, their frequency, and intended instrument. Generally, having one track devoted to one instrument is enough, but as the song complexity increases so may the track layout.
Sometimes, the range of notes a Midi file uses might be bigger than the Performance's range (C3 to C6). To temporarily fix this problem, there is "octave shift". Octave shift is the black ø number in the upper right corner of the player and is used to shift all of the notes either down or up on the keyboard. However, it is recommended that you shift the octaves of notes in a midi editor, as the program doesn't remember the setting for each file.
Similarly, if tempo needs to be temporarily changed, there is "speed shift". Speed shift is the gray % number next to octave shift. Because tempo settings applies across all tracks, speed shift could be useful to temporarily play a track fast or slow.
Be aware of the limitations of Performance. Note playback is limited by FPS, and playing many notes at once can make the game skip some. Notes can be held for about 4 seconds before going silent. Chords aren't possible (read below). Bard Music Player does its best to accomodate the game, but the most effective solution would be to evenly distribute, simplify and optimize the Midi for playback in-game. Basically, Touhou Midi files downloaded from the Internet would most likely sound badly in-game. Fix it using a Midi editor.
Performance does not support playing chords. To work around this, Bard Music Player offers an option to simulate chords by arpeggiating them. However, this isn't fool-proof, and manual editing of the Midi is recommended. Still, to enable this feature, go in to the Settings tab and uncheck "Fast mode". This enables chord detection and simulation.
The interface should be self-explanatory enough. Load the Midi file and track you want to play and set the right settings. Then bring up your Performance instrument of choice in-game. Then click Play. If everything was loaded correctly, it should look similar to the screenshot - all of the keys should have letters bound to them, the notes should have colors, and it should say that your character has logged in. The Midi file would then play.
If the game was recently patched, part of the program might be broken. If the program is unable to detect if Performance is up, tick the checkbox in the corner to force it open as a temporary measure. A message will be shown at startup if there's an update available.
There are keybinds available in-game to control the player (if it isn't forced open). Space plays/pauses the loaded song, left and right arrow keys jump 5 seconds forward or backwards, and with shift it jumps 10 seconds forward and backwards.
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. It is necessary that the conductor does not participate themselves, because they need to have the same viewpoint as the audience to do the right adjustments.
The conductor needs to write specific commands in to the chat to control the performers. First, each performer should agree on one chat channel (FC, Party, Linkshell, etc.) in the Settings, and then the nominated conductor should type (<b.conduct>). This makes the performers controllable by the conductor. Then, the conductor should type (<b.load> MidiFile) to load a specific Midi file, set the individual tracks with (<b.track> "Character Name" trackNumber), and if no other setup is needed, (<b.play>) will start the song.
Please note that if your performers are on different computers, you'd need to share the Midi file before loading. If you're multiboxing (running multiple clients on one computer) and running Bard Music Player from the same directory, it should load without problems.
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)|
Instrument has to be placed on a keybound hotbar slot.
|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.
Main support is provided in the discord server.
If you have any unexpected technical issues with the program - talk to me first, and if a bug is confirmed, report it in the bug channel.
If you need advice regarding arranging midi files, try to talk to the helpful community in the general channel!
Bard Music Player (c) paru 2018