Plugin for output MIDI to external or virtual devices

Started by XMPlay_User,

XMPlay_User

Hi Ian )
I ask you , please write plugin for output MIDI stream to external or virtual MIDI devices , you can do this plugin based on your xmp-midi.dll , simly need cuting all synthesizer function and add function to output MIDI stream to any devices ,  I long time your asking this do , please spend a little time on this ) In_midi.dll of WinAMP me not like because https://www.un4seen.com/forum/?msg=146451 , me as user this very not comfortably , that's why I ask you , make MIDI plugin for output MIDI stream with send sysex reset message )
I understand what for you this do not hard , you known all API of your XMPlay , and that's why you easy can build plugin whitch I want )
abut this I before asked here https://www.un4seen.com/forum/?msg=146716 , not need ignore this request , if I often ask and write about this , mean this realy need )
This plugin need make with logic as in xmp-wasapi.dll or xmp-asio.dll or xmp-ds.dll , but only for MIDI devices ) , plugin must pick up midi stream of midi files , add MIDI reset before the start transmite MIDI source to selected MIDI device , and when MIDI devices was reset , next simply transmite MIDI stream as is )
for you as author XMPlay this mean what work on several hours or days )

Ian @ un4seen

Quote from: XMPlay_UserIn_midi.dll of WinAMP me not like because https://www.un4seen.com/forum/?msg=146451

Did you try the XMPlay update posted here?

   https://www.un4seen.com/forum/?msg=146775

There should be no need to enable the in_midi plugin's "Sampling" options with that.

XMPlay_User

Big thank you ) this work as need ) , on future , please , if you make fix problem , indicate this in changelog , I asked yo because changelog absent and I not known what fix , and what not fix )

XMPlay_User

Your XMPlay , best player for all ) I wish you very good development of your project )

XMPlay_User

Me really very nice what I can help improve your project and give your users something useful )

XMPlay_User

Simply when I make my project transcoder for XMPlay , I do update your player from site , and in at that time my head was busy other task ) and that's why I didn't notice what you fixed this problem )

XMPlay_User

Deteced bug , If with use as is , without sampling and press stop not pause , and next press play , melody not be played from the very beginning , instead time meter will show what melody play on start , but in real will play on position when be do stoped , that is pause and stop work identicaly without sampling )
https://www.mediafire.com/file/qsfjwjpx1kypxmh/midi_bug.avi/file
this better when be before , but this still not full correct work
please , do hybrid as now work for pause and rewind and seeking , but as was in previous version for stop )
If I right remember history , this was do so for skins in whitch not available separately button and button stop , if this linked with this , then I offer save logic as now , but add in options checkbock how must work buttons , as now or pause separate, stop separate )
I'm finded in webarchive version 4.1 and in this version button stop in default skin work correctly ) here https://web.archive.org/web/20260101233850/https://www.un4seen.com/ , but here available other problems
By the way if enable sampling and checkbox Send to Winamp's output system in latest version 4.1.0.13 - button pause and button stop work correctly , but appears feedback whitch we try fixed )

Ian @ un4seen

When you press the stop button in Winamp, it unloads the file, but in XMPlay (on first press) it pauses and rewinds the file. Unfortunately, the IN_MIDI plugin doesn't seem to be able to seek while paused with default settings, so it doesn't rewind. But it works better if you set the "Playback method" option to "immediate" (not "streamed").

XMPlay_User

Yes , after two click on stop buttor - all work , but immediate imposible , because in this method do skiping all sysex messages and for example this melody not sent sysex messages for Roland SoundCanvas 8820 / Roland SoundCanvas VA , I offer add option for stop button single click two reaction ) , if this add in options XMPlay - will fix this bug )
Mehtod whitch I offer , very simply integrate , because does not matter what send commad stop , one or with small interval twice )
Yes , simply do reaction on single click to Stop button as if do double click on Stop button )

XMPlay_User

Yes I think what need do simplest fix this bug ) simply need if press to stop button send to plugins not single message , but double message , as if you do fast double click ) , this fully fix this problem ) and all workin alhorytm not be need to rewrite
This offer solve problem with all same WinAMP plugins ) not only in_midi.dll )

XMPlay_User

Hm , looks like you're right , so what I sayd upper , this only if use DirectMusic devices , if use only MCI / Standard MIDI Out devices - sysex work correctly and in immediate mode )
but I still think what beter if do when pressed stop button , do stop on auto doublecklick , I think what this can help in other problem plugins in whitch available also problem )

XMPlay_User

And still , I insist on my offer here https://www.un4seen.com/forum/?msg=147119 and here https://www.un4seen.com/forum/?msg=147120 , because this plugin has exactly the same problems what is the problem has  floating character , problem can retry , but can and not retry
Why my offer better ? Because when was make plugins for WinAMP 2.x , no one can assume what this will used in 2026 year and in other player whitch compatible with WinAMP plugins , this mean , what in more plugins available hidden problems whitch my offer solve )

Ian @ un4seen

Quote from: XMPlay_UserYes , after two click on stop buttor - all work , but immediate imposible , because in this method do skiping all sysex messages and for example this melody not sent sysex messages for Roland SoundCanvas 8820 / Roland SoundCanvas VA

Sysex seems to be working fine here with "Playback method" set to "immediate". For example, I can see a synth switching between XG and GS modes when the appropriate sysex message is sent.

Still, here's an update that will tell Winamp plugins to unload the file when the stop button is pressed, and reload the file when the play button is pressed:

    www.un4seen.com/stuff/xmplay.exe

Note that the plugin's playback method will still need to be set to "immediate" if you want to be able to seek while paused/stopped.

XMPlay_User

Thank you ) now better )
If possible , please explain cause of this :

Quote from: Ian @ un4seenNote that the plugin's playback method will still need to be set to "immediate" if you want to be able to seek while paused/stopped.

why this so ?  Maybe can fix and this ? )

Ian @ un4seen

It appears to be a bug in the plugin. You can see the same seeking issue with it in Winamp.

XMPlay_User

Yes , WinAMP 5.6.6.3516 work also as your XMPlay if select mode streaming )
Well done! Now your solve problem with very big quantity plugins for WinAMP 2.x - 5.5 )