[Csnd] Wave terrain with simplex noise (enhanced perlin)
Date | 2020-07-18 22:27 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | [Csnd] Wave terrain with simplex noise (enhanced perlin) |
hi, i have experimented on another abstraction of the original wave terrain synthesis opcode of csound, where the terrain is not computed with two function tables anymore. Instead it is computed directly with a function f(x,y) -> [-1,1] As a first step i have set f(x,y) to a 2D simplex noise function which is an enhancement of the perlin noise. The wave is produced by running through the curve (t)->(x,y) and then call f(x,y) for each sample. the opcode is here, sounds nice ...: https://github.com/docb/csnd/blob/master/opcodes/simplexterrain.c usage: asigL simplexterrain 0.5, kcps, kx, ky, krx, kry, krot, kcurve, kparam kx,ky center of the curve 0-16 krx,kry for scaling the curve 0-16 krot - rotate the curve [0-2PI] kcurve 0=ellipse,1=lemniskate,2=limacon,3=cornoid,4=trisec,5=scarabeus,6=folium,7=talbot kparam curve parameter (continous 0-8) Btw. i have also refactored the wterrain2 opcode and made extra opcodes for lissajous and hypocycloid curves (they need an interface similar to the sterrain opcode). https://github.com/docb/csnd/blob/master/opcodes i will write docs for them soonish. Best, Christian Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2020-07-18 22:59 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Christian, This is awesome stuff. Can't wait to check it out. Hoping that it and your refactored wterrain2 opcodes can be added to the next Csound release! - sterrain sound awesome. And I am sure that these will too. Can you get in touch with me about a Zoom Developer and Friends meeting to which I would like to make sure you are invited? - I will try to reach you at this email address above, but it seems like it might not be your actual address. Dr. Richard Boulanger Professor of Electronic Production and Design Berklee College of Music Professional Writing and Technology Division On Sat, Jul 18, 2020 at 5:27 PM docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie> wrote: hi, |
Date | 2020-07-19 07:23 |
From | Alex Weiss |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
This is great. Would also love to see the simplex noise function as its own opcode if at all possible. Alex On Sat, Jul 18, 2020, 14:27 docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie> wrote: hi, |
Date | 2020-07-19 08:38 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
This is so nice. An inspired from your previous work with the superformula, I made an attempt at a superformula-waveshaper. It is pretty wild, in terms of controlling the parameters in an intuitive manner. Maybe I can show it at the meeting later today. Øyvind lør. 18. jul. 2020 kl. 23:27 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>: hi, |
Date | 2020-07-19 20:36 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
hi
this is a great idea, thanks for the demo, is the csd somewhere
available to research further on? -christian
|
Date | 2020-07-20 11:17 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
søn. 19. jul. 2020 kl. 21:37 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>:
|
Date | 2020-07-20 11:20 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Attachments | superform_shape.csd |
Here's the csd I showed yesterday. It is written for Cabbage but it should be relatively straightforward to replace line 33 to 58 with parameter assignments for ka, kb, km1, km2, kn1, kn2 and kn3. Then the 20 first lines can be deleted too as they only describe Cabbage GUI (but you can also just leave it there, when you run the csd on the command line these lines will be ignored). All best Øyvind man. 20. jul. 2020 kl. 12:17 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
|
Date | 2020-07-20 12:59 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Thanks for posting. Can't wait to check it out. Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music On Jul 20, 2020, at 6:20 AM, Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
|
Date | 2020-07-21 18:35 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
On 7/20/20 12:20 PM, Oeyvind Brandtsegg
wrote:
hi, thanks for sharing - i have made a small session playing bass
with it. i have never heard so extreme and different/interesting
distortions especially when playing deep - this is very cool! motivates also to check with an e-guitar. as we have seen similar in the demo, in some parameter settings
the problem is that the stroke on the string pushes to much or it gets completely unstable or on some it gets very
quietly (may be a scaling parameter could help here). i will check this by visualizing the curve while changing
parameters and playing - soonish best christian
|
Date | 2020-07-21 21:49 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Yes, I thought about using a sine wave at full scale as a reference input, and then using that output as a scaling reference amp, as well as using it for an oscilloscope display so the user can see the waveshaping shape. If you beat me to it you are welcome :-) tir. 21. jul. 2020 kl. 19:36 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>:
|
Date | 2020-07-22 00:40 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
On 7/21/20 10:49 PM, Oeyvind Brandtsegg
wrote:
:-) but i think my idea may be different, i would like to "visual" understand which curves have what impact on the output. but of course the goal is the same - to find suitable parameters for goals one can have.
|
Date | 2020-07-22 16:33 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Excellent. I will share my explorations soon, and look forward to seeing what you do with it. All best Øyvind ons. 22. jul. 2020 kl. 01:41 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>:
|
Date | 2020-07-24 09:10 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Attachments | superform_shape_2.csd |
Here's an attempt of the superformula waveshaper with an oscilloscope on a reference sine wave, showing how an ideal wave would be transformed by the shaper. I also added an attempt at auto normalization by measuring the amplitude of the shaped ideal wave compared to the amp of the clean ideal wave. Since the normalization factor would sometimes not be enough to contain the shaped output, I also added an option to raise the factor to a power of two. All very hackish, but seems to work as far as I've tested. The buttons upper right: polar version on/off normalization on/off power normalization on/off (when norm is on) limiter on/off limiter on reference wave on/off (so that the normalization will take the limiter into account) I also started looking at other formulas, and how to modify them to fit into this waveshaping form. Ideas for such formulas greatly appreciated. One unfinished attempt to be found on line 82 pp. How did you envision a visualization, Christian? all best Oeyvind ons. 22. jul. 2020 kl. 17:33 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
|
Date | 2020-07-24 12:14 |
From | Richard |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Does this create any sound? I do not get any... Richard On 24/07/2020 10:10, Oeyvind Brandtsegg
wrote:
|
Date | 2020-07-24 17:15 |
From | Rory Walsh |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Thanks for sharing Oeyvind. This is capable of some very rich textures. On Fri, 24 Jul 2020 at 12:14, Richard <zappfinger@gmail.com> wrote:
|
Date | 2020-07-24 17:46 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
hi, i think i have to install cabbage for that first, i check at the weekend ...
when looking at curves the superformula generalizes many existing
ones - but i would maybe check some simple ones where a polar equation exists like aT = ain*$M_PI*2 scarabeus: a1 = ka*cos(2*aT)+kb*cos(aT) however, it may also work with parameter equations talbot: ax = krx * cos(aT) * (1 + ka * sin(aT)*sin(aT)) or hypocycloid ax = krx*((1-a)*cos(ka*aT)+ka*kb*cos((1-a)*aT)) and something like computing the radius of the samples in ax,ay
or something else ... i also planned to look into this ;-)
currently i do it with an own written ffmpeg filter (and managed to place an osc server in it to trigger live parameters to the curve) - it is currently hard to share because i runs in a very old
fork of ffmpeg and you must be able to build ffmpeg from source
and its only tested on linux. but i think about to to write a similar simple java app where also the parameters are triggered via osc. best christian
|
Date | 2020-07-24 17:59 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Hi Richard, It is an effect processor, so transforms the sound you run through it. The first two lines of instr 1 reads audio in from your source of choice. If you do not want to run Cabbage, you can substitute all the chngets with p-files or static parameter values. all best Oeyvind fre. 24. jul. 2020 kl. 13:14 skrev Richard <zappfinger@gmail.com>:
|
Date | 2020-07-24 18:04 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Attachments | superform_shape_2.csd |
Thanks Christian, I will look into these formulas. In the meantime, here's another set of expansions with my hacks of transforming the gingerbreadman map and the ikeda map. The csd also includes variations for the csound opcodes polynomial and chebyshevpoly used in a similar manner. Oeyvind fre. 24. jul. 2020 kl. 18:46 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>:
|
Date | 2020-07-24 18:57 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
thanks for sharing, btw. the ikeda function you use is on the list of next terrains
i will check along with other complex functions here is a short visualization i made (of the function - not the map/attractor): https://www.youtube.com/watch?v=4wo2_kzFR5M best christian On 7/24/20 7:04 PM, Oeyvind Brandtsegg
wrote:
|
Date | 2020-07-24 19:11 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Nice :-) A small question: In your formula for hypocycloid ax = krx*((1-a)*cos(ka*aT)+ka*kb*cos((1-a)*aT))You use both a and ka variables, are these the same? So it should write ax = krx*((1-ka)*cos(ka*aT)+ka*kb*cos((1-ka)*aT)) Or does it mean something else? fre. 24. jul. 2020 kl. 19:57 skrev docB <000005d2745f1ec0-dmarc-request@listserv.heanet.ie>:
|
Date | 2020-07-24 19:21 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
oh yes "a" should be replaced with "ka". On 7/24/20 8:11 PM, Oeyvind Brandtsegg
wrote:
|
Date | 2020-07-25 20:52 |
From | docB <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE> |
Subject | [Csnd] Superformula waveshaper - was RE: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Attachments | sf_4_4.17_1_1_1_1_0.5.jpg sf_4_4_1_1_1_1_0.5.jpg sf_5_3_1_1_1_1_2.jpg sf_6_4_1_1_1_1_2.jpg SuperformulaU.pdf |
hi Oeyvind, regarding superformula: i have tried with eguitar and it works great - in my first tries i got out distorted sounds from the 70ths without having an amp simulation. i recognized the following while looking at the curves while trying parameters: if km1 and km2 are not integer it seems when changing a little on them away from an integer the sound does not change noticeably,but the curve dramatically. the curve gets a lot more complex (poles, length) and the sound does not change noticeably is because you would need far more amp to get completely through the curve - you will touch only a bit of the whole curve with 2 * PI see e.g. the difference of sf_4_4_1_1_1_1_0.5.jpg and sf_4_4.17_1_1_1_1_0.5.jpg in attachments where only m2 is changed from 4 to 4.17 (note in the second - i have fixed length i am drawing so it even
may be not complete) PHI must be in the range bm1*bm2* 2 * PI (or 4 PI depending on even/odd relations of the a and b terms) to complete the curve. so if i would have km1 = 2 and km2 = 1.001 i would need an amp of 1000 to touch all points of the curve. this also could explain why sometimes the attack of the incoming sound pushes to hard - simply because it touches other regions of the curve which may also have a big radius (or in the worst case "infinity" if the curve has a pole) which is then thankfully clipped away or "normed" away with your implementation
to use parameters for closed curves as i described in a mail here and in the docs of sterrain already (borrowed from the attached pdf): if n1 > 0 then 2*km1/km2 should not be getting an odd integer when multiplied with some other integer != 0. examples: m1=6 m2=4: 2*6/4 = 3 => curve has a pole m1=5 m2=3: 2*5/3 must be multiplied with at least multiples of 3 to get an integer which is then even => curve is closed. see the difference in the other two image attachments best christian
On 7/24/20 10:10 AM, Oeyvind Brandtsegg
wrote:
|
Date | 2020-08-03 06:59 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Wave terrain with simplex noise (enhanced perlin) |
Oeyvind. Thanks for sharing this inspiring Cabbage instrument with us. It's awesome. I appreciate being able to visualize the waveshaping and have so much control over the various formulas too. - there is a lot here to explore. (Maybe add an LFO? or add some Random knob twiddlers in the next version? They could help us enjoy the timbre space even more. ;-) ) Wonderful stuff. -dB Dr. Richard Boulanger Professor of Electronic Production and Design Berklee College of Music Professional Writing and Technology Division On Fri, Jul 24, 2020 at 12:59 PM Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
|