Latency is an issue with Bluetooth. Notes don’t stop when they should. I find it only useful for changing patches, because they are one and done. I use OnSong where when I open a song file it does the patch change. Playing sequences from an external device via Bluetooth is an issue.
I’m using an iPad 2 and MD-BT01 with latest iOS and firmware respectively. OnSong is an iPad app for lyrics and Bluetooth is fine because it simply calls up the patch I need for the specific song. This also solves the problem with not being able to see the screen when playing outdoors.
Latency occurs when I use any midi player app using the above listed devices and my Montage. What should I look for in settings pertaining to latency?
Latency is not an issue with MIDI Player Apps... It is a non-issue because they are simply designed to playback. Latency is an issue when you seek to record audio while listening. Latency is the timing difference between what you are playing and the positioning of the audio you are attempting to add to the existing audio. If you are attempting to record with an APP (sorry, I'm not familiar with OnSong) you may want to check with their recommendations. Playback apps might have latencies of 275ms or more because it is a non-issue. No one cares, really, if it take 275ms for the music to start after pressing play... Latency impacts those who wish to add new audio... and since MD-BT01 is MIDI only, it is a real non-issue.
If you are using an app built to record you will not experience unworkable latency. Attempting to record, and specifically to OVERDUB, is where you will find that the more you spend the better the results you'll get. That is the key issue with apps that do music. Any app can PLAYBACK, it takes so much more muscle to be able to simultaneously PLAYBACK and RECORD new data, position it properly, so that musicians (who find it unworkable to use 20ms of latency) can play along in comfort. Seriously, musicians are the proverbial "princess and the pea" when it comes to timing issue - we are uncomfortable with very small amounts of latency. It becomes impossible to play. Thus the difference between pro applications and consumer applications for music.
Is your OnSong app supposed to record MIDI and allow overdubbing via BlueTooth?
Phil, let me try again. It’s not OnSong that’s the issue, it’s when a midi song is being played, notes are not stopping in time. There’s a lag during playback. OnSong is used only to do program changes, not to playback midi files. It’s not a recording issue, it’s playback only. If I load the same song into the Montage it plays file, but when my iPad plays it via a player app (not OnSong), some notes don’t stop.
Okay, it was your mention of "latency" that threw me off. Latency describes an audio recording throughput and transfer issue. "Hung notes", on the other hand, typically, are a MIDI routing issue, although there can be many causes. But, we cannot eliminate BlueTooth as one of the causes without more information. But neither can we pin it entirely on that. If you can connect your iPAD to your synth via a cable - that would give us a clear picture of where the issue is possibly caused. In other words, connecting with a cable, if you still get the hung notes issue, then it was not the BlueTooth, but if this completely solves the issue, then BlueTooth remains a suspect in the mystery.
Eliminate all unnecessary communication between the synth and the app. All you need to do is send data from the app to the synth. You do not need CLOCK information to transfer (set the synth's CLOCK OUT = OFF); You do not need send or receive PLAY/STOP messages (set the SONG PLAY/STOP Receive/Transmit options to OFF); You do not need to be transmitting MIDI Arpeggio data (set the Arp MIDI Out = OFF); etc.
What you are attempting to accomplish:
Try to eliminate any unnecessary data from being introduced into your system. This in an attempt to eliminate the possibility of a MIDI loop being setup between the synth and the application (this can be the cause of 'hung notes')... Make sure that if you are playing along that you minimize the impact of the control data that you are sending Out naturally from your keyboard controller. If you are working with MONTAGE - I have encountered many users who are unaware of what is being transmitted OUT via MIDI from the MONTAGE (it can, and often does, transmit on multiple MIDI channels, simultaneously) depending on your selected setup at the time. Improperly set, you can get very unexpected results from connecting to external devices.
Other possible causes:
If a playback program does not reset or send a reset command - hung notes can occur when a file is stopped in the middle of a sustain command. For example, if you were to stop the playback and the last cc64 message sent was 127, then sustain remains active on that channel until a cc64 message of 0 is sent on that channel, OR until a Reset All Controllers Messages is sent. On a synth like MONTAGE recalling a new PERFORMANCE automatically sends a RESET ALL CONTROLLERS command to the internal tone engine.
The MONTAGE has a specific function when you wish to intelligently control what is sent Out via MIDI. By this it is meant that MONTAGE will generate all the MIDI commands it needs to accurately document a performance on the MONTAGE - every subtle movement and change generates some kind of MIDI messages, that when captured, and then played back to the MONTAGE will accurately reproduce your every movement. Sending all of that data to a device or tone engine that does not know what all to do with that sheer mountain of data, is not fair to that external device. So if your goal is not to RECORD the MIDI OUT of a MONTAGE - you must seek to limit what is going OUT via MIDI.
This is what the ZONE MASTER function can do. It allows you to control (intelligently) exactly what if anything is routed OUT via MIDI to the external device or program.
If you cannot block incoming MIDI in the app itself, you might want to look at the ZONE MASTER - and setup an appropriate MIDI situation for what you require to be sent between the MONTAGE and the app.