Programming

IF3 Progress Report #1

With the summer-time, a working-time on my new audio-visual piece, Interface Fractures III, begun. It is now almost confirmed that the date of premiere showing at Slovenian Cinemateque (Slovenska Kinoteka) is most probably 15/september. Since the plan was that we spend some quality sun&salt time at Croatian coast I brough some machinery with me to vacation. It’s always fun to work in the summer heat!

Anyway, with this next episode in the series I want to upgrade technically a “little bit”, so I acquired a better graphic card (Nvidia GTX960) and a multi-touch screen monitor with fullHD 1080p resolution. Adding also a 120GB SSD drive I needed to reinstall operating system (UbuntuStudio 14.4.1), separately compiled drivers for Nvidia and the rest worked pretty much out of the box (after some apt-get-ing). Multi-touch is application-dependent and my idea (for many years now) is to write custom interfaces for live sound/music/noise and visual composition and improvisation.

More technicalities: I compiled Processing and SuperCollider, tried a multi-touch library in Processing (SMT) but it didn’t work. Filed an issue at their GitHub and went on with a version of SuperCollider that supports multi-touch (I was kindly pushed in the right direction by Scott Cazan, who added MT support to his own branch of SC on GitHub). After some basic testing I wrote a simple granulator with a GUI. I also tested a very basic idea of TABs-like interface. In Processing I’ve whet my appetite with an excercise that focused on off-screen rendering and blending two images together.

Processing: slice and blend screeshot

 

Continue reading

SuperCollider GUI – tabs proof of concept

These are very newbie baby steps in the construction of a something bigger, a powerful flexible interface for a touch-screen device. Novels are being written one word at the time, right?

The following is a snippet of code that I needed to write in order to test a TABs-like behaviour in SuperCollider QT GUI system. Essentially, I was curious if it’s possible to show and hide whole windows/areas of different widgets using a tabs-like paging system – something we’re all used to now from browsers, for example.

SC GUI TABs proof of concept anim gif

Processing: slice and blend

Here’s a little sketch in Processing that does the following: loads an image, takes a horizontal and vertical 1px slice, multiplies each slice into an image off-screen, and blends the two images together and displays the original and blended one side by side. Each frame this is calculated dynamicaly, the slices are determined by the position of the mouse.

Note: the image must be in the folder where your sketch is saved and it must be in dimension of 300×300 pixels.

Processing: slice and blend screeshot

I still need to test this in a fullHD/1080p situation. I wonder if the CPU can take it at 60 frames per second. I actually suspect not. So many pixels and not on the GPU.

Granular synthesis in SC

This morning I started to work on a granular machine in SuperCollider. This is what I got so far:

Making Programming Meaningful

Certainly, we can introduce computer science without programming. Certainly, computer science is more than just programming. But computer science certainly includes programming, and programming is a critical part of the passion, beauty, joy, awe, and art of computer science. We have to engage with the hard part of broadening participation in computing, by introducing programming. We have to develop the design processes so we can figure out how to introduce programming to a broader audience; we have to develop performances that recruit and engage students; and we have to be free to change programming so that it is meaningful and has a chance to induce passion.

Mark Guzdial (Georgia Tech): Making Programming Meaningful to Induce Passion for Broadening Computing, Future Directions in CS Ed Summit.