From CSWiki
Revision as of 13:54, 19 September 2008 by Kassen (talk | contribs) (Hopefully these will be fixed for the next release of ChucK)

Jump to: navigation, search

Hopefully these will be fixed for the next release of ChucK

Please enter the bug as descriptively as possible, with the shortly code that shows the symptom. Examples can be found here.

  • Giving Wurley.freq() (and quite likely other UGen member functions) "inf" as a parameter, for example as the result of a floating point div. by 0, will result in the whole VM getting stuck as the UGen starts taking 100% CPU. Quite possibly there are other situations where floats that are "not a number" will result in issues for UGens. One proposed partial solution would be to make sure parameters of type float are numbers before using them. Another topic for consideration would be extending watchdog to cover stuck UGens. Filed as a bug because it can mean losing the whole VM. More detailed debate on the list; sept 19th. --Kassen 13:54, 19 September 2008 (EDT)
  • Divide by 0 in integer math means a complete crash of the VM without notice. Proper behaviour would likely be dropping just the shred with a printed notice for debugging purposes. This has been mentioned before but most recently popped up on the forum, documented by UnderwaterBob, Antimon & Kassen. --Kassen 13:54, 19 September 2008 (EDT)
  • When a shred exits double connections to the dac aren't properly cleaned up, possibly resulting in beeps that can only be stopped by stopping the whole VM. This may or may not also affect inter-UGen connections which could be relevant in double connections to static UGens in public classes, I didn't test those. Example code on the list, posted sept. 15. --Kassen 12:49, 15 September 2008 (EDT) Fix in CVS according to Ge
  • Static primitive class members can't be set to a value at construction/initialisation like this;
class foo
   3 => static int bar;

As posted to the list. --Kassen 21:31, 9 September 2008 (EDT)

  • Increasing the size of a array that has a home-made class as it's type using .size() doesn't properly instantiate the new object(s). "<<" combined with "new" does. (As mentioned on the list aug10) --Kassen 15:40, 10 August 2008 (EDT)
  • Full out crashage when defining a class within a class, maybe that should simply be illegal like defining a function within a function is? Info with example by Pablo;


  • Sitar.pluck() doesn't work and giving Sitar very low notes results in errors, so many errors that it breaks up audio. I looked into it but had a hard time deciding what the desired functionality should be --Kassen 07:33, 7 December 2007 (EST).
  • .getchar() for the old keyboard interface doesn't adhere to the new (coherent) naming scheme yet, I think it should be .getChar() with the old one getting depreciated --Kassen 07:33, 7 December 2007 (EST).
  • a class that extends Event needs to be defined before it's called or there will be a complaint that the class doesn't have a member named "broadcast" or "signal". Example that will yield a complaint yet should be correct;
Trigger trig;
class Trigger extends Event { int target; }

(as reported on the list March3) --Kassen 14:06, 3 March 2008 (EST)

  • Seg-fault at overloaded functions returning non-identical-type arrays.
better error message, I think, but still seg-faults
  • more seg-faulting at something (probably) involving assignment to arrays in functions that were parameters (as per email, here for tracking) --Kassen 00:33, 27 March 2008 (EDT)

  • <<< 2 => int number >>>; --Kassen 22:33, 22 May 2008 (EDT)
now crashes/aborts in a different way;
chuck: chuck_type.cpp:2727: Chuck_Type* type_engine_check_exp_decl(Chuck_Env*, a_Exp_Decl_*): Assertion `value != __null' failed.
  • time and dur aren't evaluated correctly by "&&" if used as one of a multiple clauses for a "if" statement like;
if(second && now && true) <<<"yay">>>;

as debated on the list jul24 --Kassen 15:04, 24 July 2008 (EDT)

  • (add your own)

Fixed in

  • Probable typos in the source discovered by Moudi while attempting to build a ASIO MiniAudicle as well as various other issues and potentially questionable bits;

[[2]] (Ah, I just noticed this is already in the works)

  • PulseOsc.width() is write only (should be read-write according to the manual)
  • SqrOsc.width() exists but doesn't do a thing. Manual claims it works, Adam (on the list) suggested it should return .5 but not be writable. this makes sense as PluseOsc has this covered.--Kassen 05:56, 24 April 2008 (EDT)

Fixed in

  • Odd Envelope behaviour. Documentation and a suggested fix to be found here; [[3]]

Fixed in

  • Make sure members of classes get properly instantiated when the instances of the classes are implicidly defined in a array (as discussed on the list June10 to July7, found by Eduard) (ge: fixed and will be in
  • Arrays of Ugens over 10 locations long inside of classes will crash, like this; (ge: this should now work - part of the above fix)
// I picked this 10 at random, for length 5 it'll crash too
Foo x[10];
class Foo
    // at length 10 it'll run but this will crash(!!??)
    SndBuf array[11];

As posted to the list, July4(Kas.)

  • 1 => rhodey.noteOff (and the same for wurley) cause stuck-notes.(kas.) (ge: bug in ADSR from an earlier fix, oops. now fixed, hopefully and will be in
  • crash because of killing the parent-shred; (ge: bug in VM messaging not quite expected the remove to come from calling shred or his/her parent! fixed, and will be in => int my_id; fun void second_shred()

   second => now;

spork ~ second_shred(); hour => now;