free software for free sound
DESCRIPTION
Presentation I did during a University of California Symposium on Open Source for the Arts in UCLA, February 2007. What is Free Software and what does it have to do with Sound and Music.TRANSCRIPT
Free Softwarefor
Free Sound
UCDARNET, Open SymposiumFebruary, 2007
Xavier Amatriain (CREATE, UCSB, CLAM)
Index
Free Software and Open SourceWhy?Arts and Free SoftwareFree Software and Linux for Audio and MusicDigital Luthiers and Open FrameworksCLAMOther Music/Audio Open Source FrameworksConclusions
Free Software andOpen Source
What is Free Software?
Freedom 1: unlimited use for any purposeFreedom 2: freedom to study and adapt to your own needsFreedom 3: freedom to copyFreedom 4: freedom to redistribute
Free (Libre) as in Freedom not as in BeerFreedom is kept through copyright (because copyright allows licensing)
Open Source
Open Source (OSI) is an initiative that starts in 1998 mainly because of personal differences between the founder of the FSF and OSI.It abandons idealistic thinking related to Free Software and only promotes practical advantages related to being able to read the code of a piece of software.
Names and Dates
Richard StallmanStarts the GNU Project (1983)Defines Free Software (1985)Introduces the GPL (1985)
Linus TorvaldDevelops the Linux kernel (1991)
Eric RaymondFounder of the Open Source Initiative (1998)
Why?
Technical/Practical advantages of FLOSS
Code is revised by many developersSecurity (kerchoff's principle)EstabilityCollaborative effort of large communitiesPrice
Although interesting, there are even more important reasons...
FLOSS and Economy
Proprietary software by definition favors monopolies that then extend to hardwareFLOSS does not kill software industryFLOSS can be comercialIt promotes the culture of paying for services, not arbitrarily priced licencesLarge companies like IBM or Novell are already basing part of their business around FLOSS
Free Software and the University
Education should be worried about learning and learning is promoted through a free and open access to information (e.g. libraries)Technology is more than a tool: it is a learning environment in itselfAt the university we must present with several perspectives and favor criticism and dialogUniversity teaches how to learn not how to use a particular toolCoding is not only for programmers but for scientists, artists, children...
Free Software and Research
Scientific method depends in many senses on the free exchange of knowledge and ideasNowadays implementation is actually part of the resultSoftware is and should be considered in many cases like some other sort of publicationWith Free Software we:
Facilitate for others to compare resultsWe preserve knowledge
Social and Ethical aspects
Access to software determines people's ability to:CommunicateEducateWork
Software should be considered as cultural heritageSoftware will condition more and more the vision of the world new generations haveWho should control these aspects of society? A single company? Two companies?
Arts and Free Software
The Piece of Art in the Digital Era
Piece of Art = Content + TechniquesIn order to fully understand a piece of art we need to understand the techniques
Digital Piece of Art = Content + Techniques + SystemIn order to fully undertand a digital piece of art we also need to understand the system and be able to access it to the lowest level (code!)
Free Expression
There is no Free Expression without control of the Tools you use (agnula.org)
Would Mozart have composed a line of music for an instrument he wasn't exactly sure what was doing internally or producing its sound?Would Michelangelo have painted the Sixtine Chapel using a strange device that might have been recording his personal conversations while painting
An artist needs to be in full control of the tools (be able to modify, adapt, copy, redistribute...)
This can be done personally or through trusted technical staff
Digital Art Heritage
In order to preserve a digital piece of art we need to preserve the systemSystems that are closed and proprietary in general cannot be preservedThere are already key compositions in Computer Music that have already been lost because the original (closed) system cannot be reproduced
Digital Art Preservation = FLOSS
Sound/Music vs. Video/Image
Due to amazing pressure by Record Industry (through RIAA, SGAE...) implementing a website such as Flicker or UTube in the sound/music world is extremely difficult.
Artists are sometimes not even allowed to post their own content in their websites
See http://freesound.iua.upf.edu or http://www.ccmixter.org/
Free Software and Linux for Audio and Music
Linux and Audio
There are plenty of applications, even distributions for Linux audio (visit linuxsound.org)
Kguitar
Amarok
... etc.
Linux and Audio
Linux has unique and outstanding features for professional audio and music
Low latencyStabilityStandard protocolsVery active community...
LAC 2007 Berlin
Free Software and Audio
So what about other platforms?Most of the previous apps are compatible with Windows/OSXBut if you are not going to use proprietary software... what is the point of not using Linux?
Open Frameworks
Digital Luthiers
The ultimate degree of freedom is to be able to create your own tools (personally or through a digital luthier)
Many digital pieces of art rely on unique systems and software that have been tailored for the ocasión
Sometimes it is not enough with having an open application > you need an open framework!
Frameworks
Framework: “a set of classes that embodies an abstract design for solutions to a family of problems” (Johnson&Foote, 88)Framework = model + design patterns + codeA framework is a set of prefabricated building blocks that can be extended or costumized for specific applicationsBoth the visual and audio domain have a rich history of application frameworks
CLAM
Highlights
Won the 2006 ACM Best Multimedia Open Source Software award.
Constantly compiled and tested on Linux, OSX and Windows
> 250 C++ classes, 50K locAlthough it currently specializes in audio and music,
it presents a metamodel that has proven valid for general multimedia.
Applications
CLAM Components
Infrastructure. CLAM Network model
The CLAM network is a graphical model of computation based on Dataflow Process Networks
Scheduling can be performed both statically and dynamically, depending on the particular application.
Infrastructure. Processing
External Open Source libraries
FFTW (FFT)Xercesc & libxml (XML using DOM API)FLTK and QT GUI toolkitsRtAudio, PortAudio or DirectX (for Windows audio)
Libsndfile, OggVorbis, libmad (mp3), id3lib, for handling audio files.oscpacklibjackCppUnit (testing framework, only used for development)pthreads (multithreading on Windows)
Demo
Demo: Visual Prototyping
XMLXML
Other Free Frameworks
At UC
UCSBCSL: similar to CLAM but less ambitious and easier to master
UCBOSW
UCSDPd (really, why are people still using Max/MSP?)
Elsewhere
Aura (Dannenberg, Carnegie Mellon Univ.)STK (Cook/Scavone, Stanford Univ.)SndObj (Lazzarini, National Univ. of Ireland)Marsyas (Tzanetakis, Univ. of Victoria)Jsyn (Phil Burk, CA)
Conclusions
Conclusions
Free Software = Open Source + FreedomFreedom of Expression => Free SoftwareThe future of digital arts is at stakeIf you are convinced to use FLOSS there is no reason not to use LinuxIf developing your own app. try to first see if you can build it out of an existing open framework.
LinksCLAMhttp://www.clam.iua.upf.edu
Distributions and Open Source Audio Repositories
Linux Soundhttp://linuxsound.orgAGNULAhttp://www.agnula.orgPlanet CCRMAhttp://ccrma.stanford.edu/planetccrma/software
CLAMrelated environmentsCSL http://www.create.ucsb.edu/CSLJsynhttp://www.softsynth.com/jsyn/Marsyashttp://opihi.cs.uvic.ca/marsyasOSW http://osw.sourceforge.netPd http://puredata.infoSndObjhttp://music.nuim.ie/musictec/SndObjSTK http://ccrma.stanford.edu/software/stk
Audio LibrariesID3LIBhttp://id3lib.sourceforge.netLamehttp://lame.sourceforge.netLIBSNDFILEhttp://www.meganerd.com/libsndfileLIBVORBIShttp://xiph.org/vorbisMADhttp://www.underbit.com/products/ma dmpeg123http://www.mpg123.de Oscpackhttp://www.audiomulch.com/~rossb/code/oscpackPORTAUDIOhttp://www.portaudio.comPORTMIDIhttp://www.cs.cmu.edu/~music/portmusicRTAudiohttp://www.music.mcgill.ca/~gary/rtaudio