electro-music.org   Dedicated to experimental electro-acoustic
and electronic music
 
 Front Page  |  Radio  |  Forum  |  Media  |  Playlists  |  Wiki
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 
 Forum index » DIY Hardware and Software » ChucK programming language
Some more Basic Feature requests
Post new topic   Reply to topic Moderators: Kassen
Page 2 of 2 [38 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: Previous 1, 2
Author Message
kijjaz



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

PostPosted: Wed Jul 02, 2008 9:38 am    Post subject: Reply with quote  Mark this post and the followings unread

and I hope chuck can do more console things hmm..
for example....
connect to FTPs... telnet..
wget some stuffs.... connect to www... (text-base is ok hahaha)
log on to IRC... and chat with us!!! -_-"
oh this sounds like a ChucK server.

hmm i'm really interested in the IRC idea now.
is there a simple way to do it with this version of ChucK?
- - -

some more feature requests again:

I'd like ChucK to be able to write and modify a ChucK source...
not neccessarily by writing text to a file..
but right there from the memory..

for example...

["SinOsc s => dac; second => now;",
"s.freq(10000); second => now;"] @=> string Code1[];
somekindofa spork ~ Code1 => int ShredID;

to run the code right away..!!
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 18, 2008 12:57 pm    Post subject: Reply with quote  Mark this post and the followings unread

I'd love to have UGens that perform signal transformation with these mathematical operators.
(inspired by how easy I can do it in SuperCollider)

Abs (should be the same as FullRect)
Floor, Ceil, Frac (output only the fractional part of the incoming signal value)

this Frac would be nice for simulating the syncing of Phasor

Sign (output = -1 if negative, output = 0 if zero, output = 1 if positive)
Squared, Cubed, Sqrt, Exp
Mtof, Ftom (for conversion between midi note number and frequency)
Log, Log2 (log base 2), Log10 (log base 10)
Trigonometry functions (also arc and hyperbolic)
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
rogan



Joined: Dec 16, 2007
Posts: 83
Location: Urbana, IL
Audio files: 5

PostPosted: Tue Nov 18, 2008 1:07 pm    Post subject: Reply with quote  Mark this post and the followings unread

@ Kijjaz -- I can totally see how these would be useful, but as UGens, they would have to evaluate every single sample, and this might be a bit much (especially once you get into trig, log and hyperbolic evaluation of the input signal).

What would be interesting is to have different control rates. I've talked to friends about how it would be cool to have different blackholes, that ticked at different rates -- but I'm guessing this would screw things up, because UGens like SinOsc are probably coded as a time-series, that need to evaluate once per timestep in order to keep the frequency on time....

Anyways, that was a bit convoluted, but it's my 2 cents....
Back to top
View user's profile Send private message
kijjaz



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

PostPosted: Tue Nov 18, 2008 10:34 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yes, I agree. that can be implemented to this kind of UGens also.
For example, we can set 64::samp => (The Operator UGen's Name).kr;
and it'd calculate every .kr

One thing I want it this way is because there are many cases that I just want to do the calculation really every sample,
but don't wanna program a function and spork a shred for that.
especially in live situation where i wanna program quickly.
so with that, more CPU Consumption is okay because we can get the result that we want.

One thing that's gonna be very easy with this,
is designing a feedback system / dynamic system that has these functions as a part of it.
It'd be very easy to connect all the functions in 1-2 lines
and produce very exciting result, without having to spork anything.
and if the user wants to adjust it to be more efficient if some UGens need not to be calculate at sample rate,
kr can be set for an individual UGen.

Hmm.. What do you think?
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 6221
Location: near Austin, Tx, USA
Audio files: 270

PostPosted: Wed Nov 19, 2008 7:40 am    Post subject: Reply with quote  Mark this post and the followings unread

I would like to also chime in by mentioning that having these functions as kijjaz describes would enable creative use of ChucK in unexpected ways. For example, I was able to implement a sample-rate neural net by using existing ugens but could not also implement the backprop learning algorithm in this way because of the limited set of ugens.

If we had all of the Math functions as ugens then we could do wild and funky things like that. It would enhance the power of ChucK significantly.

Also I agree that having slower sample rate blackholes would help a lot.

Just my two cents as well, cheers!

_________________
"Let's make noise for peace." - Kijjaz
Back to top
View user's profile Send private message Send e-mail
Kassen
Janitor
Janitor


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

PostPosted: Wed Nov 19, 2008 4:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

Some notes;

I really don't think control-rate is a problem that we have; we already have one of the most detailed (if not *the* most detailed?) ways of managing it around. You can express control-rate down to a fraction of a CPU cycle of your AMD/Pentium; that's quite impressive.

I do agree with what Kijjaz said above that this can be somewhat involved to set up in improvisation situations and after the first few times such code is quite boring to write.

Because of these factors I'd rather look into importing "libraries" of frequently used functions, as well as advanced code-completion for the (mini)Audicle.

My .02€

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



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

PostPosted: Wed May 27, 2009 7:05 pm    Post subject: Reply with quote  Mark this post and the followings unread

i just got some more feature requests:

- A Global Patchbay: it can be programmed as an array of Gains that can be accessed by any shreds running in the VM. it'd be like declaring in a public class, but would it be nice to have it available easily?

- A SndBuf-like UGen that does not have to read the whole file into the memory when .read .. so that if we say .read to it, it will begin to read, but won't contain the whole file, and there can be some parameters that says how much of the file have been read and is it all finished. So with this, we can have a SndBuf style UGen that can read a wave file lazily but safely, without taking the risk of glitching the whole virtual machine.

- Fixing Phasor, SawOsc, SqrOsc, TriOsc, PulseOsc's strange phase syncing (especially when it's synced to negative or very negative or very positive value resulting in a strange output)

- can Blit UGen family sync to the signal chucked to it?

Thank you ^_^. nothing more for now.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Kassen
Janitor
Janitor


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

PostPosted: Thu May 28, 2009 7:00 am    Post subject: Reply with quote  Mark this post and the followings unread

kijjaz wrote:

- A Global Patchbay: it can be programmed as an array of Gains that can be accessed by any shreds running in the VM. it'd be like declaring in a public class, but would it be nice to have it available easily?


Sounds like it might be a good idea to look into developing something like that once the hinted at plugin system arrives? I want this too though I also feel that the array based version I did a while back serves nicely.

Quote:
- A SndBuf-like UGen that does not have to read the whole file into the memory when .read .. so that if we say .read to it, it will begin to read, but won't contain the whole file, and there can be some parameters that says how much of the file have been read and is it all finished. So with this, we can have a SndBuf style UGen that can read a wave file lazily but safely, without taking the risk of glitching the whole virtual machine.


Doesn't SndBuf already have a function for incremental loading of a file?

Quote:
- Fixing Phasor, SawOsc, SqrOsc, TriOsc, PulseOsc's strange phase syncing (especially when it's synced to negative or very negative or very positive value resulting in a strange output)


Best would probably be to document the exact bug and post it on the Wiki. I don't know anything about this one.

Quote:

- can Blit UGen family sync to the signal chucked to it?


Probably not. Those are anti-aliased and having oscillators that are both anti aliased and can also be modulated is non-trivial. You certainly aren't going to get a digital hard-sync while also having a anti-aliased signal. Sorry; don't blame me, blame mathematics :¬)

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



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

PostPosted: Sat May 30, 2009 1:14 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hmm.. And how do I make a global Gain array like that? Is it allowed in the public class?

and SndBuf.. OH!! ... hmm ..

and Blit___ .. hmm i see, syncing like SinOsc might not be a good idea for those Blit things mathematically, but being able to chuck in a frequency is gonna be useful.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Kassen
Janitor
Janitor


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

PostPosted: Sat May 30, 2009 3:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

kijjaz wrote:
Hmm.. And how do I make a global Gain array like that? Is it allowed in the public class?


Here you go; http://wiki.cs.princeton.edu/forums.html/Buses

Almost like dac&adc, except that it goes like;
SinOsc foo => bus.chan[2];

instead of;

SinOsc bar => dac.chan(2);

Quote:
and Blit___ .. hmm i see, syncing like SinOsc might not be a good idea for those Blit things mathematically, but being able to chuck in a frequency is gonna be useful.


It's not just syncing; fm style modulation will result in side-bands that might be over the Nyquist frequency. I don't know how you'd create anti-aliased oscillators with modulation inputs, there must be some theory on this but I anticipate heavy-duty math is involved.

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



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

PostPosted: Sun May 31, 2009 4:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

Oh! Thanks Kassen. this is the patchbay i was looking for.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
Kassen
Janitor
Janitor


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

PostPosted: Mon Jun 01, 2009 11:00 am    Post subject: Reply with quote  Mark this post and the followings unread

You're welcome!

I felt a bit silly posting that code because it's so simple but it's really nice to have a internal pachbay

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



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

PostPosted: Mon Jun 01, 2009 5:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

i didn't even know that it's possible coz i only read about the static class that it doesn't support UGens yet, but with this it really does support UGens in another sense.
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 2 of 2 [38 Posts]
View unread posts
View new posts in the last week
Goto page: Previous 1, 2
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
Log in
Username:     Password:      Log me on automatically each visit    


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2026 by electro-music.org