Hello all, I have started to build a compositional framework in ChucK and have come across a few language features that seem to be unsupported: - For the types of inheritance structures I am thinking about, it would be incredibly useful if I was able to call a parent class's method from within a child class using something like the `super` keyword. - It would also be really awesome if I could pass a "type" as a parameter. - Not crucial at all, but it would be convenient if subclassing a `UGen` allowed you to use the chuck operator on instances of your class just like other ugens, i.e. `MyPiano p => dac`. I am interested to know if there has been work on these features since the release I am running, and if so where I can go about acquiring a more recent build. If there has not been any development on these features, I would be interested in getting to know the problems a bit more and determining if I can contribute to their development. Are any of these issues inherently difficult due to an aspect of ChucK's implementation? Let me know if I can clarify at all. Thanks! ---------- Colin Sullivan
On 30/11/2011, Colin Sullivan
Hello all,
Hey Colin!
I have started to build a compositional framework in ChucK and have come across a few language features that seem to be unsupported:
- For the types of inheritance structures I am thinking about, it would be incredibly useful if I was able to call a parent class's method from within a child class using something like the `super` keyword.
You are right. That kind of advanced class/type usage is simply a bit underdeveloped.
- It would also be really awesome if I could pass a "type" as a parameter.
I've thought about that too, though I also have a suspicion that with more advanced type&class functions we might not even need that. I'm not sure, I'll defer to the real theoretical experts.
- Not crucial at all, but it would be convenient if subclassing a `UGen` allowed you to use the chuck operator on instances of your class just like other ugens, i.e. `MyPiano p => dac`.
Yes. That, IMHO *is* critical. On the bright side; some work on that has been done as that mysteriously started working a while ago. I heard gossip that more work is being done right now on custom and user build UGens that should go in the next version.
I am interested to know if there has been work on these features since the release I am running, and if so where I can go about acquiring a more recent build.
Well, that depends on what release you are running :-). The most recent regular version is up on the site as a binary for OSX and Windows and as source for Linux. If you need the latest there is the SVN repository from which you can build your own. I can look up the location if you'd like. I am not aware of any changes to the class system there though. Worst case is you are running that .deb package, last time I checked that was quite out of date and you'd receive a lot of benefits from opdating by compiling your own (not so hard and downright easy after the first time).
If there has not been any development on these features, I would be interested in getting to know the problems a bit more and determining if I can contribute to their development. Are any of these issues inherently difficult due to an aspect of ChucK's implementation? Let me know if I can clarify at all.
I think I'd personally advocate fixes for the bugs in the type system before new features there. Bug hunting has been done there, I think the community has found and documented most of the bad things there. As I see it we now need somebody who really knows that structure to take a look at it. This practically depends on Ge having spare time which seems to be a bit of a problem. That's probably a problem for Ge first and fore-most.. :-/ As for the UGens, I heard very nice gossip. More in general; if you have things you can't accomplish due to a lack of features you can always ask for help working around that. ChucK *is* a bit of a simple language (which is nice too, in many ways!) but you can typically accomplish what you need, even if it might not look very elegant by -say- C++ standards. Hope that helps a bit. Kas.
Thanks much for the feedback!
I've figured out the UGen subclassing and it was a relief to hear it
working :) I was using an `output` method before.
The release of ChucK I am using is `1.2.1.4-beta-1` which is an OS X build
from a link Spencer posted not too long ago.
I will look through the type system, thanks for the advice.
----------
Colin Sullivan
On Wed, Nov 30, 2011 at 12:23 AM, Kassen
On 30/11/2011, Colin Sullivan
wrote: Hello all,
Hey Colin!
I have started to build a compositional framework in ChucK and have come across a few language features that seem to be unsupported:
- For the types of inheritance structures I am thinking about, it would be incredibly useful if I was able to call a parent class's method from within a child class using something like the `super` keyword.
You are right. That kind of advanced class/type usage is simply a bit underdeveloped.
- It would also be really awesome if I could pass a "type" as a parameter.
I've thought about that too, though I also have a suspicion that with more advanced type&class functions we might not even need that. I'm not sure, I'll defer to the real theoretical experts.
- Not crucial at all, but it would be convenient if subclassing a `UGen` allowed you to use the chuck operator on instances of your class just like other ugens, i.e. `MyPiano p => dac`.
Yes. That, IMHO *is* critical. On the bright side; some work on that has been done as that mysteriously started working a while ago. I heard gossip that more work is being done right now on custom and user build UGens that should go in the next version.
I am interested to know if there has been work on these features since
the
release I am running, and if so where I can go about acquiring a more recent build.
Well, that depends on what release you are running :-). The most recent regular version is up on the site as a binary for OSX and Windows and as source for Linux. If you need the latest there is the SVN repository from which you can build your own. I can look up the location if you'd like. I am not aware of any changes to the class system there though. Worst case is you are running that .deb package, last time I checked that was quite out of date and you'd receive a lot of benefits from opdating by compiling your own (not so hard and downright easy after the first time).
If there has not been any development on these features, I would be interested in getting to know the problems a bit more and determining if I can contribute to their development. Are any of these issues inherently difficult due to an aspect of ChucK's implementation? Let me know if I can clarify at all.
I think I'd personally advocate fixes for the bugs in the type system before new features there. Bug hunting has been done there, I think the community has found and documented most of the bad things there. As I see it we now need somebody who really knows that structure to take a look at it. This practically depends on Ge having spare time which seems to be a bit of a problem. That's probably a problem for Ge first and fore-most.. :-/
As for the UGens, I heard very nice gossip.
More in general; if you have things you can't accomplish due to a lack of features you can always ask for help working around that. ChucK *is* a bit of a simple language (which is nice too, in many ways!) but you can typically accomplish what you need, even if it might not look very elegant by -say- C++ standards.
Hope that helps a bit. Kas. _______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
On 30/11/2011, Colin Sullivan
Thanks much for the feedback!
I try, I don't know everything either... :-)
I've figured out the UGen subclassing and it was a relief to hear it working :) I was using an `output` method before.
Check. You can subclass them to turn a big UGen into a specialised one with simplified members for your purpose. You can't get to the actual DSP, at least not right now. Word on the proverbial street has it that that will be fixed.
The release of ChucK I am using is `1.2.1.4-beta-1` which is an OS X build from a link Spencer posted not too long ago.
That should be fine, then.
I will look through the type system, thanks for the advice.
If you could make any progress there then that would do wonders for your popularity, at least in our little club. If the issues there make you run into any walls then shout; there are tricks here and there. Sadly once you start to get tricky with the types then you also tend to run into the garbage collector. if that happens some extra assignments (using "@") can help, those increase the reference count. Admittedly that's slightly like fixing a spacecraft with duct-tape. Yours, Kas.
participants (2)
-
Colin Sullivan
-
Kassen