Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

Useful Tip: De-Zippers and result of Multiplication

DSP related issues, mathematics, processing and techniques

Useful Tip: De-Zippers and result of Multiplication

Postby wlangfor@uoguelph.ca » Mon Oct 29, 2018 3:28 pm

Post deleted as I have since learned different methods which supersede these interesting methods.
Last edited by wlangfor@uoguelph.ca on Thu Jun 06, 2019 7:52 pm, edited 1 time in total.
Download VST: LA Bands 15 Band EQ
My Website http://www.leattol.com
User avatar
wlangfor@uoguelph.ca
 
Posts: 584
Joined: Tue Apr 03, 2018 5:50 pm
Location: Penetanguishene, Ontario, Canada

Re: Useful Tip: De-Zippers and result of Multiplication

Postby wlangfor@uoguelph.ca » Wed Oct 31, 2018 2:27 pm

BTW, I used this method by using the de-zippers at 7 for 500Hz & beyond; But for the bands prior, to avoid more crackle; I used the same crossfade method I'd mentioned but employed Sam Mungal's (Sam Beans) Smoothers. They just use a lot of memory and using them from a0 - b2 is taxing.

Thankfully the default de-zippers are so well made, Just not so well made that they can counter the amount of data that bass can produce. Bass waves go on for miles while mid tones only a few yards


Here's basically how far sound can be heard to entertain the notion of rarefaction and complexity:

\\\\\\\\ 40 feet - 17khz
\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 2.5 miles - 100Hz
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\
\\\\\\\
Download VST: LA Bands 15 Band EQ
My Website http://www.leattol.com
User avatar
wlangfor@uoguelph.ca
 
Posts: 584
Joined: Tue Apr 03, 2018 5:50 pm
Location: Penetanguishene, Ontario, Canada

Re: Useful Tip: De-Zippers and result of Multiplication

Postby Nubeat7 » Fri Nov 02, 2018 8:48 am

Could you explain how exactly the Sound is getting fuller when a Multiplication instead of a Division is used? Sure it's faster so there is less risk of crackles, but a fuller Sound?
User avatar
Nubeat7
 
Posts: 1387
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: Useful Tip: De-Zippers and result of Multiplication

Postby wlangfor@uoguelph.ca » Fri Nov 02, 2018 2:03 pm

I think it must process a bit more sound. Multiplication requires no memory due to old Fortran framework;
But division also includes the functionality for linear algebra, calculus, rounding and division of complex function in a
conservative, independent sense; Therefore division takes longer to process. I would assume because the music
is already playing though cached to a degree that there's less propogation and re-iteration of the signal based upon bits.

Theoretically I'd assume that division serves as a dither and results in every other bit being dominant due to firmware limitations.
In the case of DSP code; It's just slower than C++; And seems much the same. However, in the case of DSP Code I like the speed, it's in between.

All theory; gather what you will. People often say bitwise; But how can they test definitively for milliseconds of milliseconds?
The scale just is not fine enough to be sure that one process is faster. I think speed has more to do with this phenomenon than
bitrate, or bitwise ideas (If the same size yet they take longer to process); There's probably a built in coping mechanism. Much like
quantize or maybe even slide that's flexible and gracefully compensates.

It's a shame because whoever made the original Synthmaker is obviously who touched the original fruity loops and it's a combination
of madness and unattainable complexity. It's very sad that it is not moving to VST3.
Funny that even now we're theorizing on how it was made.
Download VST: LA Bands 15 Band EQ
My Website http://www.leattol.com
User avatar
wlangfor@uoguelph.ca
 
Posts: 584
Joined: Tue Apr 03, 2018 5:50 pm
Location: Penetanguishene, Ontario, Canada

Re: Useful Tip: De-Zippers and result of Multiplication

Postby adamszabo » Fri Nov 02, 2018 5:00 pm

Im sorry but this is all nonsense. The sound of a synth or an effect has nothing to with with multiplication or division. Its how well your filter or oscillator or whatever is coded. Lets say that the maximum volume is 1. You want to lower the volume of the oscillator, so you multiply it by 0.5. Then the output will be 0.5. Now if you divide by 2, you also get 0.5. So what you are saying that the the first 0.5 sounds better than the other 0.5...It makes no sense.
adamszabo
 
Posts: 426
Joined: Sun Jul 11, 2010 7:21 am

Re: Useful Tip: De-Zippers and result of Multiplication

Postby MichaelBenjamin » Mon Nov 05, 2018 10:28 am

It's not nonsense, for example a ramp ranging from -0.5f to 0.5f sounds different compared to a ramp that goes from 0.0f to 1.0f and subbed 0.5f.
Every math operation changes the color of sound, you must understand this.
MichaelBenjamin
 
Posts: 62
Joined: Tue Jul 13, 2010 1:32 pm

Re: Useful Tip: De-Zippers and result of Multiplication

Postby adamszabo » Mon Nov 05, 2018 11:24 am

Umm....no?

If you have a ramp that goes from -0.5 to 0.5 and 0 to 1 then subtract 0.5, you just push the phase of it by half a cycle. There is no difference in sound quality, like the OP says.
Attachments
ramp.jpg
ramp.jpg (37.96 KiB) Viewed 6552 times
adamszabo
 
Posts: 426
Joined: Sun Jul 11, 2010 7:21 am

Re: Useful Tip: De-Zippers and result of Multiplication

Postby wlangfor@uoguelph.ca » Mon Nov 05, 2018 4:14 pm

here's a comparison of two stock eq's. The first one includes My multiplication fixes.
Notice that Mine has no distortion?

The stock one using division clips.

I'm glad We have the chance to debate over these things because the more developers that
understand the effect of mathematics on an emulation of fortran; The more semantically perfect Our
end product will be.

The only thing I notice though however is that maybe on the graphics end division might be better.
It's all about timing. I suppose eventually I could rewrite the stock eq so that it is smooth flowing and
has multiple bands and such.

It's quite a nice eq; Anything could be achieved with it; Especially with multiplication.
Try this example (works in fl studio's latest fl synthmaker/flowstone application).
distortion no distortion.fsm
Stock EQ: Multiplication / Division example
(63.08 KiB) Downloaded 286 times


Try these EQ's with various styles of music and sounds. It will become clear to You that the versions
using division crackle and the sound outputted is truncated and clipped :(.
Download VST: LA Bands 15 Band EQ
My Website http://www.leattol.com
User avatar
wlangfor@uoguelph.ca
 
Posts: 584
Joined: Tue Apr 03, 2018 5:50 pm
Location: Penetanguishene, Ontario, Canada

Re: Useful Tip: De-Zippers and result of Multiplication

Postby tulamide » Mon Nov 05, 2018 5:43 pm

There is no magic involved in maths!

I didn't think I needed to point that out. There is no magical switch of behaviour of a value depending on how you get to it.

Whatever you do in Flowstone, in the end there is a small buffer of values. This buffer is sent to the ASIO driver (or whatever else you use), and the driver sends it to the DAC. The DAC however only knows the current value. It has no history available for that value, that explains how it was achieved mathematically. It doesn't care if multiplication or division (etc.) is involved; 0.5 means 0.5. Always and ever.

I think you are mixing it up with inaccuracies that can happen during the process of calculating. That is due to the limits of the used data formats. A 32-bit-float ("single precision") is so limited in the amount of bits, that it isn't able to accurately display certain values. In such cases it passes the nearest value it can display. This happens with all kinds of operators, since it is data format dependend, not operation dependend. However, division is a more complex task for a processor than multiplication (it uses more cpu cycles), which increases the chance of such an inaccuracy, compared to multiplication.

The difference to what was claimed in this thread is, that the actual value is changed. Instead of 0.5 a 0.49999999989 might arrive at the DAC. And of course that makes a difference. Because it is not the correct value.

However, there is lots of literature about this topic (plus the topic of denormals, which come to existence due to the same restriction of the data format, and some solutions. They indeed have to do with the order of operations and the used operators, but again, this is a result of single precision floats, not of magic in maths!
tulamide
 
Posts: 2025
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Useful Tip: De-Zippers and result of Multiplication

Postby MichaelBenjamin » Mon Nov 05, 2018 8:46 pm

@adamszabo, what you built is not what i meant:

struct ramp_bi {
float phase = -0.5f;
void adv( float frq ) {
phase += frq;
phase = phase >= 0.5f ? phase - 1.0f : phase;
}
};

struct ramp_uni {
float phase = 0.0f;
void adv( float frq ) {
phase += frq;
phase = phase >= 1.0f ? phase - 1.0f : phase;
}
};

if you advance these ramps by same frq amount, you'll get different results, which will accumulate the longer the ramp runs, bcs of float distribution. And i thought the point was exactly these inaccuracies, not? like when you want to do a very long sound with most accurate pitch you're better off with a ramp that goes bi from -0.5 to 0.5 than from 0.0 to 1.0, i know, maybe it's had to hear, but it's certainly there.

edit i attached old osm format as demo (i suppose just rename to fsm) - what you can see is that the uni ramp is less precise than the bi ramp. and yes @tulamide it's the result of floating point distribution, not magic, but even then what number type if not the floating points are borderline magic.
Attachments
bi_vs_uni_float_ramp.osm
(181.17 KiB) Downloaded 283 times
MichaelBenjamin
 
Posts: 62
Joined: Tue Jul 13, 2010 1:32 pm

Next

Return to DSP

Who is online

Users browsing this forum: Google [Bot] and 5 guests