Plugging VSTs into Python Tim Thompson

Slides:



Advertisements
Similar presentations
Module 3 Configuring Hardware on a Computer Running Windows XP Professional.
Advertisements

David Meredith Minim David Meredith
Page 1. Page 2 Virtual Speaker: A Virtual Studio The software: Virtual Speaker is a package that automatically creates your voice files, prompts or any.
Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
Audio to MIDI Converter Team Obama Advisor: Dr. William Hunt Adnan Burkic Sean Earley Jon Kump Brian Tyson Georgia Institute of Technology 4/27/2010.
Computer Basics 1 Computer Basic 1 includes two lessons:
1 Digital Audio Storage Formats. 2 Formats  There are many different formats for storing and communicating digital audio:  CD audio  Wav  Aiff  Au.
1 L45 Multimedia: Applets and Applications. 2 OBJECTIVES  How to get and display images.  To create animations from sequences of images.  To create.
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
Computer Parts There are many parts that work together to make a computer work.
Virtual Reality Virtual Reality involves the user entering a 3D world generated by the computer. To be immersed in a 3D VR world requires special hardware.
Getting to know your computer…
Object Orientated Data Topic 5: Multimedia Technology.
Graphical Alarm Management System
2 Outline Digital music The power of FPGA The “DigitalSynth” project –Hardware –Software Conclusion Demo.
Home button this will take you back to ‘the components’ page. You will start on the components page. To get to the page for each component you click on.
V-Cert Music Technology BRIEF The Year 9 cohort are about to use Cubase for the first time. They have been composing and performing Music and will now.
INPUT AND OUTPUT DEVICES BY CAMERPN MITCHELL. INPUT An input device is any hardware device that sends data to a computer, allowing users to interact with.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Audio/Visual Experiments with Python Radio Free Quasar and Ergo Tim Thompson
Computer Insides and Out Computer Basics 1.1. Basic Personal Computer System  A computer system consists of hardware and software components.  Hardware.
MIDI. A protocol that enables computers, synthesizers, keyboards, and other musical devices to communicate with each other. Instead of storing actual.
Digital recording software Presented by Andrew Littlefield.
University of Management & Technology 1 Operating Systems & Utility Programs.
Walk-and-Talk TM Remote Control Touch pad Pen Style Palette Erases All Marks at Once Left and Right Mouse Buttons Calibration Sends Screen Image to Printer.
MULTIMEDIA Is the presentation of information by a computer system using graphics, animation, sound and text.
Chapter 11 An Introduction to Visual Basic 2008 Why Windows and Why Visual Basic How You Develop a Visual Basic Application The Different Versions of Visual.
Ray Bradley Karla N. Juárez David Wood Advisor: Dr. Stephen Murrell May 2 nd, 2005.
Sound on the Web. Using Sound on a Web Site Conveying information  pronounce a word or describe a product Set a mood  music to match the web page scene.
Module 8 Review Questions 1.VGA stands for A. Video Graphic Association B. Video Gradient Array C. Video Graphic Array D. Video Graphic Arrangement.
Object Orientated Data Topic 5: Multimedia Technology.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
COMPUTER MAIN PART DANILO GARCÍA GONZÁLEZ TÉCNICO EN SISTEMAS.
COMPUTER MAIN PARTS. HARDWARE Computer hardware refers to the physical parts of a computer and related devices. Internal hardware devices include motherboards,
MIDI Musical Instrument Digital Interface. MIDI A data communications protocol that describes a means for music systems and related equipment to exchange.
Chapter 11 An Introduction to Visual Basic 2005 Why Windows and Why Visual Basic How You Develop a Visual Basic Application The Different Versions of Visual.
Virtual Instruments and Sequencing. Proses Pembuatan Lagu/Musik TrackingMixingMastering.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
Soundscapes James Martin. Overview Problem Statement Proposed Solution Solution Created (Modules, Model, Pics) Testing Looking Back See It in Action Q&A.
Celluloid An interactive media sequencing language.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
Computer main parts HARDWARE It corresponds to all physical and tangible parts of a computer: your electrical, electronic, electromechanical and mechanical.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
In computing, an input device is a piece of computer hardware equipment used to provide data and control signals to an information processing system such.
Computer Parts There are many parts that work together to make a computer work.
PC Maintenance: Preparing for A+ Certification Chapter 14: Configuring Devices in Windows.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
Unit 01 - Set up and operate a digital audio workstation.
Hardware/Software Basics Test Get out your DIY Test Review.
Project Presentation Eoin Culhane Multi Channel Music Recognition for an Electric Guitar.
Multi Channel Music Recognition for an Electric Guitar.
Final Year Project Eoin Culhane. MIDI Guitar Guitar with 6 outputs 1 output for each string Each individual string output will be converted to MIDI.
Editing Digital AudioLab#7 Audacity is a free, easy-to-use and an open source platform audio editor and recorder for Windows, Mac OS, Linux and other operating.
Parts of a Computer Created by Carmen Garzes. An electronic device that manipulates information or data. It can store, retrieve or process data. There.
27656 (v1) Demonstrate and apply introductory knowledge of music technology equipment and techniques MUSIC Level 1Credits 4.
1 AQA ICT AS Level © Nelson Thornes 2008 Operating Systems What are they and why do we need them?
Computer Parts There are many parts that work together to make a computer work.
MIDI Controller By: Ronal Inga Jeyner Cespedes. Musical Instrument Digital Interface is a computer language that allows communication with other devices.
Computer Basics Just How Does a Computer Work?
Garage Band For MAC. What is it? A digital audio workstation that can record and play back multiple tracks of audio. Is a software application for OS.
Introducing Scratch Learning resources for the implementation of the scenario
Systems Software / The Operating System CSC October 14, 2010.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
XP Practical PC, 3e Chapter 14 1 Recording and Editing Sound.
WHAT IS COMPUTER ? . A computer is a complex system consisting of both hardware and software components.
Find a Driver For HP 7150 Series Printer in Windows 7, 8 and XP.
Introduction to Visual Basic 2008 Programming
Useful features and tools within Pro Tools
The Computer Work Stations
The Computer’s Hardware
Presentation transcript:

Plugging VSTs into Python Tim Thompson

Outline nosuch.vstutil – a Python module for manipulating: – audio devices – audio snippets – VST plugins Example code Example art – Radio Free Quasar Example instrument – w/multitouch and graphics

Classes in nosuch.vstutil AudioSnippet – init parameters: filename or audiodata – methods: duration, stretch AudioLoop – init parameters: snippet, offset, length, loops – methods: restart, setlength, setoffset PaAudioDevice – methods: abort, attach, close, is_active, open, reset_reduction, start, stop

Classes in nosuch.vstutil VstPlugin – init parameters: dll – methods: can_receive_midi, is_synth, is_vst2, name, num_inputs, num_outputs, num_params, num_programs, param_label, param_display, param_name, program_name, send_midi, get_enable, set_enable, set_param, set_program, set_input

Implementation details Portaudio – provides audio device interface libsndfile.dll – provides sound file reading pyrex – generates python/C interface code

Basic use of VstPlugin Instantiate it: v = VstPlugin(dll="ringmod.dll") Connect its input to the output of other plugins v.setinput(v2) Randomize its parameters n = v.num_params() for i in range(n): v.set_param(i,random())

Looping and playing sound #!/usr/bin/env python import time import nosuch.vstutil import sys a = PaAudioDevice() sound = AudioSnippet(filename="winsound1.wav") loop1 = AudioLoop(sound1,loops=-1) # loop forever a.open() a.start() a.attach(loop1) time.sleep(10) # sound is heard a.stop() a.close() sys.exit(0)

Connecting a VST synth and effect effect = VstPlugin(dll="BJ Ringmodulator.dll") synth = VstPlugin(dll="StrataVar.dll") # Connect output of synth to effec effect.setinput(synth) # Open audio and connect effect’s output to it a.open() a.start() a.attach(effect) # Send random MIDI notes to synth # while randomizing parameters of both VSTs for i in range(100): time.sleep(2.0) pitch = int(random() * 128) % 128 vstrandparam(synth) vstrandparam(effect) # see next slide synth.send_midi(1,pitch,8000,80)

Utility functions def vstrandparam(v): for i in range(v.numParams()): v.set_param(i,random()) 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()

Demos demo1 – play VST synth through VST effect and randomize parameters demo2 – play wave file through VST effect and randomize parameters demo3 – play VST synth through VST effect with LFOs attached to parameters (and periodically randomize)

Radio Free Quasar Art installation for Burning Man 2004 Antique radio Computer generating audio Laser generating graphics Big knob for control

Radio Free Quasar at Burning Man

Radio Free Quasar

Radio Free Quasar at Burning Man

Radio Free Quasar

Radio Free Quasar – the pieces 10 robust VST plugins chained serially Collection of WAV files 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

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

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

Throwing together VSTs, graphics, and multitouch ergo (events routed to graphical objects) – Python-based visual performance tool – Multitouch (iGesture) pads used to draw graphics – Events from MIDI devices also trigger graphics – MIDI controller used to control graphic parameters vstutil library creates VST synth and two effects – Multitouch pad controls notes and effects parameters – Buttons on MIDI controller can randomize parameters

Other libraries of interest nosuch.midiutil – MIDI device and data manipulation – Uses updated pyportmidi (pypm) module, which provides an interface to the portmidi library. nosuch.fingerutil – Fingerworks iGesture (multitouch) interface

Status and Availability nosuch.vstutil – Simple packaging, Windows-only – Public domain – Downloadable at nosuch.midiutil and nosuch.fingerutil – contact

Plugging VSTs into Python Tim Thompson