λ PLT Games

Do it Live March 2013

Description

Live coding is a form of improvised performance. Code is written during the performance to create music and/or video. The composition of code is often projected for the audience to see.

Another form of live coding is used in conference presentations, where the presenter wants to show how to build something in front of an audience.

An important aspect of live coding is the representation of time. The user needs to be able to specify when sounds or video are played. One solution is to have time as part of control flow. For example a recursive call could be scheduled at a specific time in the future.

Some live coding environments allow multiple users to manipulate the performance.

The goal of this competition is to make a programming language for a live coding environment. The use is open-ended. For example, it could be designed to create:

Inspiration

SuperCollider
play{SinOsc.ar(OnePole.ar(Mix(
  LFSaw.ar([1,0.99],[0,0.6],2000,2000).trunc([400,600])*[1,-1]
),0.98)).dup*0.1}
Impromptu
(dotimes (i 8)
   (play-note (+ (now) (* i 5000)) piano (+ 60 i) 80 4000))
ChucK
// our signal graph (patch)
SinOsc s => JCRev r => dac;
// set gain
.2 => s.gain;
// set dry/wet mix
.1 => r.mix;

// an array of pitch classes (in half steps)
[ 0, 2, 4, 7, 9, 11 ] @=> int hi[];

// infinite time loop
while( true )
{
    // choose a note, shift registers, convert to frequency
    Std.mtof( 45 + Std.rand2(0,3) * 12 +
        hi[Std.rand2(0,hi.cap()-1)] ) => s.freq;

    // advance time by 120 ms
    120::ms => now;
}

Resources

Criteria

Innovation

Does this language introduce you to any new concepts? Does this seem like a unique language?

Completeness

Does the implementation of this language work as intended? Does it lack many bugs?

Theme application

Does the language fit the theme? Does it satisfy the constraints in the description?

Submissions

silica

by gatesphere

Innovation:
    Completeness:
      Theme:
        liveJSONAutomata

        by jacopofar

        Innovation:
          Completeness:
            Theme:
              Turbo-Impress

              by philipbjorge

              Innovation:
                Completeness:
                  Theme: