Copy paste tracking. Spreadsheets

Spreadsheets are great example of live programming.

Live coding is performance. Live programming is instant interpretation. Live programming languages are needed for live coding.

Spreadsheet formulas are programming.

Copying in spreadsheets is a way to make up for the lack of abstraction.

Managing copy errors is hard. A Canadian company lost millions from an excel error.

We could ask users to define data types, but then it gets like access.

Their plugin tracks the origin of the formula. If you change one, all clones will update. They allow you to detach clones.

Q: is it fair to distinguish between live coding and live programming?  Is live programming only for business?

What about dynamic programming? Or should we focus instead on a spectrum of liveness.

A:  one is for languages and one is for what you do with it. Aliveness need not be boolean.

Q: Is the difference social?

A: these communities can learn from each other.

Is it an aspect of the language or the use of it?

Q: live feedback with the machine and artists. Artists understand giving performances and engineering. But engineers don’t understand when they’re performing.

Practice lead craft research

Practice lead research is a problem of epistemology.

Knitting is creating knowledge with our hands. Craft make knowledge physical.

How do you get knowledge put off craft based practice as research. The answer is rigour.

Rigour has an awareness of previous work, having critical questions of y that work. Hacking and to making and being reflective.

Sonic pi vs overtone with piano phase.

He’s said a lot of interesting things about development, b but the best is that when he used sonic pi, he writes down ideas for tool development. Then he looks at them later. Playing music and composing is thus separated from development.

Keynote guy again

Rubik’s cube solving as performance. Sometimes the process of problem solving is the goal.

The classical theory of problem solving. States based search based problem solving. Problems have a starting state, a set of methods and a goal state. The method operators have pre-conditions, a  transformation method, etc. There is a defined state space.

He is showing the Towers of Hanoi.

The problem state graph for the towers of Hanoi can be an interface for collaborative problem solving. The tree can be computed on the fly.

The graphs give you a shared representation.

To generate the missionaries and cannibals graph you use a two  dimensional graph. This problem is problematic.

Blocks world problem graph has potential layout collisions.

R real world problems. It could be applied to climate change.

Co-solve controls collaborative problem solving. It has a lot of latency. By ticking up the atmosphere. This is some neoliberal bullocks. But it may have performance applications.

Q: what problem are live codes trying to solve?
A: trying to get people to dance, maybe.

Q: should a live coder think of a problem in advance?

A: formulation is difficult.

Approximate programming by Chris Kiefer

Coding by weird interfaces.

Approximate coding. Take a number generator and turn it into code. Any number generator will work. Use gene expression programming. It’s fast but not precise.

What is the value of code as a medium? How precise does code need to be in a live situation? Is the keyboard the best way to write code?

Genetic programming uses a tree representation. Numbers are translated into the tree. Component functions plus arrays of numbers make new code to run.

He’s got jit nodes in SuperCollider and a multislider. Changing the faders changes the synthdef.  You can live code the Synth functions.

A controller could give you your arrays.

There are two levels of live coding. You can create your autonomic functions and the trees created by generating numbers.

You can discover relationships between sound and gesture. The code is kind of incomprehensible but can be out into trees.

Smoothing out parameter space. Small changes can cause static output changes due to non linear ness.

Future work involves smoothing landscapes. He wants some bidirectional feedback.  Could code output make new code?
Can this system do anything precise? Could you find a gradual quick sorry  algorithm?

Q: is there room for genetic processes via evolution?
A:

Q: how duo you compare two trees? How do make the minimal changes on transition?
A: this may be a good way to smooth a transition
Q: diffmatch patching.

What does live coding know by Geoff Cox

Onto-epistemology.

An apparatus is an active productive of the object itself. The programmer produces uncertainty. Subjects and objects co-create.

How is knowledge produced? Disrupt power knowledge regimes. Introducing uncertainty is increasingly important. Code is an integral part of coding practice.

Emergent knowledge

Artistic or practice based research addresses non propositional forms. How does live coding make an argument in itself.

Alternative knowledge or non knowledge. Live coding can shape how and what we know about knowledge?

This challenges goal-oriented research design. Computation contains internal paradoxes as is shown by the halting problem.

Live coding mirrors modern labour production. The speaker refers to Yuill’s article.

Live coding exposes possibilities. It shows the uncertainty of computation.

Q: is there enough reflection of the critical potential? How would Marx critique this?

A: general intellect is absorbed into capitalism.

Live coding and machine listening by Nick Collins

Human hearing can be modeled by a computer.

Live coding can control machine listening or machine listening can be the front end of the language.

This is maybe like gestural coding?

Algoravemic doors a live dynamic remix of a track. Using feature extraction and resynthesis.

Using feature extraction to code the toplapapp.

Speculatively:
Speech recognition
Live code machine listening algorithm
Algorithmic critics
Divergence from the human ear post singularity
Personalised languages of live coding

Machine listening is the future

Q: I didn’t understand the question…
A: yes

Pietro Grossi’s live coding by Giovanni Mori

Pietro Grossing was a proto live coder. He got into electronic music in the 1960’s.

He wrote a program called dcmp that did music in real time. Tau2 was a 12 voice synthesiser which was computer controlled via an alphanumeric terminal doing code in real time. They had a telemetric concert that may predate the hub.

He ported his music languages to the Commodore 64 and adapted them for graphics.
These were uploaded to the internet with FLOSS licences.

Q: was this his day job?
A: he was an independent researcher at first, but then gained institutional support including building a synthesiser and technicians. In the 80’s, he returned to bring independent.

Live code keynote

Steven Tanimoto

Why can’t computing be more like playing an instrument?

Liveness in electrical circuits. How to replace a light switch: safely or write it hot! In computing, you can make the same kind of choices without risk of death.

Live programming: modify a running protean without doing execution.

Fortran was proposed on 1953. Programming was a long task. Make a flowchart, hand write out code, full out a form. Punch cards. Etc etc etc

In 1963 Ivan Sutherland came up with an interactive graphical interface. Visual languages make use of graphics.

Visual languages are discoverable via interactions.

This seeks a closer interaction between program and programmer. Increase visibility. Reduce latency.

Early graphics were non interactive. By the 70’s, diagrams were executable. In the 80’s, the were responsive.

Liveness hierarchy:

1. Informative. Flowchart as description
2. Informative and significant. Executable flowchart
3. Responsive
4. Live

The Data Factory
His live language. All data e elements have a place. Data flows between them.

Is a bit pd-like…

Proposed extension to liveness hierarchy… When does execution respond to programming changes?

Level 1: never
Level 2: when commanded
Level 3; upon any edit
Level 4: immediately and continuously

Level 5: predictive. The computer crashed alternative branches and the use selected the one they want.
Level 6: the computer tries to guess entire program parts

Gestural input for character input is level 5. And also how I am entering this post…

Level 6. Strategically predictive liveness.

Liveness is only useful if the program is executed straight away. Solutions: check syntax  immediately. Secondary executions like just to headphones before out to main speakers.

Q: should truly live programmes learn from and incorporate errors?
A: software engineering is about creating an artefact. Live coding is a performance.

Q: could unit testing be used for predictive aliveness?
A: sound like a good PhD.

Q: music is stateful and development is on some sense stateless.
A: programmers do not think of themselves in terms of performance, but programming involves cognitive states.

Q: doors livened mean the same thing to us as it does to computer science? Or live coding is not live by some definitions.
A: mixing singing and coding does reduce distance between thought and output.

Communication Control and Stage Sharing in Netowrked Live Coding

Collaborative live coding is more than one performer live coding at the same time, networked or not, he says.
Network music can by synchronus or asynchornos, collocated or remote.
There are many networked live coding environments.
You can add instrumental performers to live code stuff, for example by live-generating notation. Or by having somebody play an electronic instrument that is being modifies on the fly in software.
How can a live coding environment facillitate mixed collaboration? How and what sould people share? Code text? State? Clock.? variables? How to communicate? How do you share control? SO MANY QUESTIONS!!
They have a client/server model where only one machine makes sound. No synchronisation is required. There is only one master state. However, there are risks of collision and conflict and version control.
the editor runs in a web browser because every fucking thing is in a browser now.
Shows variables in a window and a chat window and a big section of the text. shows the live value of all variables in the program state. Can also show the network/live value.
Now showing collusion risk in this. if two coders use the same variable name, this creates a conflict. Alice is corrupting Bob’s code, but maybe Bob is actually corrupting her code. Anyway, every coder has their own name space and can’t access each other’s variables, which seems reductive. Maybe Bob such just be less of a twat. The live variable view shows both Alice’s and Bob’s variables under separate tabs.
His demo says at the top (‘skip this demo is late’
How do people collaborate if they want to mess around with each other’s variables? They can put some variables ina shared name space. click your variables and hit the shared button and woo shared.
How do you share control?
Chat messages show in the mobile instrument screen for the ipad performer. The programmer can submit a function to the performer in such a way so that the performer has agency in deciding when to run the function.
the tool for all of the this is called UrMus

Questions

Would live coders actually be monitoring each other’s variables in a performance?
Of course, this used in general coding, and hand waving