Midi Timing Issues with Delphi ASIO VST and MiniHost

DelphiDelphi Xe2MidiVst

Delphi Problem Overview


I'm coming from a background of using MSC* MidiSequencer for a Delphi XE2 project and have been playing with DelphiASIOVST this weekend on the off chance the MIDI may be stable enough to use as my core MIDI engine while also allowing me to support VST plug ins. I pulled the D16 trunk off the SVN and compiled effortlessly after a few path tweaks.

I understand a great deal of what I'm seeing but I'm wondering if others have experienced issues with MIDI file playback in the the MiniHost example application. Specifically with a one track melodic performance it sounds like notes are getting skipped and/or playing back a bit later over other notes that are playing as they should. Basically it's just hit or miss if a note is even played at all.

I have numerous pro sequencers on my machine and the MIDI files are fine there. they also support VST with little to no problems. I also know the MIDI lowest level file format and know the file structure is sound.

Can the TMidiFile play direct to the standard MIDI synth in the computer? I'm trying to rule out VST issues by getting a direct pipeline to the built in synth. Barring that, anyone seen these issues or know of some more/better examples of MIDI file to VST using the component set?

Delphi Solutions


Solution 1 - Delphi

I use FL studios with my Midi and odds are is you need to turn down your buffer quality so that there is little to no delay. It's probably by default set to about mid-high range which means you will almost for sure have 1 - 1.5 second delay

Don't turn it down too low otherwise you'll get trash can sound where everything sounds hollow and robotic, but keep smashing the keys while you're adju8sting the setting

Solution 2 - Delphi

Is the wordclock functioning properly? Do you have the ability of driving off another midi clock-source, just to test with?

Though you said: "I have numerous pro sequencers on my machine and the MIDI files are fine there", you could also try http://www.reaper.fm (works on Linux/BSD, Mac and Win) DAW and import the midi directly into that, then set your default midi device as that which you wish to test with.

Solution 3 - Delphi

  1. Check the Midi Overflow settings.
  2. Ensure each of your Midi Devices has a unique ID.
  3. Get a midi throughput app like Midi-ox http://www.midiox.com/ To see realtime messages and data. and see where things are going.

Solution 4 - Delphi

Midi workflow checking is required for setting as per our requirements. Set all devices with unique ids that have been specified in your midi overflow. Midi throughput application is required to see the messages that are realtime and data that are also realtime. User has to see the things where they are going to what purpose.

Hope this will help u...

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCharles R. ThompsonView Question on Stackoverflow
Solution 1 - DelphiMikesEpitaphSaysView Answer on Stackoverflow
Solution 2 - DelphitorrangeView Answer on Stackoverflow
Solution 3 - DelphiFlemGremView Answer on Stackoverflow
Solution 4 - DelphiVidhya KrishnanView Answer on Stackoverflow