Midi Voyager - Help

(online version of this document)

Tips


Supported midi files

Midi file settings

Sharing of Midi file settings

Sound synthesis: Soundfonts

Playback: Audio buffer

Playback modes

Volume Control

Tempo & pitch

Color scheme

Playback controls

Instruments Mixer (tracks/channel)

Playlists

Play Cursor Raster/Quantisation

Karaoke: Charsets, fonts

Chords in karaoke mode 'Lyrics in measures'

Looping

Markers

Chord analysis

Time -& Key signatures

Creating and editing perspectives

Default directories (exported audio, midi files)

Export MIDI file with modifications

Black MIDI / Impossible Music

USB Midi In/Out

MIDI file resources and legal notice

Privacy Notice


Supported Midi File Typestop

Midi files of type 0 (single track), type 1 (multi track) and type 2 are supported, and several Roland GS and Yamaha XG NRPN events. If a midi file was created to be played using the XG standard, it should contain a SYSEX message "XG System on", then the app will handle certain XG specifics (e.g fallback on bank 128 for drumkits if no one is available on bank 127)

You can play midi files from the device's storage (internal storage or sd card) or from a Cloud Storage. Either you copy whole folders of midi files from you computer onto the device, preferably into a folder in the root directory (e.g. "Midis", or "Music") or you download single midi file from web sites.
If you copy files from your computer to the mobile device, you might need to unplug the usb cable first before those files are visible and selectable in the app's midi file browser! Sometimes even after unplugging the usb cable it may take a while until the Android OS has recognized the new files.


Midi file settingstop

All changes that can be done to various parameters of a loaded midi file (pitch, tempo, instruments, volumes,...) will be saved automatically for a loaded midi file and will always be applied when this MIDI file is loaded again!
Note that the MIDI file itself will never be modified, instead a separate (tiny) file is generated for each midi file (having the same name as the midi file but with file extension ".mfs"). This file will stored in the "Midi_Voyager" folder (in the device's root directory).

Note: The .mfs file are meant to be opened by Midi Voyager only, you should not try to open or modify them manually!


Backup/transfer midi file settings:top

You could easily transfer the midi file settings (.mfs) you made to *all* midi files to another Midi Voyager installation on another device (which contains the same midi files) by copying the .mfs files into the "Midi_Voyager" folder on the other device.

"Auto import of .mfs files":

This option (can be activated in settings screen → Misc) allows a more convenient way of transferring midi file settings (tempo, volumes,...) between devices: If this option is activated, the app will look for an applicable '.mfs' file in the 'Downloads' folder and move it into the "Midi_Voyager" folder (in the device's root directory), where normally all .mfs files are created by the app.

So the procedure of sharing a .mfs file within the app could proceed as follows:


Sound synthesis: Soundfontstop

This app uses 'soundfonts' (sf2 or sfz format) which provide the sounds for MIDI playback. Recommended are sf2 soundfonts with a GM (General MIDI) Sound Set. The included sf2 soundfont "8Rock11e" has a size of only 3 MB (compressed), therefore its quality is not too good. Anyway you will probably want to load your own soundfonts. See below for some example soundfont sites. One popular free soundfont is "Chorium (Revision A)" (27 MB) by openwrld.
The default soundfont (3 MB) will always exist in the folder 'Soundfonts' in the internal storage as 'fallback' soundfont.

You can add other soundfonts to this folder or load one from any other folder (If your device supports external sd cards, you should put new soundfonts there).
The 'SF2...' button in the settings screen allows you to browse and select a soundfont.

Sfz soundfonts

Sfz soundfonts are supported. The sounds in a sfz soundfont are not structured in banks/presets from 0-127. Typically a sfz soundfont contains sample for one instrument only, ie. only one preset. You will have to set up the 'sfz sound to midi program' assignments manually: press the "presets" button of the soundfont and choose for which GM program the preset in the sfz should be used for. If you don't set it up then all sounds of the sfz will be mapped bank 0 preset 0. In case you play piano midis using GM midi program 0 (Grand piano), then it might be fine without any manual mapping/ setup.
Another difference to sf2 is that the samples of a sfz soundfont are not contained in the sfz file: They are stored separately, somewhere in the file system, they should be located next to the sfz file. The sfz file is basically just a text file (containing the paths to the samples and other instructions).

+ Sf2: Option to load a soundfont*** _completely_ into memory (RAM) (= all samples of all presets!): *** Sfz soundfonts are always loaded completely (see release notes of previous version) ___________________________________________________________

You can try use very large soundfonts (> 1GB):
Per default only those samples needed by the current midi file will be loaded into memory, except for Sfz soundfonts, as they contain only one preset.
However you can change this behaviour:
In the soundfont screen press the "Pencil" button of a loaded soundfont and choose "Load completely" from drop down menu.

Advantage: no extra loading time when loading a new midi file ('preloading samples...')
Disadvantage: higher memory usage (even those presets that are not needed by any midi file will consume memory), longer app launch times

Per default only the samples needed for the current midi file are loaded (and un-loaded when a new file is opened). If the soundfont is not too large (eg. < 50 MB) there is no problem (fast pre-loading), but in case the soundfont is larger and several midi files will be using the same presets this procedure is ineffective/unnecessary.

Notice that your device will need approx. the amount of free memory of the size of soundfont. Midi Voyager will check this and warn you.
There are many free soundfonts available on the internet - just search for 'soundfont collection'!
    Example sites: musescore.org , hammersound.net
If you want to create your own soundfonts or edit existing ones, you could use a 3rd party software like "Viena Soundfont Editor" (Windows).

This app can also load soundfonts compressed with 'WavPack' , 'flac' and 'Opus' !
If you add your own soundfont, ensure that its file extension is either 'sf2' or 'sf2pack' or 'sfz', otherwise it won't be recognized by the soundfont file picker!

Default drum kit

If a soundfont contains multiple drumkit presets (on bank 128) then you can choose the drumkit preset to be used for every MIDI file:
Press the "pencil" button and select "Select the default drumkit". This way you don't have to select the desired preset in the instruments mixer screen (via the [P] button), which would need to be done for every MIDI file. However you can still override the "default drumkit" setting for an individual MIDI file by selecting another than the default drumkit in the instruments mixer screen!

Loading multiple soundfonts at once

The PRO version of Midi Voyager allows an advanced soundfont configuration:

Soundfont priority:If a preset (number) exists in multiple soundfonts, the sound of the preset of the earlier soundfont in the list will be used. For example, if you load two soundfonts which both contain sounds for all 128 preset slots, and you do not specify any bank/preset filters, then only the sounds of the first soundfont in the list would be used. Or, if the first soundfont contains only one sound for "grand piano" (slot #0), then always the sound of this soundfont will be used when a program change for program 0 occurs.

Typical scenarios:

Note: In the instruments mixer screen, when you click on the "P" button (presets), you will see the list with the presets that will actually be used (the "combined/merged" presets list, as configured by you, reflecting the order of the soundfonts, deactivated presets, and reassigned preset/program numbers)


Playback: Audio buffertop

Normally you should'nt have to care about the audio buffer settings that can be changed in "playback" settings screen.
However there are two reasons why you might want to change it:

  1. Stuttering playback / dropouts:if you notice this then you could try to eliminate it by increasing the buffer size and /or increasing the buffer update period. Unless you don't want to play live via MIDI IN at the same time there will not be any noticeable effect if you increase the buffer size to eg. 70ms.
  2. MIDI IN: play live: In this case you will want to set the buffer size to the lowest possible value (<=20 ms), at least if you don't want to play the midi file at the same time (however even this might work just fine, depending on soundfont, midi file and device).
General system improvements in Android 6.0 allow to work with buffer sizes smaller than 20ms, but of course this also depends on the specific device. For example Google's Nexus 9 device seems to get down to 14 ms (http://superpowered.com/latency)


Playback modestop

There are 4 playback modes available. Three of them can be adjusted in the settings screen, category "playback":

Playing midi files in the background - Exit app but keep playing

If you want the app playing midi files for a longer time, but without viewing the notes, eg. having another app in foreground, it is highly recommended that you first exit the app (using the back button) and then choose 'Exit - Keep playing'.
If you would just press the 'home screen' button to hide the app (without exiting it) then it is most likely that it will be killed sooner or later by the Android Operating System to get more memory for other apps (which are in foreground)!
When you choose 'Exit - Keep playing' then the Midi Voyager icon appears in the notification bar.
From Android 4.0 and higher you can use some playback controls (pause, next, exit) additionally to the notification icon. These can be accessed by pulling down the notification bar to the screen bottom.

Recursive folder playback

This playback mode is invoked by pressing long on a folder in the midi files browser screen (instead of selecting a single midi file via short finger tap)
It will first play all files in the selected folder (if there are any) and then all files in all sub folders. So it would be possible to simply play all midi files that exist on the sd card*** by selecting the root folder of the storage medium/the sd card. However it may take quite long*** to find the midi files, because every folder and sub folder would get searched through! So you should better select a folder from which you know it contains only MIDI files or sub folders with MIDI files only.

Enqueue files

If you press long on a file in the midi file browser, a menu will open showing the option "Enqueue file". If you choose this, the selected file will not be played back immediately, but rather added to the end of a list of already enqueued files (one could call it a "temporary playlist"). When the current playing file is finished (or you press the "forward" button) the first file in the list will be played back and removed from the list.
If no file is playing at the time you enqueue a new file, and you press the play button, then the current loaded file will start playing, and not the first file you enqueued. Therefore, if you want to start with the first enqueued file, select it by pressing long on the "forward" button (see next tip:)
By pressing long on the "forward" button a list of the remaining enqueued files will show up. If you then select a file e.g. at the third position in the list, all files *before* the selected file will be removed!


Volume controltop

The final volume of each note in a midi file is controlled by multiple parameters:

CHANNEL volumes

Dynamic volume control vs. static volume control:

You can choose for each file whether to use "static" volumes or "dynamic" volumes for volume control (in the instruments mixer screen).
The control mode "dynamic" will maintain the relative changes in volume levels (as instructed by the midi file, e.g. for "fade in/out" purposes), ie. each volume-change will be realized with 1-100% of its original value.
In the "static" mode however, all MIDI volume controller changes will be overridden with the volume level set by the volume slider in the instruments mixer screen (absolute values: 0-127).
"Static" volume mode will generally result in louder volumes or will at least make louder volumes possible.
The "dynamic" mode can't make volumes louder than the original volume level (first one in the file), as you can set it to 100% only, ie. a volume change with value "20" will never 'sound' louder than "20" (=100%). You would need to reduce the volumes of the other instruments to make it relatively louder.

You can use the "static" volume mode to make "muted" tracks audible: Karaoke files sometimes contain a muted track (the voice melody track, often on channel 4, with "Volume 0" commands), which is not audible in most midi players. To make it audible, manually adjust the volume slider (in 'CHANNEL Vol.' mode!) of the affected track.

As in most MIDI files the volume change events occur only at the start of the file, there will be not much difference between the dynamic and static volume mode.

TRACK volumes

In Midi Voyager there is an additional volume control "layer" that applies for tracks instead of channels. It is available for multi track files ("Type 1") only! It has nothing to with MIDI, ie. it is not controlled by MIDI volume commands, but by the mixer of the internal synthesizer: This has one advantage over channel volume control: It allows to control the volumes of instruments/tracks independently although they "share" the same midi channel, which is not possible with channel volume control, and not with most midi players. This also means that you can for example "mute" one track while leaving another track (which uses the same midi channel) un-muted.
Note that the final volume level outcome is from the channel volume level combined with the track volume level.

DEFAULT volumes modes

In "TRACKS Vol." mode as well as in "dynamic" "Channel Vol." mode the volume sliders will initially be set to maximum (100%), which simply means all file volumes will not be changed at all.

To indicate that the volume of a track/channel has been changed manually (especially in *static* channel vol. mode ) the volume sliders will show a gray margin if they have *not* been modified. If you reset all volumes via the 3 dots menu then the sliders will show gray margins again.


Tempo & pitchtop

The pitch and the tempo (percental speed or static bpm) of the whole midi file can be changed. This only affects playback. The midi file itself will not be modified. Per default, all changes to pitch and tempo will be saved automatically for each midi file. You can deactivate this behaviour in the settings - "Misc" section under "Auto save manual changes to pitch..."


Color scheme (note pitch)top

C G
D A
E B
F# C#
G# D#
A# F

These colors are not chosen arbitrary or at random: The color spectrum follows the circle of fifths: C - G - D - A - E... This helps to identify notes, chords and tonal areas at a glance!


Play controlstop

Play button

Rewind button

Forward button

Loop button

Open file button

Tempo/BPM + Transpose/Pitch button

Per default, all changes to pitch and tempo will be saved automatically for a loaded midi file (not in the MIDI file itself) and will always be applied when this MIDI file is loaded again! You can deactivate this behaviour in the settings - "Misc" section under "Auto save manual changes to pitch..."

Instruments Mixer (tracks/channels)top

The instruments mixer screen can be launched from the main screen, either the directly via the button next to the play control buttons (on devices with large screens) or from the 3-dots menu.
You can control the volumes, pan, program for each track/channel as well as solo and mute tracks/channels.
Depending on the type of MIDI file, all rows in the mixer either represent channels OR tracks. In case of Multi-track files (Type 1) that contain only one track with mixed channels the mixer offers channel control, otherwise for multi-track files it shows the actual tracks. Also, for multi-track files with more than one track, you will see an additional "Chan Vol / Tracks Vol." button at the bottom of the screen.

Channel vs Track:


Playliststop

Playlist are accessible via the "Playlists" button in the "open file" screen (on devices with large screen also via the "3 dots" menu), which opens the "Playlists" screen.

Note: Maybe you prefer to enqueue files rather than creating playlists: In that case see "Enqueue files" above

Playlists can be created in two ways:

Edit a playlist

First select a playlist and press the pencil button on the bottom of the screen (alternatively press long on a playlist). Then you have the following options:


The playlists are stored in the app subfolder "Playlists" and can be copied between devices (Of course the referenced files must exist at exact the same location on both devices/file systems)

Add the current loaded file to a playlist

To add the current MIDI file to a playlist, use the "3 dots" menu and choose the "+/- title" entry. If the title is already contained in the selected playlist, it will be removed.

Note:


Play Cursor Raster/Quantisationtop

In order to get accurate loop /marker starts and endings, ie. starting exactly at the beginning of a midi note event, a play pos raster can be activated. The default raster value is 1/8. So if you set the play cursor manually by a short finger tap on the screen, the possible cursor positions are all multiples of 1/8.
The raster/quantisation value can be selected from a menu that opens when you press long on the screen (but not inside a looping area)

Play Cursor Delay

A value in milliseconds you can specify to compensate the mismatch of the displayed play cursor position and music notes being heard. For most devices a value between 30 ms and 60 will be fine. However, some devices require a negative value, some a positive - just try it out which one works best for you.
TIP: Start with bigger numbers e.g. -150 or + 150 ms to see whether your "optimal" value is poitive or negative, then you can "fine tune"


Karaoke: Charsets, fontstop

The effective symbols/characters that will be drawn to the karaoke screen depend on two settings:

Note: Even though the font you have loaded might contain the symbols you would expect to see, it depends on the selected charset/encoding which symbols are actually used. If you don't know the actual encoding of the text in the midi file (perhaps a rare one), then - especially for certain languages (Khmer,...) - it is pure coincidence whether the intended symbols are chosen from the font.

Note: If you select a custom font, it will be used for the 'classic' karaoke mode only, but not for the 'lyrics in measures' mode

Tip: A very popular and nice looking font for lyrics is the "Comic Sans" font. On Windows, open the C:\Windows\Fonts folder and copy a font to your mobile device. Or download some fonts from the internet.

Chords in karaoke mode 'Lyrics in measures'top

If you choose the karaoke mode 'Lyrics in measures', the chords of the midi file will be analyzed and displayed below the lyrics. The result of the analysis is most likely not optimal, e.g:

But fortunately you have the possibility to edit the chord analysis result:
You can clear out unwanted chords, add new ones or change the names.
Those modifications will be saved for the midi file!

You can edit the chords in the "Edit song chords" screen:
Press the chord ("C7") button in the toolbar in the main screen (visible when in karaoke mode "lyrics in measures") and choose "edit chords" from the menu.
Note:The first time you choose to edit the chords, a snapshot of the chord analysis result will be taken which then can be edited. So the next time you load this file, your custom chords will be used instead of the analyzed chords, even though some notes in the file might have changed (Actually the chords will be analyzed each time the file is loaded, but the result will not be used unless you choose to "Restore original chords" (see next paragraph))
Note:You can undo all your modifications to the chords by choosing "Restore original chords" from the "3 dots" menu in the "Edit song chords" screen.
Note: If you set the same name for consecutive slots chord-slots (ie. there is no other chord in between), only the first chord will be visible when in the lyrics screen. So you should not do this because it has no effect. Tip: to quickly remove unwanted chords, first activate the multi-selection mode, then select the chords and press the "bin" button (If you just want to clear one chord, you don't need the multi-selection mode.)


Loopingtop

Note: This app supports looping the whole file as well as creating various loops for smaller ranges in the file, eg. with a length of 1/2 bar. This section is about those 'smaller' loops. If you simply want to repeat/loop the whole file, don't try to create a loop for it! Instead, activate the "Replay/loop current file" mode, e.g. by pressing long on the loop button, or by ticking the check box in the looping panel (see chapter above Play controls: "Loop button")


Markerstop

For each midi file you can create markers (displayed as red flags) to set the play cursor to a specific position by pressing on a marker button. There are also special functional markers, such as "jump" markers and "program change" markers.


Chord analysistop

(PRO app version only)

•Single chord/Instant analysis

If you position the playback cursor then those notes will be analysed that are 'touched'/highlighted by it (if piano is shown: the notes that are shown on it). The result is shown on the left bottom of the notes canvas/score.
You have to activate this option in the settings screen, category "Chord Analysis".

•Score wide analysis

You can analyse all chords/local tonal areas in the whole file:
Menu "Extras" → "Analyse chords"

Analysis is performed in two steps:

•Step 1: Chord extraction: While it is quite easy to create chords from notes that are vertically stacked, ie. notes are starting at approx. the same tick position, it is not that trivial when searching for chords played arpeggio (maybe "tonal area" or "harmonic range" is a better term), if the notes of a C7 "chord" are spread over a range of one, two or 4 quarters: When does the one chord end, when starts the next one ? E.g. take the notes from which you can create the chord A6: they could also be used to create two chords: C and Am...

For better analysis results of arpeggio chords it is important that the time signature is correct!
There are two methods that can be used for chord extraction (selectable in the settings screen).
   Method 1 generally delivers better results for simple structured, beat orientated music (pop/rock), with vertically stacked notes. This method will always be used when in Karaoke/lyrics mode 'Arranged in measures'
   Method 2 may be better if the notes of a chord are spread over a whole bar (arpeggio chords); might be better for classical works

Which tracks will be used resp. ignored for analysis?

•Step 2: Chord analysis of the chords/tonal areas:

For each chord that is analysed the current key signature is taken into account, as the enharmonic spelling (Eg. Gb vs F#) depends on it.
Furthermore the setting in the piano settings screen 'Note naming culture' will be used!

•Chord types library

By default, this app includes over 40 Chord types. However you can add your own chord types or change the existing types, ie. rename a type or redefine its construction:

•Add new chord type

Open the settings screen, → "Chord Analysis" → "Manage chord types" → Press the '+' button at the screen bottom → Enter a name.
In the new screen, specify the intervals. When finished, press the "Apply" button.

•Delete existing chord type

Open the settings screen, → "Chord Analysis" → "Manage chord types" → Press the 'thrash can' button at the screen bottom

Edit a chord type

Open the settings screen, → "Chord Analysis" → "Manage chord types" → Choose the chord type → Press the 'pencil' button at the screen bottom.

Here you can change the name or its construction in intervals:

Intervals are not specified in semitones here, rather they refer to the step/number in a diatonic scale, resp. to the number often used in chords symbols eg. C7. You may refer to this article: wikipedia: Interval_music
I.e.: The "7" does not mean 7 semitones, but rather the "minor seventh", which represents 10 semitones, eg. the "7" in "C m7" are the pitches (in semitones): 0,3,7,10.
Furthermore you can lower an interval by a flat (b) or increase it by a sharp (#). You can set this via the pencil button right of each interval number.
When finished, press the "Apply" button.

Optional interval: To identify the type of a given chord not all its notes are always necessary: Often the "5" ("perfect fifth") is left out in a chord. Optional intervals are indicated by brackets, eg. [5]. You can set this via the pencil button on the right of each interval number.

Multiple definitions of the same type: Because there is the option to specify which intervals can be optional there is sometimes the need for specifying the same chord type more than once: In some chord types either the one or the other interval may be optional, but not both at the same time, because then it would be too few notes left.


Time -& Key signaturestop

These signatures will be displayed if activated in settings screen under "Visualisation"

Many MIDI files don't provide a time signature. In this case it is assumed to be "4/4", but the background color will be red instead of turquoise to indicate that it does not actually exist in the MIDI file.

Many MIDI files either don't provide a key signature (then none will be displayed) or the wrong key signature, most likely "C Major", because the author/creator of the MIDI file used a program that inserted 'C Major' by default and the author forgot to change it or the author didn't care about the correct key...

You can correct the key signature via the "Extras" menu. This is especially relevant for chord analysis, as the root note names of the chords may depend on the key signature. Eg. If the actual key signature is F# Minor but the one contained in the MIDI file is "C Major" then a chord might be shown as Gb Minor, although (harmonically) "F# Minor" would be the correct one!




Creating and editing perspectivestop

(PRO app version only)

The PRO app version allows to create new perspectives as well as edit the existing predefined note perspectives.

Open the perspective edit mode

Open the main menu (3 dots menu) → "Extras" → "Create notes perspective".
Note: this edit mode is only available in when the device is in portrait mode!

Modify an existing perspective

Choose the perspective you want to modify. You can use the "eye" button to switch between the different perspectives. The name of the current perspective and its X Y Z values are always displayed on the bottom of the note canvas. Use the X Y Z sliders to modify the view for your needs.
For some rotation values there may be drawing artefacts (strange beams), especially for negative Y rotation values.

Create a new perspective

Tap on the "pencil" button on the right → "create copy". This adds a copy of the current perspective.

Delete a perspective

Tap on the "pencil" button on the right → "delete".
Note: you cannot delete the first perspective, but you can modify it.


Default directories (exported audio, midi files)top

Various default folder locations can be set in the settings screen, section "Misc". For audio and midi export, these are initially set not to a static directory, but to use the same directory as the directory of the source midi file.
Tip: when you press long on the yellow "Last" folder in the midi file open screen, the "Default Midi" directory will be opened instead of the directory of the current midi file.


Export MIDI file with modificationstop

(PRO app version only)

You can save a loaded MIDI file as a new MIDI file that will contain the modifications made to pitch, tempo, channel volumes, instruments, key signatures. Also (for multi track midi files only!) you can change the channel of a track.

Furthermore:


Black Midi / Impossible Musictop

Normally a midi file is loaded into memory completely (1), then all note visuals are created (2), then it is ready for playback (3). However for large midi files (having from 100.000 up to several millions of notes) this would result in a waiting time of one minute and more until playback can start, mainly because of step (2). So this app provides a special visualisation algorithm which enables an early playback, only a few seconds after step (1) is finished. This visualisation mode will be applied if the midi file exceeds a certain size, e.g. 1 MB. This "critical" size can be configured via the settings screen → visualisation → "Streaming mode" button.

Note:

Tips


MIDI Input/Output via USB MIDI top

(requires Android 3.1 or higher!)

Communication with external hardware is sometimes a bit awkward, so it could happen (in rare cases) that the app 'freezes' and you would need to reboot your device.
So be prepared and warned that if you use this feature, you should at least ensure that you have saved any work you might have opened in another app.

MIDI INPUT

You can connect an MIDI controller/keyboard via USB for two purposes:

For both purposes, apart from note on/off events the following events will be recognized and applied to either the LIVE "stream" or the midi FILE "stream" (depending on the "CC target" mode in the mixer screen):

CC target (setting in the mixer screen)

Notes triggered from a mid keyboard will be played regardless of the "CC target" mode selected in the mixer screen. This mode only determines what should happen with incoming Control change (CC) and pitch bend events: should they be applied to the midi file channel or to the separate (virtual) "live" channel? Maybe you want to "pitch bend" or "sustain" the notes played be the midi file rather than notes triggered by yourself.

MIDI OUTPUT

(PRO app version only***)

You can activate MIDI OUT in this app, so that all midi channel events of a playing midi file will be sent via the usb port of your mobile device to a connected sound module/hardware synthesizer, or to a MIDI interface box connected via usb with your desktop PC/notebook.
Meta events will not be sent!

Activating MIDI OUT: First, the "Enable USB Midi" box and the "Show MIDI OUT activation button" box need to be ticked (in the settings screen, section "USB"). Second, in the main screen you need to activate the actual MIDI OUT playback mode by pressing the button with the "MIDI 5 PIN" icon (just before the play button). Pressing it again returns to normal playback mode (see notes below!).

Currently there are some limitations for the MIDI OUT playback mode:

On some devices you will hear no sound through your device speakers while an USB MIDI/AUDIO interface is connected! (but sound should always work through headphones) So you might need to unplug the USB cable to re-activate internal audio playback, simply deactivating the MIDI OUT playback mode via the "MIDI 5 PIN" button in the main screen will not be sufficient in that case!

MIDI OUT requires additional CPU resources, so depending on your device's CPU, MIDI output might become unstable with one of the 'live visualisation' view modes, especially with the "perspective" ones ! It is also generally recommended to hide the piano keys to reduce cpu time for key animations! You might lower the "visualisation refresh rate" in the "USB" settings screen. Or if that still does not help, you should switch to the static "file list" view mode during MIDI out playback in order to avoid any CPU time being used for live visualisation/animations.
Anyway you should test whether your hardware spec (CPU power) is sufficient before purchasing the PRO version (if the "MIDI OUT" feature would be the main reason for a purchase):

*** As MIDI OUT is a PRO feature, you should check in the free app version whether it works correctly with your hardware: When you activate Midi Out playback in the free app version, the note pitches (except drum notes) will be modified just before they are sent. All other channel events remain unchanged!


Device Connection

For both MIDI Input and MIDI Output you'll need an USB A port / microUSB port with 'USB OTG' cable.
For MIDI OUT you'll most likely need an additional cable/interface (search for "usb midi interface" products, these have an USB input and two MIDI 5 PIN connections (IN + OUT)). So the connection chain for MIDI OUT could look like this:
mobile device---> USB OTG cable---->usb midi interface---->hardware synthesizer

Or like this:
mobile device---> USB OTG cable---->usb midi interface---->MIDI I/O box---->desktop PC/notebook---> software synthesizer

Troubleshooting

My USB MIDI device connection worked fine for a while with the app, but now the app doesn't recognize the MIDI device any more!

This might be the case if the USB device has not been detached/released properly (which normally should not happen).
Solution: =>Reboot your phone/tablet


My USB MIDI device can't be detected !

(1.) With some mobile devices it simply won't work;-(. Yes, some midi devices can be detected by a mobile device 'A' but not by mobile device 'B'. Maybe a matter of luck.

(2.) » Assuming (1.) is not the case: This app uses a device filter that will either detect an USB MIDI device by its reported subclass (this will work for most USB MIDI devices) or by specific vendor ids (Roland, Korg,...).
If your device can't be detected you could try to examine it by using the app USB Device Info (on Google Play)
The goal is to determine your vendor's device id and add it to this app's usb device filter, if it meets the conditions in Step 2 and 3

Step 1 (Check host's connectivity with the "USB Device Info" app)

Step 2 (Check the USB device's Interface)

Step 3 (Check the USB device's Endpoint)

Seek all "Endpoint" information: An USB MIDI compatible device has one or more Endpoints.

Then check these conditions of an Endpoint section:

If the above conditions are met:



MIDI file resources and legal noticetop

The app ships with only a few copyright free MIDI files (the composer's death was more than 70 years ago).
Further this app provides some MIDI file online search tools using external web sites that host these MIDI files for free download.
These web site references are not statically included in this app: They will be downloaded each time the online search is started (but only once per app launch). So theses sources may vary from day to day (although this is not very likely to happen) or disappear, eg. if the web site owner removes the content.
If you want to play MIDI files in a public event and there is still a copyright on the original composition, you may need the right for public performance of a musical work first.

Privacy noticetop

This app does not collect, store or process any personal data.