Audio/Visual Experiments with Python Radio Free Quasar and Ergo
description
Transcript of Audio/Visual Experiments with Python Radio Free Quasar and Ergo
![Page 2: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/2.jpg)
Outline
Radio Free Quasar = audio experiments Ergo = MIDI-driven visual experiments Hoops = Looping MIDI to drive Ergo
![Page 3: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/3.jpg)
Intentions
Intended to demonstrate:
– Fun and interesting apps
– Ease of developing with Python
– Ease of using pyrex to integrate with C
– Combination with other languages Not intended to demonstrate:
– Sophisticated Python
– Particularly good code or object design
![Page 4: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/4.jpg)
Radio Free Quasar
Art installation for Burning Man 2004 Antique radio Computer generating audio Laser generating graphics Big knob for control
![Page 5: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/5.jpg)
Radio Free Quasar
![Page 6: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/6.jpg)
Radio Free Quasar
![Page 7: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/7.jpg)
Radio Free Quasar at Burning Man
![Page 8: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/8.jpg)
Radio Free Quasar at Burning Man
![Page 9: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/9.jpg)
Radio Free Quasar at Burning Man
![Page 10: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/10.jpg)
Radio Free Quasar at Burning Man
But what does it sound like?
![Page 11: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/11.jpg)
Radio Free Quasar – hardware
Windows XP Mini-ITX motherboard (fanless, low power) DC power supply Power sequencer USB-powered speakers USB knob (Griffin Powermate) Laservibe laser (driven by computer’s audio output) EL-wire antenna
![Page 12: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/12.jpg)
Radio Free Quasar – software components
Python VST plugins Pyrex-based VST wrapper Pyrex-based Portaudio wrapper
![Page 13: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/13.jpg)
Radio Free Quasar – example code 1
#!/usr/bin/env pythonimport timeimport snipimport sysa = snip.snipaudiodevice()sound1 = snip.snippet(filename="winsound1.wav")loop1 = snip.sniploop(sound1)a.open()a.start()a.attach(loop1)time.sleep(10)a.stop()a.close()sys.exit(0)
![Page 14: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/14.jpg)
Radio Free Quasar – example code 2
# Load a VST plugin and randomize its parameters
ring = snip.snipvst(dll=vstdir+"\\BJ Ringmodulator.dll")for i in range(ring.numParams()):
ring.set_param(i,random.random())
![Page 15: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/15.jpg)
Radio Free Quasar – example code 3
ring = snip.snipvst(dll=vstdir+"\\BJ Ringmodulator.dll")vsyn = snip.snipvst(dll=vstdir+"\\StrataVar.dll")
# Connect output of vsyn VST to ring modulator VSTring.setinput(vsyn)
# Open audio output and connect ring modulator outputa.open()a.start()a.attach(ring)
# Send random MIDI notes to vsyn VST # while randomizing parameters of both VSTsfor i in range(100):
time.sleep(2.0)pitch = int(random.random() * 128) % 128vstrandparam(vsyn)vstrandparam(ring)vsyn.send_midi(1,pitch,8000,80)
![Page 16: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/16.jpg)
Radio Free Quasar – example code 4
def vstrandparam(v):
for i in range(v.numParams()):
f = random.random()
v.set_param(i,f)
def vstinfo(v):
print "Is VST2 = ",v.is_vst2()
print "Is synth = ",v.is_synth()
print "numParams = ",v.numParams()
print "numInputs = ",v.numInputs()
print "numOutputs = ",v.numOutputs()
print "can_receive_midi = ",v.can_receive_midi()
print "can_send_midi = ",v.can_send_midi()
![Page 17: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/17.jpg)
Radio Free Quasar – final program
Collection of WAV files Ten robust VST plugins Python program:
– selects wave files
– enables/disables/randomizes VST plugins
– allows interactive control from keyboard
Big knob on radio sends keypresses Automatic randomization if no user input
![Page 18: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/18.jpg)
Radio Free Quasar – interactive control
r : randomize wave file and plugin parameters
w : change to a different wave file
0-9 : randomize parameters of plugin N
d : disable all plugins
e : enable all plugins
s : save current parameters
p : select previously saved parameters
![Page 19: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/19.jpg)
Ergo
E – Events
R – Routed to
G – Graphical
O – Objects
![Page 20: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/20.jpg)
Ergo
Used in dud, a multimedia improvised art ensemble http://dudland.com Drummer uses DrumKAT drums Drum MIDI output processed by KeyKit program Events sent to Python over TCP/IP socket Python does OpenGL graphics in response Sliders and buttons (from a MIDI controller)
affect what kind of graphics are generated
![Page 21: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/21.jpg)
Ergo – interactive control
Sliders:– object’s initial width/height, final width/height– speed in x/y direction, speed of rotation– fade time– initial x/y position– velocity threshold
Buttons:– color shift, color randomizing– initial position control– sprite enable/disable– patch control
![Page 22: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/22.jpg)
Ergo – sprites
vector (horizontal and vertical) trianglesquare (hollow and filled)bar (horizontal and vertical) image (selected interactively) text (entered interactively)
![Page 23: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/23.jpg)
Ergo – image control
Wanted images related to content of unpredictable musical improvisation
Solution = library of 300,000 imagesFilenames describe imageType in a word and it select all files
whose name contains that wordRetrieval of images interleaved with
graphical display to avoid pauses
![Page 24: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/24.jpg)
Ergo Version 2 ideas
Rework with cleaner object modelEnvelopes, LFO’s, etcPatch represented entirely by connection
of event processorsRandomized patch generation
![Page 25: Audio/Visual Experiments with Python Radio Free Quasar and Ergo](https://reader035.fdocuments.in/reader035/viewer/2022081513/568157a8550346895dc538a2/html5/thumbnails/25.jpg)
Hoops
MIDI application written in KeykitDesigned in collaboration with Herb HeinzLoops MIDI in realtimeHandles multiple MIDI loopers simultaneouslyAnimated graphical display of loopsIf ergo is running, MIDI events are sent to itUsed at last Saturday’s Y2K5 International Looping
Festival in Santa Cruz