electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » DIY Hardware and Software » ChucK programming language
dealing with chaos and patterns in chuck
Post new topic   Reply to topic Moderators: Kassen
Page 1 of 1 [12 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Thu Aug 31, 2006 1:37 pm    Post subject: dealing with chaos and patterns in chuck
Subject description: chaos for algorithmic composition & sound design
Reply with quote  Mark this post and the followings unread

i've been into chaos & fractal lately.
actually i love them at first sight when i saw fractal images on a book cover when i'm in 2ndary school.
now the same passion comes back to me again.

i'll be around this thread to share some of my experiments
and ideas on applying chaos, fractal, or math patterns to musical synthesis ideas.

today i had a new idea i didn't tried before.
it's... threesome oscillator.
osc1 => osc2; osc2 => osc3; osc3 => osc1;
(with phase-distortion oscillator sync mode)
i was wondering how i'm gonna control them.
actually.. seeing it explode is cool enough Twisted Evil

so here i goes: ..

Code:
// kijjaz-FullNervousSystemScan.ck
// connect threesome to dac
sawosc s1 => dac;
sawosc s2 => pan2 p1 => dac;
sawosc s3 => pan2 p2 => dac;
// make a sandwish
-1 => p1.pan;
1 => p1.pan;
// protect your ear
0.4 => dac.gain;
// set osc sync type to phase-distortion
2 => s1.sync => s2.sync => s3.sync;
// therapeutic gain for all
0.5000008 => s1.gain => s2.gain => s3.gain;
// let the threesome starts
s1 => s2;
s2 => s3;
s3 => s1;

while(true) 1::second => now;
// don't forget to turn off .. lol


please give me some comments hehe.. (i'm having fun already)
try adjusting gain from 0.5000008 to any other number between 0-1
but somewhere near 0.5 gives interesting sweeps

- kijjaz
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
ultrasine



Joined: Aug 31, 2006
Posts: 16
Location: Europe

PostPosted: Fri Sep 01, 2006 2:09 am    Post subject: Re: dealing with chaos and patterns in chuck
Subject description: chaos for algorithmic composition & sound design
Reply with quote  Mark this post and the followings unread

Dude - I don't hear anything....
Back to top
View user's profile Send private message Visit poster's website
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Fri Sep 01, 2006 7:32 am    Post subject:   Reply with quote  Mark this post and the followings unread

Shocked oh thanks.. i'll try running it on a diffrent machine ^^"
i programmed that on miniAudicle 0.1.3.5 (alpha) on windows.
it generates a messy resonating sweeps for some time.
i'll let some other people test the code also. Very Happy
- - -

tested on my ubuntu using OSS sound system: i don't here anything .. lol
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
ian-s



Joined: Apr 01, 2004
Posts: 2669
Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626

PostPosted: Fri Sep 01, 2006 1:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Might be the same bug that makes the text in all your posts turn blue :¬P
Back to top
View user's profile Send private message
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Fri Sep 01, 2006 2:58 pm    Post subject:   Reply with quote  Mark this post and the followings unread

after playing with the threesome,
i've noticed about setting an oscillator's sync to 2 (phase-distortion sync)
- triosc, sawosc, sqrosc works fine.
- sinosc doesn't work .. it sounds just like the same, no modulation.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
ge



Joined: Aug 13, 2006
Posts: 108
Location: Palo Alto, CA

PostPosted: Fri Sep 01, 2006 8:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

kijjaz wrote:
after playing with the threesome,
i've noticed about setting an oscillator's sync to 2 (phase-distortion sync)
- triosc, sawosc, sqrosc works fine.
- sinosc doesn't work .. it sounds just like the same, no modulation.

Shocked a bug! Thank you for reporting this. There are some inconsistencies in the sinosc, triosc, pulseosc, sqrosc, and phasor. For example, sync have different meanings as you discovered. I have fixed this. now all oscillators can sync freq to input, phase to input, fm synth. This will mean changes to triosc pulseosc sqrosc which may break some stuff. However, it's better to fix this as soon as possible in 1.2.0.7.

Thanks again!
Back to top
View user's profile Send private message Visit poster's website
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Wed Sep 06, 2006 1:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

i've been playing around with some FM idea today..
and i noticed that some little-chaotic FM parameters sounds something like physical modeling..
i guess i can hear some resonant frequency shifting or something..
it sounds quite physical to me heheh.


Code:
sinosc s1 => dac;
0.5 => dac.gain;
sinosc s2 => blackhole;
.055 => s2.freq;
triosc s3 => blackhole;
while(true) {
s1.last() * 440 + 440 => s3.freq;
s2.last() * .5 + .5 => s1.gain => s3.gain;
s3.last() * 1100 + 550 => s1.freq;
1 :: samp => now; }


this one's more chaotic
but i can feel something resonating in it again


Code:
sinosc s1 => dac;
0.5 => dac.gain;
sinosc s2 => blackhole;
.055 => s2.freq;
triosc s3 => blackhole;
while(true) {
s1.last() * 11000 + 550 => s3.freq;
s2.last() * .5 + .5 => s1.gain => s3.gain;
s3.last() * 550 + 550 => s1.freq;
1 :: samp => now; }


any more ideas?
controlling these things can be hard sometimes..
sometimes it suddenly stopped after a few chaotic behavior lol..
i like its resonating character so much ^^"
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Tue Nov 07, 2006 3:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

more chaos from FM ideas..
Code:
SinOsc s1 => SinOsc s2 => s1 => dac;
TriOsc s3 => s2;
s1.freq(100); s2.freq(100); s3.freq(150);
s1.sync(2); s2.sync(2);
20 :: second => dur d;
second / samp => float samplerate;
1 => int i;
while(i++) {
   ( i * 10 / samplerate => s2.gain ) * .1 => s3.gain;
   samp => now;
}

i can feel there's a Ripple in the timbre..
is that something about Bessel Function?

anyway this idea i've just tried gives out really nice FM drone sounds..
i played it while i was taking a nap and it was so hypnotic heheh.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
chuckles



Joined: Apr 02, 2007
Posts: 72
Location: San Diego, California

PostPosted: Mon Jun 11, 2007 3:05 pm    Post subject: Reply with quote  Mark this post and the followings unread

I love these cool little projects...
I would have thought that i would overflow, but apparently its 32 bits. I left it running for 20 minutes or so with a check of i every 20000 increments or so...
After i > 5,000,000 or so it started giving the more interesting timbres...
The manual says that by default floats are double precision. Does the meaning of that depend on what CPU the executable is targeted for? (i.e., 32 or 64 bits?)

kijjaz wrote:
more chaos from FM ideas..
Code:
SinOsc s1 => SinOsc s2 => s1 => dac;
TriOsc s3 => s2;
s1.freq(100); s2.freq(100); s3.freq(150);
s1.sync(2); s2.sync(2);
20 :: second => dur d;
second / samp => float samplerate;
1 => int i;
while(i++) {
   ( i * 10 / samplerate => s2.gain ) * .1 => s3.gain;
   samp => now;
}

i can feel there's a Ripple in the timbre..
is that something about Bessel Function?

anyway this idea i've just tried gives out really nice FM drone sounds..
i played it while i was taking a nap and it was so hypnotic heheh.
Back to top
View user's profile Send private message
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Tue Jun 12, 2007 4:46 am    Post subject: Reply with quote  Mark this post and the followings unread

chuckles wrote:
The manual says that by default floats are double precision. Does the meaning of that depend on what CPU the executable is targeted for? (i.e., 32 or 64 bits?)


That's a realy interesting question. I seem to remember something like that was debated ont he mailing list a LONG time ago but I supose you could also simply ask Ge or Spencer.

If it differes it would be pritty cool to write something in ChucK that'd detect the curent resolution of floats, like that nice trick to detect the sample-rate.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
chuckles



Joined: Apr 02, 2007
Posts: 72
Location: San Diego, California

PostPosted: Tue Jun 12, 2007 8:41 am    Post subject: Reply with quote  Mark this post and the followings unread

OK, remember I'm not a programmer...but...the line
Code:
20 :: second => d;

What is that for? I don't see that d is used anywhere else in that little program.
kijjaz wrote:
more chaos from FM ideas..
Code:
SinOsc s1 => SinOsc s2 => s1 => dac;
TriOsc s3 => s2;
s1.freq(100); s2.freq(100); s3.freq(150);
s1.sync(2); s2.sync(2);
20 :: second => dur d;
second / samp => float samplerate;
1 => int i;
while(i++) {
   ( i * 10 / samplerate => s2.gain ) * .1 => s3.gain;
   samp => now;
}

i can feel there's a Ripple in the timbre..
is that something about Bessel Function?

anyway this idea i've just tried gives out really nice FM drone sounds..
i played it while i was taking a nap and it was so hypnotic heheh.
Back to top
View user's profile Send private message
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Thu Jun 14, 2007 3:53 pm    Post subject: Reply with quote  Mark this post and the followings unread

Ahhh that d ?
maybe i was preparing it for using later elsewhere but -_-"
it didn't do a thing there -_- sorry hahha -_-"
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic Moderators: Kassen
Page 1 of 1 [12 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » ChucK programming language
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use