DSP algorithms
-
- KVRian
- 1398 posts since 9 Dec, 2002
Further checking:
Your guess on FL and constant blocksize was correct. Switching it on cured all the crackles.
No other host had any crackling.
Another FL issue seems to be that the amount of detune switches to full when stopping and restarting playback. Doesn't happen in other hosts (just spent some quality time with Tracktion to confirm this).
I wonder what FL does differently in this case...
Regards,
JMH
Your guess on FL and constant blocksize was correct. Switching it on cured all the crackles.
No other host had any crackling.
Another FL issue seems to be that the amount of detune switches to full when stopping and restarting playback. Doesn't happen in other hosts (just spent some quality time with Tracktion to confirm this).
I wonder what FL does differently in this case...
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- KVRian
- 1398 posts since 9 Dec, 2002
camsr That's because two stop button presses are "panic!" which stops the audio processing altogether.
And the crackles disappear if you choose 'use fixed size buffers' from the dropdown menu under the icon on the left corner.
Regards,
JMH
And the crackles disappear if you choose 'use fixed size buffers' from the dropdown menu under the icon on the left corner.
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- Banned
- 705 posts since 29 Jan, 2004
Which MIDI controllers are sent, when Fruity starts or stops?jmh wrote:Further checking:
Your guess on FL and constant blocksize was correct. Switching it on cured all the crackles.
No other host had any crackling.
Another FL issue seems to be that the amount of detune switches to full when stopping and restarting playback. Doesn't happen in other hosts (just spent some quality time with Tracktion to confirm this).
I wonder what FL does differently in this case...
Regards,
JMH
As you know, There is a MIDI controller assignment inbuilt into Detunator ...
Default assignment is Modulation Wheel!
So I guess, that is the problem? It would explain, why it resets the detuning amount to Max or Min then ...
.
-
- KVRian
- 1398 posts since 9 Dec, 2002
FL "shouldn't" send anything, but I'm not familiar enough with it to say if it resets controllers in an oddball fashion - I recall seeing some comments about this earlier.
Will check it once more, if it happens with assigning Detunator's MIDI controller to a controller in FL (will check both MIDI out plugin and assigning it to a knob on my keyboard).
Regards,
JMH
Will check it once more, if it happens with assigning Detunator's MIDI controller to a controller in FL (will check both MIDI out plugin and assigning it to a knob on my keyboard).
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- Banned
- 705 posts since 29 Jan, 2004
Simply assign *nothing* to Detunator's controller slot. Then nothing can cause that MIDI driven reseting in Detunator.jmh wrote:FL "shouldn't" send anything, but I'm not familiar enough with it to say if it resets controllers in an oddball fashion - I recall seeing some comments about this earlier.
Will check it once more, if it happens with assigning Detunator's MIDI controller to a controller in FL (will check both MIDI out plugin and assigning it to a knob on my keyboard).
Regards,
JMH
.
-
- KVRian
- 1398 posts since 9 Dec, 2002
Confirmed: it doesn't happen when one assigns a controller, be it a hardware controller or MIDI out or Dashboard plugin in FL. Without anything specifically assigned to the MIDI control in Detunator, Fruity resets the control to minimum or maximum.
Odd behavior... I guess gol has some unbelievable excuse for this too =)
* edit * I kind of wonder when FL even resets controllers, I'd understand if it happened after FL detected they are being used...
Your suggestion, selectin "---" for the controller assignment however doesn't seem to solve the problem. In FL, the sound is again at maximum detune after stopping and restarting playback.
Doesn't happen for example in Tracktion.
Regards,
JMH
Odd behavior... I guess gol has some unbelievable excuse for this too =)
* edit * I kind of wonder when FL even resets controllers, I'd understand if it happened after FL detected they are being used...
Your suggestion, selectin "---" for the controller assignment however doesn't seem to solve the problem. In FL, the sound is again at maximum detune after stopping and restarting playback.
Doesn't happen for example in Tracktion.
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- Banned
- 705 posts since 29 Jan, 2004
FruityLoops makes the most problems of all host applications.jmh wrote:Confirmed: it doesn't happen when one assigns a controller, be it a hardware controller or MIDI out or Dashboard plugin in FL. Without anything specifically assigned to the MIDI control in Detunator, Fruity resets the control to minimum or maximum.
Odd behavior... I guess gol has some unbelievable excuse for this too =)
Regards,
JMH
That can be confirmed by many developers (even SE devs)...
They (FL devs) seem to do simply what they think how the VST Standard is to implement...
But I would not buy that host, merely to quarant compatibility with that exotic piece of VST implementation.
I do what I can, to fix problems there, but I simply don't even understand, how it works (like most users obviously) ...
And I have at first to guarant global VST compatibility. I test exclusively with the reference hosts Cubase and WaveLab therefore, which are by the way very different never the less ...
.
-
- KVRian
- 1398 posts since 9 Dec, 2002
Yep, extra work necessary to guarantee usability in one quirky host isn't sensible.
Some FL users commented that there's a new wrapper coming... hopefully that will do better
I'm happy though as it works as it should in hosts I'm using
Regards,
JMH
Some FL users commented that there's a new wrapper coming... hopefully that will do better
I'm happy though as it works as it should in hosts I'm using
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- Banned
- 705 posts since 29 Jan, 2004
OK.
Then we can concentrate to the extention parameters now?
- Stereo Control (stereo limiter)
- Dry/Wet Parameter (fading between original and processed sound)
(-)Delay (I really have no idea, how that can be realized)
.
Then we can concentrate to the extention parameters now?
- Stereo Control (stereo limiter)
- Dry/Wet Parameter (fading between original and processed sound)
(-)Delay (I really have no idea, how that can be realized)
.
-
- KVRian
- 1398 posts since 9 Dec, 2002
As I'm not a coder but a wishful idiot as you know, I'll use some simple terms to explain what I mean 
The delay I'm suggesting would have two controls: minimum amount, which would set the offset of the first cloned voice in regard to the original sound. Maximum would control the offset for the last cloned voice. Delay values for other sounds would then be derived from these.
A simple explanation, original sound and three clone voices.
Minimum set to 10 milliseconds
Maximum set to 30 milliseconds
The output would then be:
1. original sound
2. first clone at minimum = 10 milliseconds
3. second clone at minimum + ( (maximum - minimum) / 2 ) = 10ms + ( ( 30ms -10ms ) / 2 )= 20ms
4. third clone at maximum = 30ms
Sorry for my simplistic math, I just thought it would help you to see what I mean, and then tell me if it's possible or not.
I'm only guessing, but it oughta be possible with buffers and calculating the buffer values... if I could, I'd whip up a demo of this in SynthMaker.
* edit - of course the number 2 in my stupid equation is just the number necessary for this example... it should be something like "number of clones minus minus two" since the original voice and the first clone's delay offset is known *
Regards,
JMH
The delay I'm suggesting would have two controls: minimum amount, which would set the offset of the first cloned voice in regard to the original sound. Maximum would control the offset for the last cloned voice. Delay values for other sounds would then be derived from these.
A simple explanation, original sound and three clone voices.
Minimum set to 10 milliseconds
Maximum set to 30 milliseconds
The output would then be:
1. original sound
2. first clone at minimum = 10 milliseconds
3. second clone at minimum + ( (maximum - minimum) / 2 ) = 10ms + ( ( 30ms -10ms ) / 2 )= 20ms
4. third clone at maximum = 30ms
Sorry for my simplistic math, I just thought it would help you to see what I mean, and then tell me if it's possible or not.
I'm only guessing, but it oughta be possible with buffers and calculating the buffer values... if I could, I'd whip up a demo of this in SynthMaker.
* edit - of course the number 2 in my stupid equation is just the number necessary for this example... it should be something like "number of clones minus minus two" since the original voice and the first clone's delay offset is known *
Regards,
JMH
Now available with added Inherently Suspect Justification!
-
- Banned
- 705 posts since 29 Jan, 2004
I know, what you meant.
But I cannot imagine, what usefulness such an additional delaying effect would have.
Because we wanted develop an effect, which performes "Unisono". Or at least produces the sound resulz of Unisono. And in that special case: Synthesizer Unisono.
The behaviour you describe, has not so much to do with the classic synthesizer Unisono, nor is me one case known, which behaves in the "real world" that way (the prinziple is too static and delayes all in progressive direction).
I rather could understand a kinda "randomized" delaying behaviour, but probably merely with an harmonizer effect, like our OmniVox, Multi channel Voice Harmonizer, which by the way uses completely different technology and reacts to realtime note input - and therefore can be performed much more natural this way (humanizing) ...
I think the progressive delay thing is not what we want here. It is rather so, that any additional "delay" would make the transient behaviour of an authentic sounding "Unisono" effect just more worse than it actually the case is.
Currently the effect produces quite astonishing results, if applied to any kind of monophonic and polyphonic audio material. It is even appliabe to ready mixed songs with full spectrum of arrangement, how the demos have shown. And that all with tweaking only one single parameter.
At least in the latter case would the effect not work very well with your suggestion for some reasons (merely good for some special cases).
So thank you for the suggestion, but that wish must be filled by anyone others, making something different or completely new...
Althought the two other parameters we will implement. Cause that seems to be logical and useful for the kind of effect we wanted and the users may expect.
Thanks.
.
But I cannot imagine, what usefulness such an additional delaying effect would have.
Because we wanted develop an effect, which performes "Unisono". Or at least produces the sound resulz of Unisono. And in that special case: Synthesizer Unisono.
The behaviour you describe, has not so much to do with the classic synthesizer Unisono, nor is me one case known, which behaves in the "real world" that way (the prinziple is too static and delayes all in progressive direction).
I rather could understand a kinda "randomized" delaying behaviour, but probably merely with an harmonizer effect, like our OmniVox, Multi channel Voice Harmonizer, which by the way uses completely different technology and reacts to realtime note input - and therefore can be performed much more natural this way (humanizing) ...
I think the progressive delay thing is not what we want here. It is rather so, that any additional "delay" would make the transient behaviour of an authentic sounding "Unisono" effect just more worse than it actually the case is.
Currently the effect produces quite astonishing results, if applied to any kind of monophonic and polyphonic audio material. It is even appliabe to ready mixed songs with full spectrum of arrangement, how the demos have shown. And that all with tweaking only one single parameter.
At least in the latter case would the effect not work very well with your suggestion for some reasons (merely good for some special cases).
So thank you for the suggestion, but that wish must be filled by anyone others, making something different or completely new...
Althought the two other parameters we will implement. Cause that seems to be logical and useful for the kind of effect we wanted and the users may expect.
Thanks.
.
Last edited by blümchen on Thu Jul 14, 2005 12:45 am, edited 1 time in total.
-
- KVRian
- 1398 posts since 9 Dec, 2002
A randomised one, that keeps the delay values in a narrow range might be useful here, but again, you're right in saying that the transient behavior would not necessarily sound good to people.
And the thanks belong to you for making this - I just sent a few test clips to a couple of friends, along with the information that there's a plugin that does this available soon
Regards,
JMH
Now available with added Inherently Suspect Justification!
- KVRian
- 736 posts since 8 May, 2002 from ... , germany
pustekuchen,
i tried out yr detunator plugin:
it really sounds good...
... but i get those crackles, too.
used the plugin in Audiomulch and Tracktion;
both the same:
unprocessed wavefile
processed wavefile
the crackles seem to depend on the input sound:
pads & slowly evolving sounds -> no crackles;
short attack/release sounds -> crackles.
cheers,
tl.
i tried out yr detunator plugin:
it really sounds good...
... but i get those crackles, too.
used the plugin in Audiomulch and Tracktion;
both the same:
unprocessed wavefile
processed wavefile
the crackles seem to depend on the input sound:
pads & slowly evolving sounds -> no crackles;
short attack/release sounds -> crackles.
cheers,
tl.
-
- KVRian
- 922 posts since 26 Mar, 2003 from Guildford, England
IIRC, FL sends 3 midi controllers to the plugin:jmh wrote:FL "shouldn't" send anything, but I'm not familiar enough with it to say if it resets controllers in an oddball fashion - I recall seeing some comments about this earlier.
pan,
reset pitch
and also it sends a 'reset all controllers'.
There is a special option in the wrapper to turn off the 'pitch bend reset'.
