|
Raymond
Guest
|
 |
« on: 2 Mar '11 - 01:21 » |
Quote
|
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 » |
Quote
|
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.dllLet 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 » |
Quote
|
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 » |
Quote
|
The update above also adds a reverb level slider to the mixer window. Love that new reverb slider, Ian :thumbsup:  Any chance for a chorus slider as well? 
|
|
|
|
|
Logged
|
|
|
|
|
Ian @ un4seen
Administrator
Posts: 15363
|
 |
« Reply #4 on: 4 Mar '11 - 15:33 » |
Quote
|
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? 
|
|
|
|
|
Logged
|
|
|
|
|
Rich Nagel
Posts: 292
|
 |
« Reply #5 on: 5 Mar '11 - 08:05 » |
Quote
|
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?  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  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 » |
Quote
|
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 
|
|
|
|
|
Logged
|
|
|
|
|
Rich Nagel
Posts: 292
|
 |
« Reply #7 on: 8 Mar '11 - 10:45 » |
Quote
|
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  Ahh, understood. In that case, I think that a chorus slider would be a nice feature  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 » |
Quote
|
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  (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 » |
Quote
|
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 » |
Quote
|
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 
|
|
|
|
« Last Edit: 25 Mar '11 - 12:05 by oddiophile »
|
Logged
|
|
|
|
|
raygrote
Posts: 20
|
 |
« Reply #11 on: 16 Apr '11 - 16:15 » |
Quote
|
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 » |
Quote
|
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.dllAn "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 » |
Quote
|
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 » |
Quote
|
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  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 » |
Quote
|
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. 
|
|
|
|
|
Logged
|
|
|
|
|
Rich Nagel
Posts: 292
|
 |
« Reply #16 on: 19 Apr '11 - 22:14 » |
Quote
|
An "Active voices" display has also been added to the "MIDI mixer" window That's a really neat and handy feature, Ian!  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! 
|
|
|
|
|
Logged
|
|
|
|
|
raygrote
Posts: 20
|
 |
« Reply #17 on: 20 Apr '11 - 00:55 » |
Quote
|
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.  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 » |
Quote
|
@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  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 » |
Quote
|
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 » |
Quote
|
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  @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  OK, here's an update with the peak displayed... www.un4seen.com/stuff/xmp-midi.dllThe 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 » |
Quote
|
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.  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 » |
Quote
|
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 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 » |
Quote
|
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 » |
Quote
|
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 » |
Quote
|
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 » |
Quote
|
Tempo Control works like a charm. Thanks for the kick-ass feature  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 » |
Quote
|
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. 
|
|
|
|
|
Logged
|
|
|
|
|
Ian @ un4seen
Administrator
Posts: 15363
|
 |
« Reply #28 on: 22 Apr '11 - 17:09 » |
Quote
|
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 » |
Quote
|
- 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
|
|
|
|
|