Thursday, December 20, 2007

Week 7


Thursday, December 20, 2007

Parousies: Konstantinos Tsatsakos, Orestis Plakias, Nikos Palamaris, Panayiotis Diamantis, Tasos Lizos, Spyros Xenitopoulos, Maria Boua, Fani konstantinidou
Apousies: Dimitris Alafouzos, Kyriakos Tsoukalas, Leonidas Chartofylakas

Short lecture by Satoru Takaku
        Toshio Hosokawa
        Makoto Shinohara
        Jo Kondo
        Yoji Yuasa



Thursday, December 13, 2007

Week 6: SynthDef




Plan for following weeks:
13/12
        Final session server commands // Synth and Group control //
        SynthDefs start
20/12        
        SynthDefs continued, Interactive Synth Control // Envelopes // GUI
10/1
        Filters // Buffers // Disk IO (Files)
17/1
        Routines, Streams, Patterns
24/1
        FFT Spectum Domain Synthesis + alla Granular synthesis
31/1
        Discussion, review of projects

5/2 Review
7/2 Quiz
20/2 Projects due

Some topics:
        quit / play / postln
        Node Synth Group

============
Attendance: Maria Boua Kyriakos Tsoukalas, Orestis Plakias, Nikos Palamaris, Dimitris Alafouzos, Leonidas, Tasos Lizos, Fani Konstantinidi Spyros, Panayotis Diamantis

Thursday, December 6, 2007

Week 5 Server Commands, SynthDesc, Creating Synths



Server Commands

/s_new, /n_run, /n_set, n_free, “/quit”


Examples:

a = NetAddr("127.0.0.1", 57110);

a.sendMsg("/quit");

a.sendMsg("/s_new", "default", 2000, 0, 0, \freq, 400, \amp, 0.1);
a.sendMsg("/s_new", "default", 2001, 0, 0, \freq, 500, \amp, 0.1);
a.sendMsg("/s_new", "default", 2002, 0, 0, \freq, 600, \amp, 0.1);

a.sendMsg("/n_free", 2000);
a.sendMsg("/n_run", 2000, 0);
a.sendMsg("/n_run", 2000, 1);

a.sendMsg("/n_run", 2000, 0)

a.sendMsg("/n_set", 2000, "freq", 500);
a.sendMsg("/n_set", 2000, "freq", 1500);
a.sendMsg("/n_set", 2000, "freq", 150);
a.sendMsg("/n_free", 2000);

a.sendMsg("/n_run", 0, 1);
a.sendMsg("/n_run", 0, 0);



Thursday, November 29, 2007

Week 4 HMSL, OSC basics, Unix


There was a 1.5 hour lecture covering mainly 3 topics:

Background for OSC:
        Unix shell, commands, file system.
        Relative and absolute paths.
        TCP/IP, UDP, IP address and port

Review of object oriented programming principles:
- Object: State (Attributes) and Behavior
- Encapsulation, Inheritance, Polymorphism
- Examples of Classes

SuperCollider:
- Getting help in SuperCollider
- Browsing code in SuperCollider
- Starting (booting) and stopping (quitting) the server

Other topics:
HMSL
Bibliographical research tools online. The University Portal website.

All were present:

✓         Maria Bua
✓         Konstantinos Tsatsakos
✓         Tasos Lizos
✓         Leonidas Hartofylakas
✓         Nikos Palamaris
✓         Spyros Xenitopoulos
✓         Panayotis Diamantis
✓         Kyriakos Tsoukalas
✓         Orestis Plakias
✓         Fani Konstantinidou
✓         Dimitris Alafouzos

Thursday, November 22, 2007

Week 3: OOP, AI and Cognitive Science



Lecture:

1. Programming Language Paradigms: Procedural (C, Pascal, Basic, Fortran etc.), Functional (LISP, Haskell, Scheme etc.) Logic (PROLOG) and Object Oriented (Smalltalk, Squeak, SuperCollider)
2. Birth and history of AI, Cognitive Science, Neural Networks (Neuroscience) and the idea of computer models and simulations of cognition, emotion, culture, etc.
3. Main concepts of Object Oriented Programming:

        •        Background: Alan Kay, (and his interests in education and cognitive science), SmallTalk
        •        The concept and implementation of Object unites Data and Program in one programming construct.
        •        An Object in OOP is thus characterized by its state or attibutes (Data?) and its behavior (methods, ~ programs)
        •        Three basic characteristics of classic OOP languages: Encapsulation, Polymorphism, Inheritance
        •        Encapsulation: Access to data inside an object is limited to that object itself. To read or write tThe object determines its behavior the

Practical session:

At the end we ran some introductory tutorials from the latest SuperCollider distribution.

=====

All were present:

✓         Maria Bua
✓         Konstantinos Tsatsakos
✓         Tasos Lizos
✓         Leonidas Hartofylakas
✓         Nikos Palamaris
✓         Spyros Xenitopoulos
✓         Panayotis Diamantis
✓         Kyriakos Tsoukalas
✓         Orestis Plakias
✓         Fani Konstantinidou
✓         Dimitris Alafouzos

Saturday, November 17, 2007

SuperCollider FAQ and Tips

SC-Users Mailing List
Join the sc-users mailing list early on. It is the best way to get answers for any level of question. Questions mostly get answered in less than 24 hours. http://www.create.ucsb.edu/mailman/listinfo/sc-users

SuperCollider Swiki: Collaborative Website with Code and other Helpful Information
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6

Running SuperCollider on Intel PC (not Mac)
1. You may try PsyCollider, which is downloadable from the main SC website
2. An interesting alternative is the Pure Dyne Linux-bootable-CD which contains SC together with other free tools for image processing and sound and graphics synthesis. It boots from CD, no need to install on your hard drive. https://devel.goto10.org/puredyne

How to access the built-in soundcard on Mac OS X 10.4+
See: http://swiki.hfbk-hamburg.de:8888/MusicTechnology/825

Upload User Contributed Libraries directly into SuperCollider using Quarks
Quarks is a system for managing libraries contributed by users online directly from SuperCollider. See documentation on Quarks in SuperCollider. (Type and select the text Quarks in any SuperCollider text window, then type Command-D)

Bibliography

Here is a list of writings related to interactive computer music.

Bartlette, C. H., David ; Bocko, Mark ; Velikic, Gordana. (2006). Effect of network latency on interactive musical performance. Music perception, 24(1), 49-61.
Bonardi, A. R., Francis. (2002). Composing an interactive virtual opera : The <Virtualis> project. Leonardo, 35(2), 315-318.
Bukvic, I. I. (2002). RTMix - towards a standardised interactive electroacoustic art performance interface. Organized sound, 7(3), 275-286.
Desainte-Catherine, M. A., Antoine. (2005). Interactive scores : A model for specifying temporal relations between interactive and static events. Journal of new music research, 34(4), 361-374.
Guedes, C. (2005). Mapping movement to musical rhythm : A study in interactive dance. New York Univ., Ph.D. Dissertation.
Helmut, M. (2005). Virtual musical performance and improvisation on Internet2. Organised sound, 10(3), 201-207.
Kapur, A. W., Ge ; Davidson, Philip ; Cook, Perry R. (2005). Interactive network performance : A dream worth dreaming? Organised sound, 10(3), 209-219.
Kimura, M. (2003). Creative process and performance practice of interactive computer music : A performer's tale. Organized sound, 8(3), 289-296.
Lindström, E. C., Antonio ; Friberg, Anders ; Volpe, Gualtiero ; Rinman, Marie-Louise. (2005). Affect, attitude and evaluation of multisensory performances. Journal of new music research, 34(1), 69-86.
Modler, P. (1997). Interactive computer music systems and concepts of Gestalt. In Music, Gestalt, and computing (pp. 482-494). Berlin: Springer.
Momeni, A. (2005). Composing instruments : Inventing and performing with
generative computer-based instruments. Berkeley, Calif., Univ. of California, Berkeley, Ph.D. Thesis.
Ng, K. (2002). Sensing and mapping for interactive performance. Organised sound, 7(2), 191-200.
Rowe, R. (1993). Interactive music systems : machine listening and composing. Cambridge, Mass.: MIT Press.
Rowe, R. (1999). Key induction in the context of interactive performance. Music perception 17, 511-530.
Rowe, R. (2001). Machine musicianship. Cambridge, Mass.: MIT Press.
Rowe, R. (2005). Real time and unreal time : Expression in distributed performance. Journal of new music research, 34(1), 87-95.
Schachter, D. (2007). Towards new models for the construction of interactive electroacoustic music discourse. Organised sound, 12(1), 67-78.
Ungvary, T. K., Michael. (1998). Creative and interpretative processmilieu for live-computermusic with the sentograph. In Controlling creative processes in music (pp. 173-227). Frankfurt am Main: Lang.
Wetzel, D. B. (2006). A model for the conservation of interactive electroacoustic repertoire : Analysis, reconstruction, and performance in the face of technological obsolescence. Organised sound, 11(3), 273-284.
Winkler, T. (1998). Composing interactive music : techniques and ideas using Max. Cambridge, Mass.: MIT Press.
Zannos, I. (1999). Musiktechnologie und musikalische Kreativität mit digitalen Medien. In Jahrbuch des Staatlichen Instituts für Musikforschung (pp. 294-315). Mainz (etc.): Schott.

SC on Linux Bootable CD, Processing Books, Lua on Max/MSP, Giannoukakis blog.

Pure Dyne is a bootable CD that contains Linux along with SuperCollider and a number of other tools of artists such as Processing, PD, Gem, GIMP and others. https://devel.goto10.org/puredyne
Runs on Intel platforms, including Intel Macs. Should be especially interesting for people with PCs who want to try out SuperCollider.

There is also Lua for Max/MSP.
First there is Graham Wakefield’s object:
http://www.mat.ucsb.edu/%7Ewakefield/lua%7E/lua%7E.htm

And then there is also Wesley Smith’s project, which apparently has to do with graphics (jit.) and runs on Windows only at this moment:
http://www.cycling74.com/twiki/bin/view/Share/WesleySmith

Ben Fry - one of the developers of Processing has just published an interesting book and is about to publish another one. See:
http://benfry.com/
http://www.amazon.com/exec/obidos/ASIN/0262182629/ref=nosim/benfrycom-20

Marinos Giannoukakis has a blog documenting his related work which is here: dynamicsoundscape.blogspot.com

Thursday, November 15, 2007

Week 2: Mailing List

Created mailing list. To post to it use: programming-interactive-music07a@googlegroups.com
All students should subscribe.

  1. Maria Bua
  2. Konstantinos Tsatsakos
  3. Tasos Lizos
  4. Leonidas Hartofylakas
  5. Nikos Palamaris
  6. Spyros Xenitopoulos
  7. Panayotis Diamantis
  8. Kyriakos Tsoukalas
Absent:
- Orestis Plakias
- Fani Konstantinidou
- Dimitris Alafouzos

Assignments for next week:
  • Join the create sc-users mailing list
  • Download and try Processing (for those feeling adventurous: Python, Lua)
Introductions and Tutorials to Programming
  • Programming in Lua: http://www.lua.org/pil/
  • Object Oriented Programming Tutorials Online:
    • http://homepages.north.londonmet.ac.uk/~chalkp/proj/ootutor/index.html
    • http://aonaware.com/OOP1.htm

Friday, November 9, 2007

Week 1 - Processes, Parameters, Interface

We discussed:
  • Objectives and scope of this course: To teach basic programming principles for music using SuperCollider.
  • History of SuperCollider (From MAX extensions to Pyrite and Synth-o-Matic, SuperCollider 1, 2 and 3, stations in the development of SuperCollider.
  • Origin and Development of Music Programming Languages. See historical article by Gareth Loy and Curtis Abbott: "Programming languages for computer music synthesis, performance, and composition" in: ACM Computing Surveys (CSUR), Volume 17 , Issue 2 (June 1985), pp. 235 - 265 . Note: Can be found online via the Ionian University Library web service.
  • Based on the example of Csound we introduced some basic principles underlying systems and languages for sound synthesis. Concepts discussed:
    • Orchestra and score file formats.
    • Instrument (Synth), synth definition and synth generation.
    • Unit generator structure of synths.
    • Variables and parameters
    • "Interface" for programming a language, API (Application Programming Interface)
    • message sending as method for communicating with objects in OOP
    • The interface concept in OOP (the set of messages to which an object responds)
    • The basic interface of synth processes: Messages for creating and destroying ("freeing") Synths and messages for changing (setting) the parameters of synths.

Assignment:
Further references:
SuperCollider Book (Draft) by Iannis Zannos. This can be dowloaded from: http://www.esnips.com/supercollider