SynthMaker

Math help

Archive · 2005 14 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

unkargherth ·

Given a set of n 2d points, in form (x0,y0)...(xn,yn) where

xn >x(n-1) always 0<yn<1

Is there and easy way to find a curve that meets following requirements

.- approximates all the points reasonable well (a perfect matcth would be nice but not strictly necesary) .- be a non polynomial curve .- be continuous up to second derivative .- for z beign any point in the result curve , 0<=z<=1

I'm thinking of something like splines ( i've see them but i don't know it from math point of view, so sorry if i'm saying something really stupid)

Sk ·

First, I have to say that a collection of vectors from (x0,y0) to (xn,yn) is made up of n+1 elements 😀

Secondly, Why don't you want it to be polinomial?

Thirdly, I say it because I think the only way to have it without poly series is the Fourier series, but as of now I can't think of anything but creating a Taylor then converting it to a sum of sines and cosines (ie Fourier). I'll try and search in Matlab, if I manage to find some spare time 🙂

NothanUmber ·

The slides from our cg prof offer a good subsumption on several techniques with pros and cons etc: <edit> The link didn't work, see below </edit>

Greetings, NothanUmber

unkargherth ·

SK: i prefer non polynomial because in polynomials a small change in the coords has a big impact in the whole curve, what is not an issue in splines.

Nothanumber:yunfortunately your link request a username/password to access

thanks to you ywo anyway.

NothanUmber ·

sorry, here a smaller version (just a collection of jpeg-slides with the same content) that should be accessible without a password: http://home.in.tum.de/~strixner/cg-slides17.zip

NothanUmber ·

I just saw that the slides are rather short on the b-spline topic - and that should be the thing you need. (But the step from bezier curves to b-splines is not too big so the slides should nontheless be helpful) Here another link that elaborates more on b-splines: http://www.cl.cam.ac.uk/Teaching/2000/A ... node4.html (There is also a little bit more on subdivision curves in that article)

unkargherth ·

Thanks nothanumber.Great article although a bit overhelming for my math level ( an non beign english my mother tongue) Anyway, as far as i understood, seems a bit computationally expensive to be implemented for near-realtime, unless somebody points me to a really fast way to do it

Tom7777 ·

I think you lot might like this maths site - http://mathworld.wolfram.com/

NothanUmber ·

Tom7777 wrote: I think you lot might like this maths site - http://mathworld.wolfram.com/

Nice site!

unkargherth wrote: seems a bit computationally expensive to be implemented for near-realtime

Have a look at the pictures for the de Casteljau construction of Bezier curves e.g. on the cg-slides. That illustrates the principle behind the recursion Ni,k(t), it's just a linear interpolation between points on lines that were determined by the last recursion steps. So the depth of the recursion (dependant on the degree of N (or P between two knot points)) and the number of base points gives you two nice knobs to tune the precision/speed ratio to meet your requirements. Here some nice applets (these are part of some kind of tutorial that is not finished yet but looks very promising. There you can for example see the de Casteljau construction in action and some "real time b-splines" 😉 )

http://i33www.ira.uka.de/applets/mocca/ ... nhalt.html

Another nice applet were you can see various interpolation techniques (b-spline amongst others) in action is here: http://www.ads.tuwien.ac.at/docs/lva/mmgdv/k1___013.htm (the site is german, just search for "Ipax II" and click on the start button on the right)

Greetings, NothanUmber

NothanUmber ·

Btw.: If you need REALLY many spline curves / surfaces etc. the best way to accomplish that is using a ... graphic card (either a professional one with curve support or a "not so professional one" with the right drivers - the functions are just disabled for consumer cards). I don't understand why there are not many music-software programmers out there that use the respectable processing power of these new programmable graphic cards (E.g. I know of some very successfull attempts to run the calculations for flow simulations completely on graphic cards - with a speed increase of factors greater then 10 compared to a similar program that only uses the main processor). Could be an idea for Synthmaker 2... 😉

jorge ·

NothanUmber wrote: Btw.: If you need REALLY many spline curves / surfaces etc. the best way to accomplish that is using a ... graphic card (either a professional one with curve support or a "not so professional one" with the right drivers - the functions are just disabled for consumer cards). I don't understand why there are not many music-software programmers out there that use the respectable processing power of these new programmable graphic cards (E.g. I know of some very successfull attempts to run the calculations for flow simulations completely on graphic cards - with a speed increase of factors greater then 10 compared to a similar program that only uses the main processor). Could be an idea for Synthmaker 2... 😉

Yeah, Stefan suggested that too, it's a good idea but dont those cards cost a a fortune? is the power/price ratio good?

NothanUmber ·

Hm, that will probably depend on the case. If you have a big array of numbers where a certain (not too complex) algorithm should be applied to every one of them (essentially a program that would also be optimizable well for "old school supercomputer" vector processors. E.g. the flow simulation people translated parameters of the simulation into "textures" and then applied shaders to it.) Then you won't get anything faster for the money (kudos to all the gamers that allow mass production 😉 ). Well eventually there is a way to top that - let's see whether the Cell Chip fullfills what IBM promises. A nordlead modular like hardware synth in form of a synth-software-dvd, a Playstation 3 and a memory card for presets could rock... 😉 .

NothanUmber ·

GameSpot wrote: [...] Out of the box, the PS3 will have the capability to support seven Bluetooth controllers. It will also have six USB slots for peripherals--four up front and two in the back.

Ah, these USB-slots were certainly specifically designed for my midi-instruments, the extremely-cheap-superportable-überspeed-extraflexible-hardwaresynth-vision continues to take shape 😀

infuzion ·

jorge wrote: NothanUmber wrote: Btw.: If you need REALLY many spline curves / surfaces etc. the best way to accomplish that is using a ... graphic card (either a professional one with curve support...))

Yeah, Stefan suggested that too, it's a good idea but dont those cards cost a a fortune? is the power/price ratio good?

sounds neat... exactly what models/chipsets are we looking at here?

Power/Price I would think may end up being good; I quickly found a pro NVIDIA Quadro FX 540 for $300... most music DSPs run that much & are harder to find.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.