SuperCollider

Jit.log#190511

Came back to Jitakami research today. It was not easy to consolidate two+ missed months, to throw away a stale plan and try to understand what is realistically possible to do in 4 weeks left for the RAGLAIN/AUTOCOM installation that will be put on on 21th June at Kapelica Gallery.

I returned to some basic questions: what is A.I.?

I think that I made mistake by exploring artificial intelligence with a course in machine learning. Although currently that seems as one of more popular areas in industrial application of machine intelligence it’s by far not the only one. I actually have a bit of problem – I feel forced to work on intelligence of the input part of the system while output is not yet by far constructed. In that sense I am somehow concluding today that algorithmic nature of the system producing intelligent form of (musical/visual) output can easily be termed as some form of A.I.

What is a basic goal of Jitakami System? In essence it is to be a new kind of instrument, to produce music in form of songs, compositions, tracks in certain or different styles and aesthetics. Enough variables should be controlled by algorithms so to produce generative material which appears intelligently (with feeling and style) put together.

I think once I have that I can work on different ways of control: by a programmer via textual input, by an operator via graphical UI, by audience of an exhibition via touch screen, or by another A.I. which did some learning from different media: midi and/or recordings.

I studied all that and tried to discover a suitable map for the next month. I hope to layout a rudimentary specification for some kind of ‘playing’ system with which I can start and than iterate on in SuperCollider. Next week (in couple of days) I have to decide on physical form the installation will take. It’s difficult to think about that at this point. I feel I have nothing, no output or even concept to lean on.

There are also no news from Ministry of Culture on stipend. It would be good to get it, but that would mean the study plan outlined there should be changed. But even if the answer will be negative, this project has quite a decent budget between Emanat and Kapelica/Kersnikova.

supercollider: deb package from git with checkinstall

Follow instructions how to build and install supercollider from git here: https://github.com/supercollider/supercollider/wiki/Installing-SuperCollider-from-source-on-Ubuntu, but instead of final make install, use checkinstall (apt install checkinstall):

$ sudo checkinstall -D -t=debian --install=no --pkgname=supercollider --pkgversion=3.10.0-0your_name make install

You’ll end up with a .deb file in that current build folder. Install it with gdebi:

$ sudo gdebi supercollider_3.10.0-0lallafa-1_amd64.deb

Prevent apt from ever upgrading your package by creating a file called “preferences” in /etc/apt folder, and put in:

Package: /supercollider/
Pin: release *
Pin-Priority: -1

Daily Beat: a simple 808 beat with an immature bass sound

Today I started to work on a simple project that I hope becomes a routine almost every day. I delved into Patterns in SuperCollider again and hacked together a simple beat with 808 samples and with very little time left today added a very simple broken bassline/synth line.

Two important aspects of this little endeavor, for now: a) making *something* everyday, and b) making open source music – well libre open source code that generates music.

Making (composing) something everyday is an important practice for every artist. I’m not sure if this is gonna work for me, as I frequently start something and then abandon it, but nothing will change if one doesn’t try it. I want to play with something everyday, even if it’s a short melody line in Renoise or something new in SuperCollider, I just want to spend minimum half an hour on it. Not everything will probably be SuperCollider (although I have a fantasy to switch completely to SC and compose everything there, including heavy club tracks!), and there will be days when I’ll not manage.

So, today’s project is obviously a beginning. The full code is below, with a link to a zip with scd and samples, and also on Gitlab (https://gitlab.com/lukap/DailyBeats2018/tree/master/180805). Personally it feels that this was an important little refreshing lesson to remember how to use Patterns, what Pbind does and how to put patterns running in parallel together with Ppar.

Continue reading

Learning SuperCollider patterns: legato, sustain and using pairs

Yesterday I had problems understanding why does a SynthDef and it’s Synth instance complain when it’s envelope duration is shorter than duration \dur. The following code will produce FAILURE IN SERVER /n_set Node 1067 not found complaints in the post window.

The sound will be generated fine, but the problem is that the doneAction and sustain value in Env.linen result in the Synth instance being freed before Pbind does it. So when Pbind does tries to free it, it’s already gone, it doesn’t exist anymore.

I asked nice SC people on SC FB group and the answer led me to understand that there’s a good use of\sustain parameter in Pbind, which deals with exactly that. So to properly control sustain time, an example shows how it can be done:

It seems like the most important part is that the SynthDef has a sustain argument. Pbind will calculate sustain from \dur so that it doesn’t even have to be defined in the Pbind.

There’s a nice thing used above, which I was looking for a while – how to defined note and it’s duration in pairs instead of on separate lines for each parameter: [\degree, \dur] and what follows is a list of pairs.

Interface Fractures IF4Q

Interface Fractures is a series of audiovisual explorations Luka Prinčič has been developing in collaboration with the Slovenian Cinematheque since 2013. The series’ cinema-sound episodes share the same method and format: an immersive situation in the darkness of the cinema, the use of digital and open source tools for generating image and sound, a dichotomy between fixed composition and improvisation in time, a tendency for abstraction out of which fragments of the concrete arise, and playing with the synchronisation of sound and image. Although the creation process includes an examination of the contemporary human condition, conventional narration is not so important in the created performances and remains in the background. Interface Fractures is thus a fragmented excursion into abstract sound and the moving picture. Their synthetic integration emerges from the process of searching for fractures and subjectivities in a seeming impenetrability of polished and polarised interfaces – mediated, inter-machinic, interhuman.

Collaborators

Author: Luka Prinčič

Support

Production: Emanat – (emanat.si/en/production/luka-princic–interface-fractures-if4q)
Co-production: Slovenska kinoteka
Financial support: City Municipality Ljubljana, Ministry of Culture RS

Technical

Technical rider -> https://goo.gl/VAIHtq

Events

, MENT, Pritličje, Ljubljana, SI
, Cirkulacija, Ljubljana, SI
, Slovenska kinoteka, Ljubljana, SI (odpade/cancelled)

Video

Save

Save

Save

supercollider: easy beats with patterns

minor random bliss in two

Learning Patterns in SuperCollider, here’s a little lullaby:

 

SuperCollider Help in dark grey

In order to browse and use SuperCollider help system in inverted gray colours, there are two quick hacks:

  • modify internal Help system
  • style the help on doc.sccode.org using Stylish

To modify internal Help system find the file /usr/local/share/SuperCollider/HelpSource/scdoc.css and add at the bottom/end of the file:

If you use doc.sccode.org and a Stylish add-on in (for example) Firefox to custom-style pages, you can add a new style which is similar to the above:

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