Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 05-27-2010, 04:58 PM   #1
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default Possible bugs in the OSX version of JesuSonic (FIXED)

following these reports:

http://forum.cockos.com/showpost.php...3&postcount=79
http://forum.cockos.com/showpost.php...6&postcount=95
http://forum.cockos.com/showpost.php...&postcount=161

i've tried to narrow down a list of possible causes of the js plugin
issues, down to:
- a function not returning the same values on OSX (as windows)
- internal problems like overflow / interpreter issues...etc
- other plugin code that triggers a more "pretentious" engine behaviour

some tech notes and a test subject (liteon/presenceeq):
'presenceeq' is a basic peak filter that operates only in the higher bands.
it is a straight c port (with some adjustments) of james a. moores's peak from the book "the manifold joys of conformal mapping".
the following js system functions/vars are used to calculate the coefficients: tan, sqrt, pow, $pi, srate(!). in the time domain the filter uses a standard, bandpass biquad, "direct from I" topology for the difference equation.

i can't test more though, as i don't have osx. if someone with a mac can help the cockos folks in determining the issue i'm sure they will appreciate it...

the same plugins on windows:
i have reports of the same fx working on windows and wine with different sample rates / different sound cards and drivers (10x to ccernn).

i also have screenshots from the vst plugin analyzer working on higher sample rates:

screenshots:
1
2
3
4



---

Last edited by liteon; 06-19-2010 at 05:28 PM.
liteon is offline   Reply With Quote
Old 06-17-2010, 05:49 PM   #2
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

thanks to mrelwood, i think we may have narrowed some of issue triggers a bit.

mrelwood is using osx on ppc and "hopefully" the other users who reported issues are also using ppc builds.

what is known / the only pointers we have / :
the problem occurs with specific effects on the jesusonic build for osx ppc (but may also be the case for intel).

the 'pinknoisegen' case is a bit curious: it only uses the exp() function to define some coefficients, then it uses the rand() code to get random values and process them (pink filter)

'deesser' uses tan(), $pi and srate, for the frequency pre-warping, yet according to reports the frequency scale is inverted (hmm)

the expression evaluator (if that is what js is using) looks like a impressive peace of code...i can only understand some of the mathematics in the inline assembly on a first look. but one thing i presume is that it might be difficult to debug.

worst case could be a compiler bug with a certain optimization level... :\
best case, for example, is something 'small' for the evaluator in an (e.g.) __ppc__ branch not to working.
i guess the strangest part is that the issues only occur with my fx, yet the fx are quite simple.

i cannot help more as i don't have the os or hardware on which the issues occur.



---
liteon is offline   Reply With Quote
Old 06-18-2010, 02:13 AM   #3
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default OS X Intel is affected too :(

Liteon, unfortunately, I can confirm most of these bugs apply to OS X / Intel as well...

Quote:
Originally Posted by mrelwood View Post
Included Liteon JS (surprised they are included):
- butterworth24db, cherby24db, (Frequency works backwards, in HP the slope is about 2db/oct, not 24)
- deesser (F works backwards, from 19KHz to 22KHz only)
- moog24db (in HP the slope is about 2, not 24)
- presenceeq, shelvingfilter (outputs only 6165dB, BEWARE!)
I can't seem to reproduce the deesser one, or I must be misunderstanding the description. Here, F goes only to 12KHz on the display.

Btw, whenever you need something to be tried or tested on OS X, feel free to ping me. I will be glad to help where I can. I have a few different installs of OS X, on an ancient hackint0sh (OS X 10.5.4, Prescott 640 CPU, quadboot with Windows and Linux partitions as well, which allows for comparisons between OSes on the same hardware) and a Macbook Pro (10.5.8/10.6.3, C2D).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 06-18-2010, 11:04 AM   #4
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

banned,
thanks for the info.

yes, the deesser issue is puzzling:

Quote:
Originally Posted by liteon
re: - deesser (F works backwards, from 19KHz to 22KHz only)
hmm, not sure what this means? is it that when you move the F slider left, the target frequency goes up (to 22khz) instead of down? (but anyway its range should be 1500 hz - 12000hz)
Quote:
Originally Posted by mrelwood
Correct. Left goes up, right goes down. And the range really was from 22KHz "up" to 19KHz.
its not quite clear if the display if showing wrong values or the actually values are misplaced. i have sent mrelwood a pm to take a look at this thread.

if the 'deeser' frequency slider is working ok for you but not for mrelwood, then this will suggest multiple issues - all on osx but different on intel, ppc builds.

btw is 'pinknoisegen' working ok for you? i think someone reported that it also did not work on osx.


--
liteon is offline   Reply With Quote
Old 06-18-2010, 03:41 PM   #5
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

here is a test.

could someone with intel-mac and/or a ppc-mac give this one a quick go...

load this js fx into reaper:
https://stash.reaper.fm/oldsb/930805/test_tan_ppc.txt

instructions in the fx description.
for higher sample rates the resulted number should be smaller..



---
liteon is offline   Reply With Quote
Old 06-19-2010, 06:58 AM   #6
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Quote:
Originally Posted by liteon View Post
here is a test.

could someone with intel-mac and/or a ppc-mac give this one a quick go...

load this js fx into reaper:
https://stash.reaper.fm/oldsb/930805/test_tan_ppc.txt

instructions in the fx description.
for higher sample rates the resulted number should be smaller..



---
That passes for me on Intel OS X, REAPER/PPC in Rosetta (and on REAPER/64). BUT...

fails in REAPER/386. I'll see if I can fix.


Edit: looks like tan() on OSX/386 returns the reciprocal of tan(), oops. Damn different meanings of "fdiv" with no parameters in inline assembly vs nasm, argh.

Last edited by Justin; 06-19-2010 at 07:12 AM.
Justin is offline   Reply With Quote
Old 06-19-2010, 07:50 AM   #7
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

Quote:
Originally Posted by Justin View Post
That passes for me on Intel OS X, REAPER/PPC in Rosetta (and on REAPER/64). BUT...

fails in REAPER/386. I'll see if I can fix.


Edit: looks like tan() on OSX/386 returns the reciprocal of tan(), oops. Damn different meanings of "fdiv" with no parameters in inline assembly vs nasm, argh.
phew ok,
hopefully this is the only issue.
thanks for checking..

i was wondering for this part exactly and if the partial tangent would be faster than the fsincos and a division. here are the results i get (athlon xp 1800+, mingw-gcc-4.4.1-tdm with -O3):

Code:
executions=1e+6

"fptan;"
"fstp %1;"
+ math.h expf(x) for weight

70ms

"fsincos;"
"fxch;"
"fdivp;"
+ math.h expf(x) for weight

106ms

Last edited by liteon; 06-19-2010 at 08:06 AM. Reason: 10x
liteon is offline   Reply With Quote
Old 06-19-2010, 08:59 AM   #8
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Quote:
Originally Posted by liteon View Post
phew ok,
hopefully this is the only issue.
thanks for checking..

i was wondering for this part exactly and if the partial tangent would be faster than the fsincos and a division. here are the results i get (athlon xp 1800+, mingw-gcc-4.4.1-tdm with -O3):

Code:
executions=1e+6

"fptan;"
"fstp %1;"
+ math.h expf(x) for weight

70ms

"fsincos;"
"fxch;"
"fdivp;"
+ math.h expf(x) for weight

106ms
Yeah, fptan might be the way to go.. of course probably need to check it for error -- if you give it something out of range, it doesn't push two values to the stack, so you could end up with the stack in an invalid state, ugh.

Err: nm, fsincos might have this problem too, and the range is big enough anyway.

Last edited by Justin; 06-19-2010 at 09:06 AM.
Justin is offline   Reply With Quote
Old 06-19-2010, 01:59 PM   #9
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Edit: try the 3.62 build on landoleet, should fix (and have faster tan() on all Intel platforms)
Justin is offline   Reply With Quote
Old 06-19-2010, 04:24 PM   #10
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

Quote:
Originally Posted by Justin View Post
Edit: try the 3.62 build on landoleet, should fix (and have faster tan() on all Intel platforms)
thats awesome! your update rate is impressive guys.

this goes out to the osx users, please, try these js fx (with caution e.g. audio off!) from reaper 3.62.
pinknoisegen, moog24db, cherby24db, butterworth24db, presenceeq, shelvingfilter

...please report if you notice something wrong, for example - audio has a lot of gain (many decibels), frequency scales are wrong (not 20hz-20khz, inverted scales), glitches in sound etc.


----
liteon is offline   Reply With Quote
Old 06-19-2010, 10:13 PM   #11
cerberus
Human being with feelings
 
Join Date: Nov 2009
Location: memory
Posts: 633
Default

everything with those plug-ins seems normal in 3.62 (osx 10.5.8, intel)

http://gyazo.com/459480f4242d9474f5f54a0200f8d1f5.png
^ a screenshot showing them all working at once.

ty liteon and cockos !
cerberus is offline   Reply With Quote
Old 07-01-2010, 08:23 PM   #12
mrelwood
Human being with feelings
 
mrelwood's Avatar
 
Join Date: Nov 2006
Location: Finland
Posts: 1,528
Default

Took me a while to get here... Great to see that things have moved on quite a lot!

Testing Reaper 3.64pre9:

Liteon/deesser works mostly fine, but in bandpass mode the bandwidth seems a bit goofy. At low settings (0.1 to 1.5 oct) the plugin barely attenuates anything, although treshold is at -80dB, ratio at 20, frequency at 2.8K. Gain reduction meter shows around -18dB while spectrum analyzer shows maximum of -5dB, and at 4.2K.
At higher bandwidth settings (2.5 to 3.1 oct) the frequency gets attenuated at 1.8K, and the gain reduction shows way over the -20dB scale, while analyzer shows about -10dB.

Moog24dB seems to work fine. Perhaps a slight frequency mismatch in the high pass filter, perhaps not even worth noting.

Cheby24dB works fine. Is it normal that the "Bassband ripple" adds resonance at the dialed frequency (for example 1K) as well as half that (500Hz)?

Butterworth24dB works fine. Slight resonance even when the resonance slider is at minimum, but I believe that is purposeful colouring.

Presenceeq and Shelvingfilter work perfectly.

Most importantly, no +6000dB tones! Not even past 0dB! Thanks!
__________________
______Announcing__mrelwood plugins______
.. MacBook Pro 16" Late '19 .. Scarlett 6i6, Saffire Pro 24 DSP (+ADA8000) .. FCA610 .. EVE SC207 .. Focal: Shape 65, Alpha 65, CMS 40, Listen Pro ..
mrelwood is offline   Reply With Quote
Old 07-01-2010, 11:34 PM   #13
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

thanks cerberus and mrelwood for checking!

there are some design flaws and also things that might be a bit "raw" in there...

Quote:
Originally Posted by mrelwood
Liteon/deesser works mostly fine, but in bandpass mode the bandwidth seems a bit goofy. At low settings (0.1 to 1.5 oct) the plugin barely attenuates anything, although treshold is at -80dB, ratio at 20, frequency at 2.8K. Gain reduction meter shows around -18dB while spectrum analyzer shows maximum of -5dB, and at 4.2K.
At higher bandwidth settings (2.5 to 3.1 oct) the frequency gets attenuated at 1.8K, and the gain reduction shows way over the -20dB scale, while analyzer shows about -10dB.
this is one of those things i guess :-). the meter is accurate in both hipass and bandpass mode. you see, in bandpass mode the effect splits the spectrum in 3 bands a,b and c, but since the crossover filters aren't steep enough, for lower bandwidths of the target band "b", what happens is that the band is already attenuated due to phase cancelation before the compression. so you need a lower threshold (check with "monitor=on"). i should have chosen the dynamic eq approach for this one i admit.

Quote:
Originally Posted by mrelwood
cheby, moog, butterworth
butterworth should have no resonance when set to 0 and also cheby is ok to have a "ripple". but the only accurate values (and 24 decibels per octave) for these filters are in the low-pass (LP) modes. HP, BP have the character of the filter but are 6 db/oct and may have extra resonance and strange shapes...



-----

Last edited by liteon; 07-02-2010 at 01:06 AM. Reason: hp, bp
liteon is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:42 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.