<div dir="ltr">Awesome!  Congratulations!  <div><br></div><div>Lots of important stuff in this release.  Really looking forward also to the book and the Coursera class.</div><div><br></div><div>Best,</div><div>Mike</div></div>
<div class="gmail_extra"><br clear="all"><div><div><br></div><a href="http://michaelclemow.com" target="_blank">http://michaelclemow.com</a><br><a href="http://semiotech.org" target="_blank">http://semiotech.org</a><br><br>
</div>
<br><br><div class="gmail_quote">On Mon, Sep 23, 2013 at 7:47 AM, Stefan Blixt <span dir="ltr"><<a href="mailto:stefan.blixt@gmail.com" target="_blank">stefan.blixt@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Brilliant! Congratulations! :D<br></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Mon, Sep 23, 2013 at 10:05 AM, Spencer Salazar <span dir="ltr"><<a href="mailto:spencer@ccrma.stanford.edu" target="_blank">spencer@ccrma.stanford.edu</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Howdy,<div><br></div><div>chuck 1.3.2.0 + miniAudicle 1.3.0 have been released:</div>
<div><br></div><div>
<a href="http://chuck.stanford.edu/release/" target="_blank">http://chuck.stanford.edu/release/</a><br></div><div><br>
</div><div>Our first release in a year is an exciting one. In anticipation of a number of ChucK-based computer music education initiatives (the forthcoming book "Programming for Musicians and Digital Artists" and Coursera course of the same name), we have added a number of conspicuously absent features and libraries, alongside cleaning up a large number of </div>


<div><br></div><div><div>The most significant change is to formally release chuck as an installer package on Mac OS X and Windows platforms. These installer packages include chuck, miniAudicle, related example files, and the standard set of chugins. (Separate installation of these components is possible but discouraged and not necessarily supported.) Linux, for the time being, is still released as separate source distributions. </div>


</div><div><br></div><div>SerialIO will allow ChucK programmers to easily interact with serial-based hardware devices such as Arduino. A number of string processing utilities have been added. Furthermore, the clear.vm command will enable more dynamic on-the-fly development with public classes. </div>


<div><br></div><div>In miniAudicle, the underlying application core on Windows/Linux has been completely rewritten in Qt, greatly improving stability and overall experience. A number of other features and improvements have been added. </div>


<div><br></div><div>Special thanks to Ajay Kapur, Kassen, Mark Morris, Bruce Lott, Fernando Lopez-Lezcano, and Romain Michon. </div><div><br></div><div>Best regards,</div><div>Spencer, Ge, and the ChucK team. </div><div>

<br>
</div><div>chuck</div><div><div>1.3.2.0</div><div>---</div><div>  - (added) --clear.vm flag</div><div>            instructs remote VM to remove all shreds and clear public user types</div><div>  - (added) Std.ftoi(float f)</div>


<div>            Function for converting float to int</div><div>  - (added) ASCII char literals - 'c' converted to int with ASCII value</div><div>  - (added) book/digital-artists example programs for forthcoming book:</div>


<div>            "Programming for Musicians and Digital Artists" (Manning </div><div>            Publications)</div><div>            (very special thanks to Mark Morris and Bruce Lott for sample</div><div>            production)</div>


<div>  - (added) new functions</div><div>            - me.path()</div><div>              equivalent to me.sourcePath()</div><div>            - me.dir()</div><div>              equivalent to me.sourceDir()</div><div>            - me.dir(int N)</div>


<div>              return Nth-level parent of source directory</div><div>            - Shred.fromId(int id)</div><div>              return Shred object corresponding to specified id</div><div>  - (added) new functions for string objects</div>


<div>            - .charAt(int index)</div><div>              return character of string at index</div><div>            - .setCharAt(int index, int ch)</div><div>              set character of string at index to ch</div>

<div>
            - .substring(int pos)</div><div>              return new string with characters from pos to end of string</div><div>            - .substring(int pos, int len)</div><div>              return new string with characters from pos of length len</div>


<div>            - .insert(int pos, string str)</div><div>              insert str at pos</div><div>            - .erase(int pos, int len)</div><div>              remove len characters from string, beginning at pos</div>

<div>
            - .replace(int pos, string str)</div><div>              replace characters of string at pos with str</div><div>            - .replace(int pos, int len, string str)</div><div>              replace len characters of string with str, starting at pos</div>


<div>            - .find(int ch)</div><div>              search for character ch in string, return index of first instance</div><div>            - .find(int ch, int pos)</div><div>              search for character ch in string, return index of first instance</div>


<div>              at or after index pos</div><div>            - .find(string str)</div><div>              search for string str in string, return index of first instance</div><div>            - .find(string str, int pos)</div>


<div>              search for string str in string, return index of first instance at</div><div>              or after index pos</div><div>            - .rfind(int ch)</div><div>              search for character ch in string, return index of last instance</div>


<div>            - .rfind(int ch, int pos)</div><div>              search for character ch in string, return index of last instance</div><div>              at or before index pos</div><div>            - .rfind(string str)</div>


<div>              search for string str in string, return index of last instance</div><div>            - .rfind(string str, int pos)</div><div>              search for string str in string, return index of last instance at</div>


<div>              or before index pos</div><div>  - (added) MidiFileIn class</div><div>            Class for parsing + handling MIDI input from a file.</div><div>            See examples/midi/<a href="http://playmidi.ck" target="_blank">playmidi.ck</a> for example usage. </div>


<div>            - .open(string filename)</div><div>              Open file at specified path</div><div>            - .read(MidiMsg inMsg)</div><div>              Get next message in first track</div><div>            - .read(MidiMsg inMsg, int trackNo)</div>


<div>              Get next message in trackNo</div><div>  - (added) SerialIO class (extends IO)</div><div>            Class for communicating with serial devices, e.g Arduino.</div><div>            See examples/serial/ for example usage. </div>


<div>            - .list() (static)</div><div>              return array of strings corresponding</div><div>              to available serial IO devices</div><div>            - .open(int i, int baud, int mode)</div><div>

              open device with index i. baud can be a constant specifying</div>
<div>              which standard serial baud rate is used (e.g. </div><div>              SerialIO.B9600). mode can be SerialIO.ASCII or </div><div>              SerialIO.BINARY to specify ASCII or binary interpretation</div>


<div>              of serial data. </div><div>            - .onLine()</div><div>            - .onByte()</div><div>            - .onBytes(int num)</div><div>            - .onInts(int num)</div><div>            - .onFloats(int num)</div>


<div>              chuck to now to wait for that type of data to arrive (in the</div><div>              specified quantity). E.g. serial.onLine() => now; will wait </div><div>              for 1 newline-terminated string to arrive from the serial</div>


<div>              device. </div><div>            - .getLine()</div><div>              .getByte()</div><div>              retrieve data requested as above as string/byte</div><div>            - .getBytes()</div><div>              .getInts()</div>


<div>              .getFloats()</div><div>              retrieve data requested using the onLine()/etc. above. as array</div><div>              of data type</div><div>            - .baudRate()</div><div>              .baudRate(int baud)</div>


<div>              get/set baud rate</div><div>            - SerialIO.B2400</div><div>              SerialIO.B4800</div><div>              SerialIO.B9600</div><div>              SerialIO.B19200</div><div>              SerialIO.B38400</div>


<div>              SerialIO.B7200</div><div>              SerialIO.B14400</div><div>              SerialIO.B28800</div><div>              SerialIO.B57600</div><div>              SerialIO.B115200</div><div>              SerialIO.B230400</div>


<div>              available baud rates</div><div>  - (added) Regex class</div><div>            Class for regular expression matching and replacing in strings. </div><div>            Regex style is POSIX-extended. </div>

<div>
            - RegEx.match(string pattern, string str)</div><div>              Return true if match for pattern is found in str, false otherwise</div><div>            - RegEx.match(string pattern, string str, string matches[])</div>


<div>              Same as above, but return the match and sub-patterns in matches</div><div>              matches[0] is the entire matched pattern, matches[1] is the first </div><div>              sub-pattern (if any), and so on. </div>


<div>            - RegEx.replace(string pat, string repl, string str)</div><div>              Replace the first instance of pat in str with repl, returning the</div><div>              result. </div><div>            - RegEx.replaceAll(string pat, string repl, string str)</div>


<div>              Replace all instances of pat in str with repl, returning the</div><div>              result. </div><div>  - (fixed) --adc:<N> now works as expected</div><div>  - (fixed) FileIO => string bug</div>


<div>  - (fixed) LiSa.sync/LiSa.track now works when set to </div><div>            1 (playhead follows input, normalized/rectified to [0,1])</div><div>            2 (playhead follows input, non-normalized/rectified)</div>


<div>            affects examples/special/LiSa-track*.ck</div><div>  - (fixed) LiSa interpolation bug</div><div>  - (fixed) .clear() function of arrays properly removes all items of the array</div><div>  - (fixed) != properly handles comparison between a string and literal null</div>


<div>  - (fixed) multichannel refcounting bug</div><div>  - (fixed) WvOut performs IO writes on separate thread, significantly </div><div>            minimizing audio underruns</div><div>  - (fixed) crash in Chorus destructor</div>


<div>  - (fixed) crash in Mandolin destructor</div><div>  - (fixed) ADSR correctly initialized in "DONE" state</div></div><div><br></div><div><br></div><div>miniAudicle</div><div><div>---</div><div>1.3.0</div><div>


    - (added) chuck-1.3.2.0</div><div>    - (added)(Win/Linux) completely new GUI architecture based on Qt</div><div>    - (added) Clear VM function -- remove all shreds and reset public user types</div><div>    - (added) export as WAV + Ogg + M4A (Mac only) + MP3 (if lame exe present)</div>


<div>    - (added) examples browser</div><div>    - (added) editor tabs</div><div>    - (added) complex/polar type names highlighted</div><div>    - (added) highlight chout/cherr</div><div>    - (added) Class/UGen type names highlighted</div>


<div>    - (added)(Windows) .ck file association and double-click to open in shell</div><div>    - (fixed) better read-only file handling</div><div>    - (fixed)(Mac) chugin browser icons not appearing in 10.5/10.6</div>

<div>
    - (fixed)(Mac) better MAUI stability</div><div>    - (fixed)(Windows) Windows XP emulation mode no longer required on Vista/7</div><div><br></div></div></div>
<br></div></div>_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br>Release me, insect, or I will destroy the Cosmos!
</font></span></div>
<br>_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
<br></blockquote></div><br></div>