Friday, July 27, 2012

Open Source Tools Using ChucK

ROB.VOX http://www.cacheflowe.com/?page=rob.vox "Rob.Vox is a piece of vocal processing software that you can run on your own computer. It runs in ChucK, a great audio-programming language and environment." - website

Playing with Rob.Vox - custom vocal processing software from CacheFlowe on Vimeo.

WEKINATOR "The Wekinator is a free software package to facilitate rapid development of and experimentation with machine learning in live music performance and other real-time domains. The Wekinator allows users to build interactive systems by demonstrating human actions and computer responses, rather than by programming." - website Demo video by Rebecca Fiebrink - Click Here

000000swan, Kinect, Unity 3D + Wekinator from phoenix perry on Vimeo.

Summary on Projects

Today’s great success concluded with the KIns Player automatically recording a loop for playback. Julia is still tinkering with playing a loop while recording another instrument. However, the toggle function on the Recording Loop button is working. The KIns (Keyboard Instrument) is fully functional with GUI on a Mac. However, it is not functional on Windows. With miniAudicle installed, the KIns is easy to install and use for simple play of the provided instruments. Future development includes keeping an eye out for the cross-platform Qt being developed by miniAudicle’s author S. Salazar. Also, developing the ability to play a loop while recording a new loop remains on the wish list. Additional instruments, additional slider bars using MAUI Elements to enable even more live synthesis, and the development of scores. The Rainfall Player works for users with Processing and Chuck installed. The installation is a bit more involved. The player works with any adc, installed or external mics. Future development includes packaging for a single download, adding different schemes, i..e. background images and objects to rain something other than cats and dogs or shhhhh! We discussed the overall learning process and came to unanimous agreement that the tools we used supported deeper learning of the principles. Our approaches varied in the early weeks, but in retrospect, we felt a guided tour through the material should weave the tool features with in depth explanation together. For instance, very early on we read about sound and how sinusoidal waves combine to make more complex sounds. We feel that as part of this discussion an introduction to how to make a simple SinOsc in ChucK would be appropriate and helpful. Also, we agreed that a visual such as offered in TAPESTREA to see how the wave generated appears helps in the understanding of this fundamental concept. By combining the building blocks of signal processing, synthesis and programming, we felt a stronger foundation of understanding can be achieved. Simple sine waves, frequencies, classes, objects, variables and parameters first. Then complex waves, unit generators and envelopes, using another layer of programming that gives the students more control and an understanding of these basics will give them greater success in creating sounds they envision rather than random experimentation. Once they have built up a small library of files, then introduce functions where they can take blocks of code they have created and learn how to reuse it and change parameters. This would be a good time to introduce more complex timing and synchronization methods, sporking several files and possibly using event driven options. Filters made more sense to us when we also saw a visual display of how envelopes change sound. The Circle audio software gave a good overview of ADSR filters, envelopes, and how various other filters operate on sound. The examples folder of Chuck, MiniAudicle and TAPESTREA provides a great resource for simple introduction to become familiar with how code is laid out, and it is very easy to simply change values to learn how it affects sound, and to discover and work with simple debugging errors. TAPESTREA is an interesting program to work with to create a “musical tapestry” of pre-recorded sounds. It is experimental software and there are several known and unknown bugs, so for a beginner it may yield somewhat frustrating to work with on any significant level. But using it for a clear purpose like separating the frequencies of a pre-recorded wave file, or having a mix of prerecorded sounds and ChucK scripts, it would make it very easy to create a soundscape and record to a file.

Thursday, July 26, 2012

Update on MAUI for Windows

I received the following to my inquiry whether MAUI will ever work with Windows for the KIns. Bad news is not on Windows, but the good news is: "The current MAUI elements will probably never work on Windows. The good news is that Spencer (chief author of the mini) is busy re-writing it and will use a cross-platform toolkit (Qt) which should mean functionality will be the same across all platforms. That should be nice (I don't use OSX either)." From Kassen, Chuck Users Forum

Courses Using ChucK Programming

Ge Wang Course List  - Music 128 and CS 170  Beginning course for SLOrk  Link here to full list

California Institute of the Arts
George Institute of Technology
McGill University
University of Victoria
UC Santa Barbara
Stanford Classes:  Fundamentals of Computer Generated Sound; Computational Algorithms; Composing, Coding and Performance w/Laptop Orchestra

Wednesday, July 25, 2012

Great ChucK Resource

Hey guys,

This is a great resource which seems to discuss all things ChucK and even provides some great libraries!

http://en.flossmanuals.net/chuck/index/


-Julia Check out our June 13 entry for more info too on this. The online version has more than the manual and is searchable.

Monday, July 23, 2012

Rhodey Example

http://chuck.cs.princeton.edu/doc/examples/stk/rhodey.ck

I just wanted to share this because it actually sounds good. Motivation to one day get our ChucK programs to be pleasing to the ear, you know?

-Julia

Wednesday, July 18, 2012


Tapestrea is another software tool for learning about frequencies, filters, synthesis, composition and reads ChucK scripts. The reason I find this so useful is it gives visual context to signal processing. This 5 minute demo video gives a quick tour through the software features. For example, a pre-recorded .wav file is played and the frequencies appear in the spectrogram display. The "separate" button creates individual files for each frequency in the .wav file, dividing the files into stable foreground sinusoidal frequencies, bursts or transient events, and background/noise (stochastic events). Extraction of a frequency is done easily by clicking and dragging a window across the segment you want. Sliders make it easy to stretch, loop, synthesize, etc. and give visual/manual control to processing new sounds. However, the Lion roars on this one because though Tapestrea incorporates ChucK programming features, the software does not run on a Mac OSX Lion operating system. Windows, Linux or Mac OSX is necessary. I emailed Princeton and received this confirmation by email.

Monday, July 2, 2012

Granular Synthesis Part 2

I'm making this a new post because the comments section acts up when I try to post there...

Jan pointed out that the use of MIDI devices is, in a sense, deprecated in ChucK. So I'm currently researching and playing with LiSa to do granular synthesis.

The nice thing about LiSa is that you can hook up anything that is a sound source - like an oscillator or SndBuf - and use that to make the grains. In addition, you can mathematically synthesize grains. This allows much more freedom in synthesis techniques than a MIDI controller.

There are several LiSa example files in the examples/special folder. For some reason, however, a few of the files aren't working for me at the moment... But for those that do work, the sound is very unique...

This thread (also where I got the "garbage" MP3 and the "DigitalTape" code) has to do with granular synthesis. I will post any other threads I find in a comment.

-Julia

Using ChucK for Granular Synthesis

http://electro-music.com/forum/viewtopic.php?t=14196

There is a good description starting from the May 14 post and down between two users explaining creating code from scratch or using LiSa.  Kassen explains it well.