User:Adamsmith

From Toplap
Jump to navigation Jump to search

Livecoding Narratives (Non-Fiction)

(things that I really did, reconstructed from memory)

"endless interesting claim generator"

  • launched impromptu
  • opened included speech example
  • noted calls used to make speech play
  • created a new text buffer
  • added expression to speak the string "cats" immediately
  • ran that expression a few times
  • defined a loop duration (1 sec)
  • created temporally recursive function using duration (loop)
  • started recursion (stays running unless otherwise specified)
  • modified loop to use "cats"-speaking expression
  • changed "cats" to a random selection of "cats" "hats" and some other words
  • defined two empty lists: subjects, modifiers
  • added a few silly plural nouns to subjects list
  • added a few silly prefixes to the modifers list
  • modified speaking expression to concatenate a random element of modifiers, a hypen, and a random element of subjects
  • extended loop duration a bit
  • heard "mega-cats", "ultra-packets", "super-hackers" and others
  • noted overly-repetitive sound
  • noted some awkward pauses in speech for the hyphen
  • added some adjectives to the modifiers list
  • heard "alternative-pods", "fluffy-networks", "negated-cats" occasionally, subject to chance
  • modified loop to use faster tempo but only initiate next utterance every 4 beats
  • defined an empty drum part function
  • added call to drum part every beat
  • evaluated midi program change message to put two melodic drums on midi channels 1 and 2
  • added expressions to drum part function to play both drums rhythmically, as a function of beat number mod 16
  • created empty claims list
  • added a few silly claims that could be made about the random items being named
  • modified speech expression to say "[prefix]-[pnoun] are [claim]"
  • heard "interesting-packets are controversial", "sly-waffles are desirable" and others in random rotation
  • factored out speech part as a separate function
  • modified loop to call speech part less often (to avoid excessive overlapping of utterances)
  • added several new prefixes, nouns, and claims
  • noticed that there was now a long time between adding a term to a list and hearing it in a random utterance
  • created an empty function called low part
  • registered calling of low part in the loop
  • added expression to periodically low part of play a long, random note from a given scale
  • evaluated expression to change midi program for channel used by low part to a string sound
  • added a few higher, decorating notes to low part
  • added more prefixes, nouns, and claims
  • created an empty lead-in list
  • added "and", "but", "however" to lead-ins
  • modified speech expression to begin utterances with a lead in
  • heard "and inquisitive-hackers are to be desired, but quasi-cats are unrelated" and others
  • added new empty functions high part and interesting part
  • registered these functions to be called in loop (with mask based on beat number)
  • added playing of note with random pitch and duration selection to each function
  • evaluated midi program change expressions to give each part a distinct voice
  • added several more items to the lists used in utterance construction
  • stopped main loop
  • added checks for beat being greater than various specific values for all non-speech parts
  • restarted loop
  • heard a single utterance with no background music
  • heard several utterances over low part
  • heard several more utterances over low part and drum part
  • (and so on)
  • added a new melodic part called another part
  • added several more pieces for utterance construction
  • removed several silly terms, keeping the more intelligent sounding ones
  • noticed that the utterances were more interesting if they seemed to express a personal belief
  • added "i feel", "you shouln't believe", "i know" to lead-ins list
  • heard "i feel random-constructions are unending"
  • noticed utterances were particularly interesting when they seemdd to express a personal belief about the system itself
  • added more references to words related to generative content, repetitiveness, randomness, and intelligent machines
  • tweaked parameters for a few more hours
  • stopped main loop
  • fell asleep (the sun had risen a while ago)

"bilingual livecoding"

  • launched impromptu
  • opened included osc example
  • created a new text buffer
  • launched puredata
  • opened included osc example
  • created dumpOSC object connected to a routeOSC object
  • added /pitch to router, connected to a number box for visualization
  • created a sendOSC object, disconnected from the rest
  • added several boxes to allow sending a random midi pitch value via the /pitch address to the rest of the program
  • watched received number change in the number box
  • added expressions back in impromptu to send more random pitches to the pd program
  • added a sine oscillator controlled with frequency controlled with data from /pitch messages
  • added a new address /bang to the router and used this to control a line generator
  • instructed line generator to ramp from 1 to 0 over 125ms, used this as amp for the oscillator
  • connected dsp chain to dac
  • added expressions in impromptu to send the /bang message
  • heard pulsing notes on demand
  • added /decay and /slide patterns to router
  • added logic so that values sent to /decay would adjust the length of the line triggered by /bang
  • added logic so that values sent to /slude would adjust a new line used to slide the pitch of the main oscillator
  • crashed pd (accidentally)
  • recreated pd program from memory, cleaner this time
  • created temporal recursion loop in impromptu
  • started recursion
  • added expressions to send /bang rhythmically
  • heard regularly pulsing notes
  • adjusted note length via /decay from impromptu
  • added expressions to send numbers from a global list of pitches
  • heard repetitive arpeggio
  • added expressions to populate new pitch sequence from random notes from a random chord in a given key every 16 notes
  • heard shifting arpeggio of interesting notes
  • replaced sine oscillator in pd with more complex expression involving lfo-controlled phase shift and wrapping to create overtones
  • added freeverb unit to dsp chain
  • added short delay to right channel
  • modified new sequency selection to happen on the 1st, 32nd, and 56th step of a 64 step pattern
  • added bandpass vcf with sweep triggered by /bang and lengthened by /decay to dsp chain
  • added /q pattern to router and used it to control resonance of filter
  • added expressions in main loop in impromptu to periodically update /q
  • added /kick and /snare patterns to router
  • created simple kick drum by sweeping the freqency of a sine oscillator by the fourth power of a line generator (with 10Hz high-pass filter after)
  • connected kick drum to dsp chain
  • clicked it a few times, heard the drum
  • tweaked line generator
  • connected kick drum with /kick pattern messages
  • added expressions in impromptu to send /kick message every 4 steps
  • added expressions in impromptu to send /snare message rhythmically in a typical snare pattern
  • created simple snare drum in pd by ramping the volume of filtered noise, triggered by /snare messages
  • connected snare drum to dsp chain, immediately heard decent rhythm
  • tweaked both drum rhythms in impromptu
  • added masks to /pitch and /bang messages
  • added occasional octave-up and octave-down notes
  • adjusted overall tempo, exploring half and double speed
  • commented out /kick messages and set /snare to fire every step
  • heard snare roll
  • set /kick to fire every step
  • heard heavy drum roll
  • set masks back to original rhythmic pattern, re-evaluated
  • heard nice, sharp transition to main rhythm
  • tweaked numbers in pd
  • crashed pd (by attempting to save!)
  • recreated entire patch from memory
  • tweaked numbers in pd
  • tweaked numbers in impromptu
  • experimented with different oscillators and lfos in pd
  • saved everything without crashing this time
  • stopped main loop
  • fell asleep (the sun had risen a while ago)

"music without sound"

no time to write this up right now, but, at a high level...

  • created an impromptu program to send /kick /snare /bass and /lead osc events, with reasonable parameters and patterns
  • created a processing program to visualize these events with lines, circles and boxes with exponentially decaying size from trigger time and position given by pitch
  • did the above stuff in parallel between the two languages, using the processing visualization to tweak patterns and pitches in impromptu (without every listening to them)


"music without sound, with sound this time"

no time to write this up right now, but, at a high level...

  • started teaching a friend how to use chuck
  • found example of how to wait on osc events
  • loaded the impromptu program from "music without sound"
  • modified it to send osc events to friend's laptop
  • coached friend in mapping osc events to reasonable synthesis methods
  • heard decent music come from an event stream that was design only on the basis of how it looked (in terms of code and event visualization, but never sound)


Livecoding Narratives (Fiction)

(things I'd like to be able to do, someday)


"logic livecoding"

--

"inductive logic livecoding"

--