18 Jun '13 - 23:05 *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Login Register  
Pages: 1 2 [All]
  Reply  |  Print  
Author Topic: XM Play Midi Plugin problems and suggestions  (Read 4435 times)
Raymond
Guest
« on: 2 Mar '11 - 01:21 »
Reply with quoteQuote

Hi there,
 I am new to this forum and still a rather novis XM Play user. I was playing with the midi plugin, and while many soundfonts work well, I have seen some problem. One soundfont specifically that comes to mind, the setzer spc snes soundfont, has some looping issues, where you can hear the clicks at the loop points with XM Play, however with Synth Font, these things aren't audible. The noises that XMPlay makes go from click to thump, as i'm sure those of us who have played with loops and tried to get them right will be able to relate to. I'm starting to think that this only becomes a major issue with samples with low sample rates and or loop points which are very close together. I think I have had this problem before, but I can't remember specifics.
One thing I don't get though is that the EMU soundfonts don't seem to do this, at least I haven't seen it yet. But I don't use them very much.
As i said this only occurs rarely, and when it does occur I can usually switch to one that works better. But it's doing it to one of the soundfontss I'm making, and I have no idea why.
also, a little out of the league of XM Play, but I like the sound of that plugin so much I wish i could use it in realtime, like as a midi device like the timidity driver, since I really don't like that much. Again I know this is going out of what it is supposed to do, but that thought hits me every now and then.
Also the ability to adjust some of the effects would be nice, particularly the reverb and chorus.
Well, that's it. I hope this soundfont looping thing can be fixed since that is really the only reason I still use Synth Font for playing midis sometimes.
The other two things aren't really that important but they did cross my mind, so I thought I'd just mention them.
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #1 on: 2 Mar '11 - 17:06 »
Reply with quoteQuote

I am new to this forum and still a rather novis XM Play user. I was playing with the midi plugin, and while many soundfonts work well, I have seen some problem. One soundfont specifically that comes to mind, the setzer spc snes soundfont, has some looping issues, where you can hear the clicks at the loop points with XM Play...

I have an idea what the problem may be: the SF2 specs state that loop points must be surrounded by continuous audio data, but some soundfonts might not do that (eg. nothing beyond the loop end). Here's an update to try, which should compensate for that...

   www.un4seen.com/stuff/xmp-midi.dll

Let me know if you still have any clicking problems with it, and if so, please upload a soundfont and MIDI file to reproduce the problem with...

   ftp.un4seen.com/incoming/

Also the ability to adjust some of the effects would be nice, particularly the reverb and chorus.

The update above also adds a reverb level slider to the mixer window.
Logged
Raymond
Guest
« Reply #2 on: 2 Mar '11 - 20:28 »
Reply with quoteQuote

Whoa, Thank you so much for this update! it's perfect!
Even the worst soundfonts with this issue are totally cured now. I will let you know of anything that comes up, but I doubt I will need to...
Logged
Rich Nagel
Posts: 292


« Reply #3 on: 3 Mar '11 - 04:21 »
Reply with quoteQuote

The update above also adds a reverb level slider to the mixer window.

Love that new reverb slider, Ian :thumbsup: Smiley Any chance for a chorus slider as well? Smiley
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #4 on: 4 Mar '11 - 15:33 »
Reply with quoteQuote

I'm not sure. I think chorus levels are more well-defined, eg. not so implementation-specific as reverb. Do you have any example files that could use some chorus level adjustment? Smiley
Logged
Rich Nagel
Posts: 292


« Reply #5 on: 5 Mar '11 - 08:05 »
Reply with quoteQuote

I'm not sure. I think chorus levels are more well-defined, eg. not so implementation-specific as reverb. Do you have any example files that could use some chorus level adjustment? Smiley

Nothing in particular. Many MIDI files will either completely omit the chorus controller, or have it jacked up WAY to high to sound pleasing. But, they usually go hand in hand, reverb and chorus Smiley

Hmmm... now that I think about it though; the current reverb slider is a global sort of thing (applies reverb to all MIDI channels, or rather, the entire MIDI sound output), correct?

If so, I'm thinking that a global chorus slider in actuality might sound rather strange (especially with percussion).
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #6 on: 7 Mar '11 - 15:56 »
Reply with quoteQuote

Hmmm... now that I think about it though; the current reverb slider is a global sort of thing (applies reverb to all MIDI channels, or rather, the entire MIDI sound output), correct?

Not quite. That is how XMPlay's reverb effect would work, but the MIDI plugin's reverb level control is applied to each MIDI channel's existing reverb level, so that the relative reverb levels of the channels is unchanged. For example, moving the slider to maximum, doubles the reverb level of all channels. If a channel had no reverb, it'll still have no reverb Smiley
Logged
Rich Nagel
Posts: 292


« Reply #7 on: 8 Mar '11 - 10:45 »
Reply with quoteQuote

Not quite. That is how XMPlay's reverb effect would work, but the MIDI plugin's reverb level control is applied to each MIDI channel's existing reverb level, so that the relative reverb levels of the channels is unchanged. For example, moving the slider to maximum, doubles the reverb level of all channels. If a channel had no reverb, it'll still have no reverb Smiley

Ahh, understood. In that case, I think that a chorus slider would be a nice feature Smiley Do you still require a MIDI file or two that includes chorus controllers (MIDI controller 93) for experimentation/testing? Most MIDI files floating around the Internet (i.e. most MIDI composers) use chorus controllers in conjunction with the reverb controllers.
Logged
tails_
Posts: 70


« Reply #8 on: 12 Mar '11 - 10:40 »
Reply with quoteQuote

Hi there I have another problem with soundfonts.
Exactly i have two soundfonts used together CheapSynth and 128Mb OPL3 soundfont (because cheapsynth has not all instruments from bank 0) and together some instruments sound detuned  Undecided (Cheapsynth seems to tuned up a bit)
So here's question: can finetune be added to this plug-in?
Logged
Raymond
Guest
« Reply #9 on: 13 Mar '11 - 18:16 »
Reply with quoteQuote

Here's something I just thought of. Just as there is pitch control for the transposing, I thought it would be fitting to have tempo control as well, maybe as a percentage. Or you could enter the destination tempo in bpm and the percentage would be calculated from there. For example,
There are two options, percentage and tempo or something like that, so you can either change just the percentage and have the tempo field be updated as you change it, or you could enter a tempo and it would fill in the percentage for you and use it, like many DAWs do.
I also like the way the transposing doesn't do a thing with drum tracks and it can even change pitches right in the middle of a note, something which a lot of synths I have cannot do.
A chorus adjustment isn't a bad idea, but I probably wouldn't use it, and if I did, it would only be for a short time and then it would be back at defaults. The reverb adjustment thing did really make a difference for me though.
Logged
oddiophile
Posts: 149


« Reply #10 on: 25 Mar '11 - 12:02 »
Reply with quoteQuote

Tempo control, instrument selection, global chorus slider and a resizable MIDI Mixer window (so it can display all 32 channels at once) are the only major features missing from this excellent MIDI plugin Smiley
« Last Edit: 25 Mar '11 - 12:05 by oddiophile » Logged
raygrote
Posts: 20


« Reply #11 on: 16 Apr '11 - 16:15 »
Reply with quoteQuote

Hi,
Here's a fresh problem I have with the midi plug-in. I am having problems with large soundfonts with samples getting cut off abruptly. It happens with some soundfonts more than others. With sustained instruments like harps, and also with large string sections, it can easily happen.Smaller soundfonts are fine for the most part, but depending on the font, it still occurs but much rarer. Larger soundfonts are worse.
I could try to upload an example soundfont and midi that does this, but the soundfont would probably be an external link because of size, unless I can find a midi and small soundfont that it is obvious with.
maybe the user could be able to adjust a memory limit, or be able to turn it off.
I know I am saying a lot about this plugin. I just want to make it better than it already is.
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #12 on: 18 Apr '11 - 17:41 »
Reply with quoteQuote

The MIDI plugin doesn't have a particular memory limit (besides the system's available memory), but there is a voice (playing sample) limit, which could perhaps be causing the problem you're experiencing; when there are no voices free to play a sample, the quietest one makes way for it. Here's an update in which the limit is adjustable...

   www.un4seen.com/stuff/xmp-midi.dll

An "Active voices" display has also been added to the "MIDI mixer" window, so you can see whether it's hitting the limit. If the problem persists even with the voice limit raised, please do upload (or link to) a soundfont and MIDI file to reproduce the problem with...

   ftp.un4seen.com/incoming/
Logged
raygrote
Posts: 20


« Reply #13 on: 18 Apr '11 - 20:03 »
Reply with quoteQuote

Wow, you're quick with your updates. I raised the limit all the way up and the midi that caused major problems is pretty good. Perhaps an option to disable it entirely would be necessary though, if something comes up that really agitates it.
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #14 on: 19 Apr '11 - 15:49 »
Reply with quoteQuote

More voices use more CPU, also slightly more memory. The voice memory is currently pre-allocated, so unlimited voices isn't possible (can't pre-allocate unlimited memory). It is possible to change the way voice memory is allocated to allow unlimited voices, but I'm not sure unlimited is really needed/wanted. Note that whenever there are no free voices to play a sample, it is the quietest voice that is stopped to make way for the new sample (if it is louder than the quietest voice). For example, if the limit is 200, then there are 199 louder voices than the one being stopped, which would usually make it pretty unnoticeable Smiley

I will increase the maximum limit to 300 for the next update though.
Logged
raygrote
Posts: 20


« Reply #15 on: 19 Apr '11 - 20:55 »
Reply with quoteQuote

That sounds like a good compromise, especially with soundfonts with stereo samples. From my understanding, a soundfont with all stereo samples would have one sample for the left channel, and one for the right, thus, 2 samples would be playing for every note instead of one. Am I understanding correctly?
Also as you might have read, some of us were wondering about a tempo adjustment in the mixer window, but we are asking a lot of work.
 Smiley
Logged
Rich Nagel
Posts: 292


« Reply #16 on: 19 Apr '11 - 22:14 »
Reply with quoteQuote

An "Active voices" display has also been added to the "MIDI mixer" window

That's a really neat and handy feature, Ian! Smiley

There are quite a few hardware based soundfont compatible sound cards that suffer from the problem that has been described above... clipped notes due to the amount of actual samples being played within the soundfont.

Even though the sound card's polyphony might be 32 (or 64), a lot of the drivers/hardware for these cards treat each sample as a polyphonic note... hence clipped notes, even though the original MIDI file is no where near 32 notes being simultaneously played.

Even my Sound Blaster Live (Value Edition, with the latest/last Creative Labs Windows XP drivers installed) suffers from this problem... I have a few of my MIDI compositions where I had to use two MIDI output ports to prevent the clipping problem ("SB Live! Synth A" and "SB Live! Synth B"), even though the actual polyphony in the song was 32 (or less).

One example: the MIDI that I recorded this MP3 from -> http://www.cmoo.com/snor/weeds/Weeds_Music/X-Formers.mp3 ... Hehe, after watching that new feature of the MIDI plugin (using my „Weeds„ General MIDI SoundFont v3.0), I saw numbers as high as 72 (even though the polyphony of the original MIDI is only around 35 or so)!

Anyhooo, enough rambling... thanks for that new feature, it's quite handy! Smiley
Logged
raygrote
Posts: 20


« Reply #17 on: 20 Apr '11 - 00:55 »
Reply with quoteQuote

Hmm, that sounds to me that my theory is correct, although i could still be wrong. If a lot of stereo samples are being used, the polyphony could go up, plus a lot of sustained notes could do it. However since I am visually impaired, my screen reader can't access the limit display.
 Sad
But I'd rather just listen for cut notes than get intimiddated by the large numbers.
Logged
oddiophile
Posts: 149


« Reply #18 on: 20 Apr '11 - 04:13 »
Reply with quoteQuote

@Ian: Could you add a 'Max. & Peak Active Voices' indicator to the MIDI Mixer, so you don't have to look at the Active voices all the time. The 'peak' number is what most people need Smiley

It should look like this:

'Active Voices: 25 / 300 , Peak: 104'

where

25 = current reading
300 = Max. Voices set in the .ini
104 = maximum voices detected during playback of the MIDI file(s)
« Last Edit: 20 Apr '11 - 04:20 by oddiophile » Logged
raygrote
Posts: 20


« Reply #19 on: 20 Apr '11 - 05:03 »
Reply with quoteQuote

Hey all,
I can finally read the active voices display now! Turns out it was located in the mixer window and I thought it was in the main config dialog...
I also found that if you go into the ini file you can change the number on the voices line to whatever you want.  Most of you probably knew this, but I just found out. I was playing with several large fonts with some heavier midis and the number did reach 240 a few times, and sometimes it got into the 236-238 zone. If you pause XM Play and go into the mixer window, you can see how many voices are active at a specific point.
It probably wouldn't be a bad idea to include a peak voice indicator as well, but I think the active one should also stay. Increasing the max to 300 isn't a bad idea either, since I've only seen it reach 240 in the heaviest of midis and it's nice to have a safety zone.
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #20 on: 20 Apr '11 - 15:55 »
Reply with quoteQuote

From my understanding, a soundfont with all stereo samples would have one sample for the left channel, and one for the right, thus, 2 samples would be playing for every note instead of one. Am I understanding correctly?

Yes, that is correct. As well as that, a preset/instrument can also consist of multiple layers, ie. multiple samples played together for a single note. So the voice count doesn't necessarily equate to the number of notes that are playing.

Also as you might have read, some of us were wondering about a tempo adjustment in the mixer window, but we are asking a lot of work.

The issue with changing the tempo is that it also changes the duration of the MIDI file, and the position displayed by XMPlay would no longer match the position being heard. For example, if the tempo is doubled, then when the position display shows 10 seconds, the MIDI file is actually at the 20 second mark. That messes up seeking, eg. moving the position slider forward could actually result in seeking backwards from the position being heard. If people are OK with that, it may be possible to arrange something Smiley

@Ian: Could you add a 'Max. & Peak Active Voices' indicator to the MIDI Mixer, so you don't have to look at the Active voices all the time. The 'peak' number is what most people need Smiley

OK, here's an update with the peak displayed...

   www.un4seen.com/stuff/xmp-midi.dll

The peak counter will reset when a new MIDI file is opened or the config changes.

Just to reiterate, it is the quietest voice that gets cut, usually a voice that's decaying/fading-out after a note has been released. Once you reach a high number of voices (eg. 200+), I don't think you need to be too concerned about cut voices, due to the cut voices being too quiet to hear over the other voices. All looping samples actually get cut eventually (even if there isn't a lack of voices) because voices decay logarithmically, which means they never reach total silence (0) by themselves. So it could be that a voice that's cut due to a lack of voices was about to be cut anyway due to reaching a very low level.
Logged
raygrote
Posts: 20


« Reply #21 on: 20 Apr '11 - 22:47 »
Reply with quoteQuote

Hmm, that seeking thing could be a problem. I'd say put it in but let users know about it somewhere. I don't really know where, I'm not very familiar with the sight anymore.
 Smiley
I would only use it to hear a passage better, or to just see what something sounds like at a different tempo, or to practice with.
Logged
oddiophile
Posts: 149


« Reply #22 on: 21 Apr '11 - 00:20 »
Reply with quoteQuote

The issue with changing the tempo is that it also changes the duration of the MIDI file, and the position displayed by XMPlay would no longer match the position being heard. For example, if the tempo is doubled, then when the position display shows 10 seconds, the MIDI file is actually at the 20 second mark. That messes up seeking, eg. moving the position slider forward could actually result in seeking backwards from the position being heard. If people are OK with that, it may be possible to arrange something

People who use this feature usually don't care about / don't use seeking Smiley

Seeking could be implemented with a 'workaround': auto-reset the tempo to the original value, seek to the desired position and then set the tempo back to the previous (modified) value.
« Last Edit: 23 Apr '11 - 06:13 by oddiophile » Logged
raygrote
Posts: 20


« Reply #23 on: 21 Apr '11 - 00:55 »
Reply with quoteQuote

Wow, that sounds like a good idea. Wouldn't it be a lot more work for XM Play to do though? I would think it would be a lot slower to seek then.
As you said, most people who use the tempo control probably aren't going to seek, at least while they are using amodified tempo. But it would be all the more useful if we could find a way to make it work.
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #24 on: 21 Apr '11 - 15:05 »
Reply with quoteQuote

Implementing the seeking isn't really the concern (basically no modification required), it's more the possible user confusion. Taking the double tempo example I gave previously, with the position display showing 10 seconds and the MIDI file actually being at 20 seconds... if the user moves the position slider forward to the 15 second mark, then that is where the MIDI playback would move to, which is behind what the user was hearing (20 seconds) despite the slider being moved forwards.

Anyway, here's an update to try, with a tempo slider added to the "MIDI mixer" window...

   www.un4seen.com/stuff/xmp-midi.dll
Logged
raygrote
Posts: 20


« Reply #25 on: 21 Apr '11 - 21:19 »
Reply with quoteQuote

Hi,
The update does work, but as you said the tempo and seeking causes problems. I thought of a suggestion to help though. Maybe when seeking, XM Play can calculate the new position and seek to that instead. You' would just multiply the position by whatever you have the tempo set to. So, if you have the tempo set twice as fast, you multiply the current position by 2, then add however many seconds it should seek, and go to that position instead.
Not sure if it can be done within XM Play or not though.
Logged
oddiophile
Posts: 149


« Reply #26 on: 21 Apr '11 - 23:03 »
Reply with quoteQuote

Tempo Control works like a charm. Thanks for the kick-ass feature Smiley
Inaccurate seeking is not a problem, just a minor annoyance.

So with Tempo and Transpose control already implemented, the only things left to do are:

- A 'Bypass' checkbox to disable/enable the mixer processing (useful for doing an A/B compare) without changing/resetting the slider / button states

- Channel Instrument selection

- Loading / saving of the mixer state [custom presets] (very important)

- Global Chorus slider (optional)
« Last Edit: 23 Apr '11 - 06:16 by oddiophile » Logged
raygrote
Posts: 20


« Reply #27 on: 21 Apr '11 - 23:57 »
Reply with quoteQuote

Yep, I'd agree on those. But I would still be happy if this was the final version. The biggest things we are missing now are users who have been looking for something as good as this, especially that are free.
 Smiley
Logged
Ian @ un4seen
Administrator
Posts: 15363


« Reply #28 on: 22 Apr '11 - 17:09 »
Reply with quoteQuote

The update does work, but as you said the tempo and seeking causes problems. I thought of a suggestion to help though. Maybe when seeking, XM Play can calculate the new position and seek to that instead. You' would just multiply the position by whatever you have the tempo set to. So, if you have the tempo set twice as fast, you multiply the current position by 2, then add however many seconds it should seek, and go to that position instead.

Unfortunately, there are problems that way too. One is that if the tempo is lowered, playback will last longer, beyond what can be reached by the position slider, so it would prevent seeking to positions towards the end of the MIDI file.

- Loading / saving of the mixer state [custom presets] (very important)

That is possible via the Saved Settings options ("Decoder" settings). If you want only the mixer settings included in the presets (eg. not soundfont config), you can specify that in the MIDI plugin config. The tempo setting isn't currently included in the saved mixer settings.

I'll look into the "bypass" option next.
Logged
oddiophile
Posts: 149


« Reply #29 on: 23 Apr '11 - 06:24 »
Reply with quoteQuote

- Loading / saving of the mixer state [custom presets] (very important)

That is possible via the Saved Settings options ("Decoder" settings). If you want only the mixer settings included in the presets (eg. not soundfont config), you can specify that in the MIDI plugin config. The tempo setting isn't currently included in the saved mixer settings.

What I was talking about is a quick access dropdown box below the mixer controls  (so you don't have to open the XMPlay settings window every time you want to do this) and two buttons: 'Add' and 'Remove'. Pressing 'Add' prompts for a preset name and when confirmed with ENTER, the preset (just the mixer settings) is added automatically to the dropdown list. Selecting a preset from the dropdown box instantaneously loads the preset and adjusts the Mixer settings.
Logged
Pages: 1 2 [All]
  Reply  |  Print  
 
Jump to:  

Powered by SMF 1.1.18 | SMF © 2013, Simple Machines