User:Adamsmith
From Toplap
Contents |
[edit] Livecoding Narratives (Non-Fiction)
(things that I really did, reconstructed from memory)
[edit] "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)
[edit] "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)
[edit] "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)
[edit] "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)
[edit] Livecoding Narratives (Fiction)
(things I'd like to be able to do, someday)
[edit] "logic livecoding"
--
[edit] "inductive logic livecoding"
--
