https://ccrma.stanford.edu/mediawiki/api.php?action=feedcontributions&user=Rmichon&feedformat=atomCCRMA Wiki - User contributions [en]2024-03-29T07:47:46ZUser contributionsMediaWiki 1.24.1https://ccrma.stanford.edu/mediawiki/index.php?title=Colloquium&diff=21455Colloquium2019-02-04T23:47:04Z<p>Rmichon: /* Winter Quarter */</p>
<hr />
<div>@5:30pm in the Classroom on Wednesdays!<br />
<br />
= Winter Quarter =<br />
<br />
* '''1/9: Barbara Narness''' (In CCRMA Lobby)<br />
* '''1/30: Colin Tucker'''<br />
<br />
<br />
* '''2/6: Conference Style talks''' () <br />
** Speaker 1: Noah<br />
** Speaker 2: <br />
** Speaker 3: <br />
<br />
* '''2/13: Jordan Rudess''' (Doga) <br />
<br />
* '''2/20: Rapid fire talks''' (Mark) <br />
** Speaker 1: <br />
** Speaker 2: Kunwoo<br />
** Speaker 3: Matt<br />
** Speaker 4: Mark <br />
** Speaker 5: Elliot<br />
** Speaker 6: Kim<br />
** Speaker 7: Romain<br />
** Speaker 8: <br />
** Speaker 9: <br />
** Speaker 10: <br />
** Speaker 11: <br />
** Speaker 12:<br />
** Speaker 13: <br />
** Speaker 14:<br />
** Speaker 15:<br />
** Speaker 16:<br />
<br />
* '''3/6: Natalie Bernewitz and Marek Goldowski''' ()<br />
<br />
= Fall Quarter =<br />
<br />
* '''9/26: New Student Presentations''' (Doga)<br />
** Speaker 1: Julie Zhu<br />
** Speaker 2: Bernard Wang<br />
** Speaker 3: Camille Noufi<br />
** Speaker 4: Jatin Chowdhury<br />
** Speaker 5: Doug McCausland<br />
** Speaker 6: Kim Kawczinski<br />
** Speaker 7: Chen Ji<br />
** Speaker 8: Scott Oshiro<br />
** Speaker 9: Haotian Sun<br />
** Speaker 10: Miao Zhang<br />
** Speaker 11: Mengfan Zhang<br />
** Speaker 12: Jason Choi<br />
** Speaker 13: Jon Vredenburg<br />
** Speaker 14: Charles Foster<br />
** Speaker 15: Kyle Laviana<br />
** Speaker 16: Vidya Rangasaree<br />
** Speaker 17: <br />
** Speaker 18:<br />
** Speaker 19:<br />
<br />
* '''10/3: Ge Wang and Takako Fujioka''' (Jack)<br />
<br />
* '''10/10: Ostap Manulyak and Chris Chafe''' (Mark)<br />
<br />
* '''10/17: Jonathan Berger and Jonathan Abel''' (Kitty)<br />
<br />
* '''10/24: Jarek Kapuściński and Poppy Crum''' (Noah) <br />
<br />
* '''10/31: Rapid fire talks''' (Elliot) <br />
** Speaker 1: Elliot<br />
** Speaker 2: Jack<br />
** Speaker 3: Noah<br />
** Speaker 4: Elena<br />
** Speaker 5: Aditya<br />
** Speaker 6:<br />
** Speaker 7: <br />
** Speaker 8: <br />
** Speaker 9: <br />
** Speaker 10: <br />
** Speaker 11: <br />
** Speaker 12:<br />
** Speaker 13: <br />
** Speaker 14:<br />
** Speaker 15:<br />
** Speaker 16: <br />
<br />
* '''11/7: Patricia Alessandrini and Marina Bosi''' (Jack)<br />
<br />
* '''11/14: Luis Jure and Nando Lopez-Lezcano''' (Mark)<br />
<br />
* '''Thanksgiving'''<br />
<br />
* '''11/28: Eoin Callery and Matt Wright''' ()<br />
<br />
* '''12/5: Craig Sapp, Eleanor Selfridge-Field, and TBA''' (Doga)</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Colloquium&diff=19490Colloquium2016-12-05T21:13:18Z<p>Rmichon: /* Winter Quarter */</p>
<hr />
<div>@5:30pm in the Classroom!<br />
<br />
= Fall Quarter =<br />
<br />
* '''9/28: New Student Presentations''' (Elliot)<br />
** Speaker 1: Yuval Adler, about "Being Brave and Signing Up to Be the First Speaker"<br />
** Speaker 2: Chris Lortie<br />
** Speaker 3: Juan Sierra, not sure about what but I'll figure it out<br />
** Speaker 4: Mark Hertensteiner, "Omnisonnace (working title): a music RPG"<br />
** Speaker 5: Megan Jurek<br />
** Speaker 6: Mark Rau<br />
** Speaker 7: Julie Herndon<br />
** Speaker 8: Yijun Zhou, "Global Net Orchestra Drum Circle"<br />
** Speaker 9: Rahul Agnihotri, "I Know Nothing, But I Will!"<br />
** Speaker 10: Ruoxi Zhang<br />
** Speaker 11: Mu-Heng Yang, "MIR using Deep Learning"<br />
** Speaker 12: Orchisama Das, "HUMs and other such things"<br />
** Speaker 13: Walker Davis<br />
** Speaker 14: Davor Branimir Vincze "Inflection Point"<br />
** Speaker 15: Prateek Murgai "My Journey"<br />
** Speaker 16: Jack Atherton<br />
** Speaker 17: <br />
** Speaker 18:<br />
** Speaker 19:<br />
<br />
* '''10/5 Ge Wang and Chris Chafe:''' (Kitty)<br />
<br />
* '''10/12: Fernando Lopez Lezcano and Julius Smith''' (Alex)<br />
<br />
* '''10/19: Rapid fire talks''' (Iran)<br />
** Speaker 1: Romain Michon<br />
** Speaker 2: Paul Batchelor<br />
** Speaker 3: Elliot Kermit-Canfield<br />
** Speaker 4: Nolan Lem <br />
** Speaker 5: Aury Washburn<br />
** Speaker 6: Alex Chechile<br />
** Speaker 7: Nick Gang<br />
** Speaker 8: Chryssie Nanou<br />
** Speaker 9: Byron Walker<br />
** Speaker 10: Carlos Sánchez<br />
** Speaker 11: Kurt Werner<br />
** Speaker 12: Matt Wright<br />
** Speaker 13: Michael Olsen<br />
** Speaker 14: Sara Martín<br />
** Speaker 15: Möbius Román<br />
** Speaker 16: Christopher Jette<br />
<br />
* '''10/26: no colloquium'''<br />
<br />
* '''11/2: Øyvind Brandtsegg'''<br />
<br />
* '''11/9: Jarek Kapuscinski and Matt Wright'''<br />
<br />
* '''11/16: Tom Rossing and Jay LeBoeuf''' (Madeline)<br />
<br />
* '''Thanksgiving'''<br />
<br />
* '''11/30: Sasha Leitman and Takako Fuijoka''' (Madeline)<br />
<br />
* '''12/7: Craig Sapp, and Eleanor Selfridge-Field''' (Elliot)<br />
<br />
=Winter Quarter=<br />
<br />
* '''1/11: Internal Colloquium'''<br />
** speaker 1: <br />
** speaker 2: <br />
** speaker 3: <br />
<br />
* '''1/18: Vibeke Sorensen'''<br />
<br />
* '''1/25: Rapid Fire Talks''':<br />
** speaker 1: Romain Michon<br />
** speaker 2: <br />
** speaker 3: <br />
** speaker 4: <br />
** speaker 5: <br />
** speaker 6: <br />
** speaker 7: <br />
** speaker 8: <br />
** speaker 9: <br />
** speaker 10: <br />
** speaker 11: <br />
** speaker 12: <br />
** speaker 13: <br />
** speaker 14: <br />
** speaker 15: <br />
** speaker 16: <br />
** speaker 17: <br />
** speaker 18: <br />
** speaker 19: <br />
** speaker 20: <br />
<br />
* '''2/1: Adrian Freed'''<br />
<br />
* '''2/8: Julia Talk'''<br />
<br />
* '''2/15: Maneesh Agrawala'''<br />
<br />
* '''2/22: Andrew Schloss'''<br />
<br />
* '''3/1: Internal Colloquium'''<br />
** speaker 1: Fernando Lopez-Lezcano, topic to be determined<br />
** speaker 2: Romain Michon<br />
** speaker 3: <br />
<br />
* '''3/8: Thomas Dimuzio'''<br />
<br />
* '''3/15: Ali Momeni'''</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Colloquium&diff=19287Colloquium2016-10-05T15:58:43Z<p>Rmichon: /* Fall Quarter */</p>
<hr />
<div>@5:30pm in the Classroom!<br />
<br />
= Fall Quarter =<br />
<br />
* '''9/28: New Student Presentations''' (Elliot)<br />
** Speaker 1: Yuval Adler, about "Being Brave and Signing Up to Be the First Speaker"<br />
** Speaker 2: Chris Lortie<br />
** Speaker 3: Juan Sierra, not sure about what but I'll figure it out<br />
** Speaker 4: Mark Hertensteiner, "Omnisonnace (working title): a music RPG"<br />
** Speaker 5: Megan Jurek<br />
** Speaker 6: Mark Rau<br />
** Speaker 7: Julie Herndon<br />
** Speaker 8: Yijun Zhou, "Global Net Orchestra Drum Circle"<br />
** Speaker 9: Rahul Agnihotri, "I Know Nothing, But I Will!"<br />
** Speaker 10: Ruoxi Zhang<br />
** Speaker 11: Mu-Heng Yang, "MIR using Deep Learning"<br />
** Speaker 12: Orchisama Das, "HUMs and other such things"<br />
** Speaker 13: Walker Davis<br />
** Speaker 14: Davor Branimir Vincze "Inflection Point"<br />
** Speaker 15: Prateek Murgai "My Journey"<br />
** Speaker 16: Jack Atherton<br />
** Speaker 17:<br />
** Speaker 18:<br />
** Speaker 19:<br />
<br />
* '''10/5 Ge Wang and Chris Chafe:''' (Kitty)<br />
<br />
* '''10/12: Fernando Lopez Lescano and Julius Smith''' (Alex)<br />
<br />
* '''10/19: Rapid fire talks'''<br />
** Speaker 1: Romain Michon<br />
** Speaker 2:<br />
** Speaker 3:<br />
** Speaker 4:<br />
** Speaker 5:<br />
** Speaker 6:<br />
** Speaker 7:<br />
** Speaker 8:<br />
** Speaker 9:<br />
** Speaker 10:<br />
<br />
* '''10/26: <!-- Jonathan Abel and Marina Bosi and Poppy Crum? -->''' <br />
How about a preview of Hagia Sophia @ Bing?<br />
<br />
* '''11/2: Øyvind Brandtsegg'''<br />
<br />
* '''11/9: Sasha Leitman and Jarek Kapuscinski'''<br />
<br />
* '''11/16: Tom Rossing and Jay LeBoeuf'''<br />
<br />
* '''Thanksgiving'''<br />
<br />
* '''11/30: Jonathan Berger and Takako Fuijoka''' (Madeline)<br />
<br />
* '''12/7: Matt Wright, Craig Sapp, and Eleanor Selfridge-Field'''</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19247Stompbox 20162016-07-24T19:00:15Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA]<br><br />
Pd basics lecture<br />
||<br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br />
|| <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Start on project<br />
|-<br />
|Thursday || <br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19246Stompbox 20162016-07-24T18:43:32Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA]<br><br />
Pd basics lecture<br />
||<br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br />
|| <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br><br />
Start on project<br />
|-<br />
|Thursday || <br />
<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19245Stompbox 20162016-07-24T18:37:13Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA]<br><br />
Pd basics lecture<br />
||<br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19244Stompbox 20162016-07-23T21:33:01Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA]<br><br />
Pd basics lecture<br />
||<br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19243Stompbox 20162016-07-23T21:21:45Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA]<br><br />
Pd basics lecture<br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19242Stompbox 20162016-07-03T16:28:18Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2016 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19241Stompbox 20162016-07-03T16:25:29Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Making Effects with Faust]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19240Stompbox 20162016-07-03T16:22:07Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]] and [[Sensors | Introduction to Sensors]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Faust Effects Lecture]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19239Stompbox 20162016-07-03T16:14:08Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]]--[[Sensors|Sensors1]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Faust Effects Lecture]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
[https://ccrma.stanford.edu/wiki/Stompbox_Case_HowTo Enclosure How-To and Customization]<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Case_HowTo&diff=19238Stompbox Case HowTo2016-07-03T16:13:57Z<p>Rmichon: Created page with "TODO!"</p>
<hr />
<div>TODO!</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19237Stompbox Faust Effects2016-07-03T15:52:44Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the [https://ccrma.stanford.edu/wiki/Stompbox_2016 2016 CCRMA Stompbox workshop] and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run: <br />
<br />
faust2puredata cryBaby.dsp<br />
<br />
If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" demonstrates how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
The second element of the list is the path that should be used to control a specific parameter. The following element is the current value of that parameter, then its default value, minimum value and maximum value. <br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]<br />
<br />
While "~/faust/examples" contains all the "standard" for examples, more Faust codes can be found on the web. In particular, we recommend that you check the [https://ccrma.stanford.edu/~rmichon/faustWorkshops/2016/ 2016 CCRMA Faust Workshop page] that contains a wide range of audio effects. To use them on your Satellite CCRMA, just create a new Faust file using a text editor like leafpad:<br />
<br />
leafpad &<br />
<br />
and follow the instructions above. Have fun!</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19236Stompbox 20162016-07-03T04:31:43Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]]--[[Sensors|Sensors1]] <br />
||<br />
[https://ccrma.stanford.edu/wiki/Stompbox_Faust_Effects Faust Effects Lecture]<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
Enclosure How-To and customization<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19235Stompbox Faust Effects2016-07-03T04:30:33Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run: <br />
<br />
faust2puredata cryBaby.dsp<br />
<br />
If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" demonstrates how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
The second element of the list is the path that should be used to control a specific parameter. The following element is the current value of that parameter, then its default value, minimum value and maximum value. <br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]<br />
<br />
While "~/faust/examples" contains all the "standard" for examples, more Faust codes can be found on the web. In particular, we recommend that you check the [https://ccrma.stanford.edu/~rmichon/faustWorkshops/2016/ 2016 CCRMA Faust Workshop page] that contains a wide range of audio effects. To use them on your Satellite CCRMA, just create a new Faust file using a text editor like leafpad:<br />
<br />
leafpad &<br />
<br />
and follow the instructions above. Have fun!</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19234Stompbox Faust Effects2016-07-03T04:29:37Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run: <br />
<br />
faust2puredata cryBaby.dsp<br />
<br />
If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" demonstrates how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
The second element of the list is the path that should be used to control a specific parameter. The following element is the current value of that parameter, then its default value, minimum value and maximum value. <br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]<br />
<br />
While "~/faust/examples" contains all the "standard" for examples, more Faust codes can be found on the web. In particular, we recommend that you check the [https://ccrma.stanford.edu/~rmichon/faustWorkshops/2016/ 2016 CCRMA Faust Workshop page] that contains a wide range of audio effects. To use them on your Satellite CCRMA, just create a new Faust file using a text editor like leafpad:<br />
<br />
leafpad &</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19233Stompbox Faust Effects2016-07-03T04:24:39Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run: <br />
<br />
faust2puredata cryBaby.dsp<br />
<br />
If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" demonstrates how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
The second element of the list is the path that should be used to control a specific parameter. The following element is the current value of that parameter, then its default value, minimum value and maximum value. <br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19232Stompbox Faust Effects2016-07-03T04:17:41Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run: <br />
<br />
faust2puredata cryBaby.dsp<br />
<br />
If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" shows how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19231Stompbox Faust Effects2016-07-03T04:17:09Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
"~/faust/demo/cryBaby.pd" shows how to use a Faust generated PD external. The first inlet takes messages that can be used to control the different parameters of the object. All the other inlets are audio inputs. Similarly, the first outlet can be used to retrieve messages and other outlets are audio outputs. To get a list of the parameters of the object, a bang can be sent to the first inlet and the list will be sent to the first outlet. For example, when a bang is sent to "cryBaby~" (from cryBaby.dsp), the following list is returned:<br />
<br />
print: checkbox /CRYBABY/Bypass 0 0 0 1 1<br />
print: hslider /CRYBABY/Wah-parameter 0.692913 0.8 0 1 0.01<br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19230Stompbox Faust Effects2016-07-03T03:58:45Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
First, you need to create a Faust file<br />
<br />
[[Image:stompbox_faust2pd_patch.png|700px|center]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19229Stompbox Faust Effects2016-07-03T03:58:17Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
First, you need to create a Faust file<br />
<br />
[[Image:stompbox_faust2pd_patch.png|900px|center]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=File:Stompbox_faust2pd_patch.png&diff=19228File:Stompbox faust2pd patch.png2016-07-03T03:57:51Z<p>Rmichon: </p>
<hr />
<div></div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19227Stompbox Faust Effects2016-07-03T03:56:58Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px|center]]<br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19226Stompbox Faust Effects2016-07-03T03:55:58Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|900px]]<br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19225Stompbox Faust Effects2016-07-03T03:55:44Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|800px]]<br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19224Stompbox Faust Effects2016-07-03T03:55:35Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
[[Image:stompbox_faust2pd.png|400px]]<br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=File:Stompbox_faust2pd.png&diff=19223File:Stompbox faust2pd.png2016-07-03T03:54:53Z<p>Rmichon: </p>
<hr />
<div></div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19222Stompbox Faust Effects2016-07-03T03:53:43Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an "examples" folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is a PD external that can be used in any PD patch as long as it is placed in the same folder as the patch that's using it or if it is located in a folder tracked by PD. <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19221Stompbox Faust Effects2016-07-03T01:55:43Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you run the "ls" command, you'll see a list of the folders contained in /home/ccrma. One of these folders is called "faust", go in it by typing "cd faust". If you run "ls" once again, you'll see that this folder contains an example folder. Go in this folder and run "ls". Each of the folder you see contains a series of example Faust codes that can be easily turned into a PD external simply by running the "faust2puredata" command. For example, go in "filtering" ("cd filtering"), run "ls" to see what this folder contains and then run "faust2puredata cryBaby.dsp". If you run "ls" again you'll see that a file named "cryBaby~.pd_linux" was created. This is the PD external that can be used in any PD patch as long as it is placed in the same folder<br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19220Stompbox Faust Effects2016-07-03T01:42:25Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you type `ls` <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19219Stompbox Faust Effects2016-07-03T01:42:14Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you type <source>ls</source> <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19218Stompbox Faust Effects2016-07-03T01:40:45Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you type ''ls'' <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19217Stompbox Faust Effects2016-07-03T01:40:35Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), connect to your Satellite CCRMA using the terminal. If you type 'ls' <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19216Stompbox Faust Effects2016-07-03T01:38:01Z<p>Rmichon: </p>
<hr />
<div>This tutorial is provided as part of the 2016 CCRMA Stompbox workshop and was written by Romain Michon.<br />
<br />
[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.<br />
<br />
As usual (and as described in [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC here]), <br />
<br />
First, you need to create a Faust file</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19215Stompbox Faust Effects2016-07-03T01:34:13Z<p>Rmichon: </p>
<hr />
<div>[http://faust.grame.fr Faust] is a functional programming language for real time signal processing. It allows to easily make a wide range of objects going from VST plug-ins to iOS apps for different platforms. This quick tutorial shows how to generate advanced audio effects for PureData using Faust.</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Faust_Effects&diff=19214Stompbox Faust Effects2016-07-03T01:27:58Z<p>Rmichon: Created page with "[http://faust.grame.fr Faust] is a function"</p>
<hr />
<div>[http://faust.grame.fr Faust] is a function</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19213Stompbox 20162016-07-02T23:46:15Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]]--[[Sensors|Sensors1]] <br />
||<br />
Faust effects lecture<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
Enclosure How-To and customization<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19212Stompbox Real Sensors 20162016-07-02T23:33:44Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
NOTE: Some of the pictures on this page show the old version of the Satellite CCRMA kit that was based on a BeagleBoard. This shouldn't change anything to the understanding of the different figures, etc.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
* Make sure that the Arduino is connected to one of the USB port of the Raspberry Pi.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
<br />
[[Image:circuit2.jpg]]<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/pd/stompbox/demo-stompboxes/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect too so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<!--<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
--><br />
<br />
== Rapid Prototyping: Try Incorporating Other Sensors ==<br />
<br />
Making an enclosure is time-intensive, so in the context of the workshop, we recommend exploring ideas and designs first in a rapid prototyping context.<br />
<br />
* So far you have been using a potentiometer for controlling effect parameters:<br />
[[Image:Pot.png]]<br />
<br />
* but you could also use a force-sensitive resistor (FSR):<br />
[[Image:FSR.png]]<br />
<br />
* or a bend sensor<br />
[[Image:Bend_sensor.png]]<br />
<br />
* or a photoresistor <br />
[[Image:Photo.png]]<br />
<br />
* or an optical reflective sensor<br />
[[Image:Optical.png]]<br />
<br />
The reflective optical sensor consists of an infrared LED and a phototransistor that passes an amount of current proportional to the reflected light received. We use two kinds at CCRMA, the Fairchild [http://ccrma.stanford.edu/courses/250a/docs/datasheets/QRB1114.pdf QRB1114] has the letter "E" (Emitter) to label the LED, and the label "S" (Sensor) for the phototransistor. The Optek [http://ccrma.stanford.edu/courses/250a/docs/datasheets/OPB703.pdf OPB704] uses the symbols for an LED and a transistor to label the two sides. One leg of the sensor is connected to +5V, which supplies current, and the voltage drop across the 10k resistor that we measure is proportional to the amount of current.<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
== Important Note ==<br />
<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19211Stompbox Real Sensors 20162016-07-02T23:29:20Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
NOTE: Some of the pictures on this page show the old version of the Satellite CCRMA kit that was based on a BeagleBoard. This shouldn't change anything to the understanding of the different figures, etc.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
* Make sure that the Arduino is connected to one of the USB port of the Raspberry Pi.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
<br />
[[Image:circuit2.jpg]]<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/pd/stompbox/demo-stompboxes/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect too so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<!--<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
--><br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
== Important Note ==<br />
<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19210Stompbox Real Sensors 20162016-07-02T23:15:18Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
NOTE: Some of the pictures on this page show the old version of the Satellite CCRMA kit that was based on a BeagleBoard. This shouldn't change anything to the understanding of the different figures, etc.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
* Make sure that the Arduino is connected to one of the USB port of the Raspberry Pi.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
<br />
[[Image:circuit2.jpg]]<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
<br />
<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
<br />
<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/on-startup/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect to so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<br />
<br />
<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
<br />
<br />
<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
<br />
<br />
<br />
== Important Note ==<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19209Stompbox Real Sensors 20162016-07-02T23:12:27Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
* Make sure that the Arduino is connected to one of the USB port of the Raspberry Pi.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
<br />
[[Image:circuit2.jpg]]<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
<br />
<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
<br />
<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/on-startup/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect to so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<br />
<br />
<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
<br />
<br />
<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
<br />
<br />
<br />
== Important Note ==<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19208Stompbox Real Sensors 20162016-07-02T23:09:18Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
* Make sure that the Arduino is connected to one of the USB port of the Raspberry Pi.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
[[Image:circuit2.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
<br />
<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
<br />
<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/on-startup/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect to so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<br />
<br />
<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
<br />
<br />
<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
<br />
<br />
<br />
== Important Note ==<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19207Stompbox Real Sensors 20162016-07-02T23:07:30Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
<br />
Designed by Edgar Berdahl (updated by Romain Michon)<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (3.175mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (3.175mm) jack.<br />
<br />
== Putting Things Together ==<br />
<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
<br />
<br />
Viewed from further away, your breadboard should now look like the following:<br />
<br />
[[Image:circuit0.jpg]]<br />
<br />
<br />
<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
[[Image:circuit2.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
<br />
<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
<br />
<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/on-startup/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect to so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<br />
<br />
<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
<br />
<br />
<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
<br />
<br />
<br />
== Important Note ==<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Real_Sensors_2016&diff=19206Stompbox Real Sensors 20162016-07-02T23:01:03Z<p>Rmichon: Created page with "<font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br> Designed by Edgar Berdahl Due on Wednesday at 9AM For this lab you need your [http://ccrma.stanford.e..."</p>
<hr />
<div><font size=5>Lab 2: Controlling an Effect with Real Sensors</font><br><br />
Designed by Edgar Berdahl<br />
<br />
Due on Wednesday at 9AM<br />
<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a laptop computer with Ethernet adaptor to program it, and some headphones with a mini 1/8" (2.54mm) stereo jack.<br />
<br />
You are also invited to bring the following optional items, but they are by no means required:<br />
* Some of your favorite breadboardable sensors and LEDs.<br />
* A set of small, battery powered speakers with 1/8" (2.54mm) jack.<br />
<br />
<br />
Note: In this lab, the images will show the Beagle Board xM instead of the Raspberry Pi, but actually all of the wiring is essentially the same.<br />
<br />
<br />
== Make A Sandwich ==<br />
* Make a sandwich using the acrylic so that the Raspberry Pi sits on the bottom level and the breadboard sits on the top level (see below).<br />
* When placing the breadboard, make sure that the higher numbered rows are facing the USB and ethernet ports of the Raspberry Pi.<br />
* It may fit better if you use three nylon screws instead of four when making the sandwich.<br />
* Insert your Arduino Nano into the breadboard all the way at the end toward the higher numbered rows and seated roughly in the middle (see below).<br />
<br />
[[Image:EmptySatellite2.jpg|400px]]<br />
<br />
(Board shown underneath is the Beagle Board xM instead of the Raspberry Pi, but the idea is the same)<br />
<br />
<br />
<br />
<br />
<!-- == Power Up and Prepare Arduino ==<br />
* Use the same procedure as [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2013 described before] to power up Satellite CCRMA and login as the user ''ccrma'' with the password ''temppwd''.<br />
<br />
* Don't forget to stop the default patch from running by executing the command<br />
<br />
'''stop-default'''<br />
<br />
* After you are logged in, see which devices are attached to Linux by running the command following command. They will appear the be files. Wow, there are so many! <br />
<br />
''ls /dev''<br />
<br />
* To list only the serial interface devices type<br />
<br />
''ls /dev/tty*''<br />
<br />
* Now use the retractable USB cable to plug the Arduino into one of the USB ports of the Raspberry Pi. As the Arduino powers up, you should see some lights come on.<br />
<br />
* Now run<br />
<br />
''ls /dev/tty*''<br />
<br />
again, and you should now see the new device ''/dev/ttyUSB0'' appear also, which represents the Arduino Nano. <br />
<br />
Troubleshooting: If you do not see ''/dev/ttyUSB0'', then try rebooting using ''sudo reboot'' to see if that fixes this problem. (If you reboot, this will take about 45 seconds, and you will have to login again using ''ssh''. If that doesn't work, come talk to us. If you are a Linux pro, you can try to debug the problem yourself by typing ''dmesg'' and looking at the result.)<br />
<br />
* The next step is to install some simple firmware onto the Arduino so that it knows what we want it to do. Start the Arduino software in the terminal by typing <br />
<br />
''arduino &''<br />
<br />
* Open ''StandardFirmata'' from the Arduino software pull-down menus File|Examples|Firmata. Look at the program. This is what will control the Arduino.<br />
<br />
* Select ''Arduino Nano w/ ATMega328'' under Tools->Board and ''/dev/ttyUSB0'' under Tools->Serial Port. Then hit the Play button to verify and compile the program. <br />
<br />
* Upload the Firmata firmware to your Arduino Nano using upload button, the second square button from the left (the one with the sideways arrow).<br />
<br />
* Close the Arduino program by closing all of the Arduino windows. (This is important because it frees up the USB serial port so that Pd can talk to the Arduino board later.)<br />
<br />
--><br />
<br />
<br />
<br />
== Power Connections ==<br />
* In order to run circuits on the breadboard, you need to get power to it. The Arduino gets 5V from the USB connection, so in this section you will make the 5V accessible to the breadboard.<br />
* Make sure that your Arduino is mounted at the very end of the breadboard with the higher-numbered rows, as shown in the following picture. In that case, the GND and 5V pins will end up in the 19th row. (Otherwise if your Arduino isn't mounted this way, you simply won't be able to rely on the row numbers, but you can still figure out how to wire things up!)<br />
* Recall first that that holes in the solderless bread board are wired together as shown:<br />
<br />
[[Image:Breadboard.png]]<br />
<br />
* Using short jumpers, connect the GND row to the blue "GND" bus on the breadboard, and connect the 5V row to the red "power" bus on the breadboard.<br />
* Connect the "GND" and "power" busses from both sides of the breadboard together as shown.<br />
<br />
[[Image:circuit0-big.jpg]]<br />
<br />
<br />
<br />
Viewed from further away, your breadboard should now look like the following:<br />
<br />
[[Image:circuit0.jpg]]<br />
<br />
<br />
<br />
<br />
== First Circuit: Potentiometer ==<br />
<br />
Now you will build the following voltage divider circuit, to connect one potentiometer to analog input A0.<br />
<br />
[[Image:pot-A0.jpg]]<br />
<br />
For some help on placing the wires, please see the following picture. In order to ensure the correct orientation, ensure that the text on the potentiometer is facing '''away''' from the Arduino (see also oblique picture in next section).<br />
[[Image:circuit2.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Second Potentiometer ==<br />
<br />
Now connect a second potentiometer to analog input A3 using the same voltage divider circuit.<br />
<br />
[[Image:SBcircuit3-direct.jpg]]<br />
<br />
<br />
<br />
Again, ensure that the text on the potentiometer is facing *away* from the Arduino (see the red boxes in the following figure):<br />
<br />
[[Image:SBcircuit3.jpg]]<br />
<br />
<br />
<br />
<br />
== Add A Button ==<br />
<br />
Most stomp boxes have a button, so we include that as well according to the following circuit:<br />
<br />
[[Image:SBbutton-circuit.jpg]]<br />
<br />
The corresponding picture of the bread board is shown below:<br />
<br />
[[Image:SBcircuit5.jpg]]<br />
<br />
<br />
<br />
<br />
== Add An LED ==<br />
<br />
Finally, we add a light-emitting diode (LED) for fun and to help with debugging. Recall that current can only flow in one direction through a diode. One good trick to remember for LEDs is that the longer leg (the anode) points toward the power supply. The 220 Ohm resistor limits the amount of current that can flow through the LED.<br />
<br />
[[Image:LEDPWMSchematic.jpg]]<br />
<br />
[[Image:SBcircuit6.jpg]]<br />
<br />
<br />
<br />
<br />
== Test The Tremolo Effect ==<br />
<br />
Now you will test a very simple tremolo effect.<br />
<br />
* Connect headphones or some small loudspeakers to the ''audio out'' jack on the Beagle Board. (It is the one closer to the middle of the board.)<br />
* Connect an input audio source, such as a small MP3 player or instrument the audio output of the jack on the Beagle Board.<br />
* Start pd by running <tt>pd &</tt><br />
* Open the patch <tt>~/on-startup/stompbox-tremolo.pd</tt> using the File|Open menu option.<br />
* Start audio signal computation by checking the ''compute audio'' button in the main pd window.<br />
<br />
[[Image:SBsimple-stompbox2.png]]<br />
<br />
<br />
* Verify that turning the potentiometer connected to input pin A3 on the Arduino adjusts the value A3 shown in the main patch window. This should also change the output volume of the effect.<br />
* Verify that turning the potentiometer connected to input pin A0 on the Arduino adjusts the oscillator frequency.<br />
* Verify that clicking the "Turn LED on or off" toggle will control the LED.<br />
<br />
* Look inside the subpatch <tt>pd get-input-from-arduino</tt>, which access the Arduino, and figure out how you could access data coming from the other analog inputs. Would you need to add an outlet to the subpatch?<br />
* Verify that when you press the button, the ''mode'' checkbox changes its state. Modify the effect to so that the mode checkbox implements a bypass switch. We will ask some volunteers in class the following morning to explain how to do this.<br />
<br />
<br />
<br />
<br />
== Build A Wah Effect ==<br />
<br />
* Open the file ''~/pd/stompbox/demo-patches/11_stomp_wah_model.pd'' and play around with the filter parameters for a while.<br />
* Note that there is no way to adjust the parameters without a user interface. Take the ''pd get-input-from-arduino'' object from the previous patch, and modify it to control the Wah effect parameters in a sensible way. Get ready to rock out!<br />
* Optional: Find a potentiometer that can be adjusted with your foot (e.g. talk to Edgar) and wire it into the circuit to make the wah effect control complete!<br />
* Alternative optional activity: Look inside how the filters are adjusted and make your own filter design.<br />
<br />
<br />
<br />
<br />
== Optional: Build A New Effect ==<br />
<br />
* Build a new effect whose parameters are adjustable by the potentiometers and button. We will ask for volunteers to demonstrate this the following morning in class. You can build on what you did in lab 1 if you like.<br />
<br />
* Think about the result<br />
** do the controls allow the entire space of parameters to be explored?<br />
** is it easy to choose any desired set of parameters?<br />
** does the effect sound good?<br />
** does it have dynamics?<br />
** would you want to use it live?<br />
*** If not, what is missing still?<br />
<br />
<br />
<br />
<br />
== Important Note ==<br />
Some small amount of the text and images here was taken from prior laboratory exercises for the course [https://ccrma.stanford.edu/courses/250a/ Music 250A]. We regret that we do not know who contributed these elements, but these people are likely to include Wendy Ju, Bill Verplank, Michael Gurevich, and possibly more.<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox 2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19205Stompbox 20162016-07-02T21:36:35Z<p>Rmichon: /* Course Schedule */</p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:esteban@ccrma.Stanford.edu Esteban Maestre] and [mailto:rmichon@ccrma.stanford.edu Romain Michon]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
The workshop incorporates:<br />
* Most basic theory of signal processing<br />
* Description of operation of prior stompboxes and digital audio effects<br />
* Laboratory exercise teaching you how to program our own open-source software and hardware platform involving:<br />
** connecting to your stompbox over an Ethernet connection from your laptop<br />
** creating new digital audio effects by connecting together basic building blocks in the graphical<br />
** programming language Pure Data<br />
** building simple button and knob interfaces to Pure Data<br />
* Introduction to human-computer interface devices for projects<br />
Further discussion of open-source hardware and software platforms including Satellite CCRMA. Finally, we will round out the workshop with a roundtable presentation of the stompboxes you create followed by an optional evening jam session for fun.<br />
<br />
The primary programming language to be used during this workshop is Pure Data. Besides C++ digital audio effects programming (a somehow more classical approach), a programming language becoming more and more popular for signal processing (being lower level and at first less intuitive than Pure Data) is Faust [http://faust.grame.fr/], but it will be left out of support for the basic lab exercises. Depending on the interest of participants, Edgar may briefly lecture about the basics on Faust programming so that you can get an idea. Of course, you are very welcome to satisfy you curiosity. An excellent tutorial for audio signal processing in Faust written by Prof. Julius Smith can be found here [https://ccrma.stanford.edu/~jos/aspf/aspf.pdf].<br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2016 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]]--[[Sensors|Sensors1]] <br />
||<br />
Faust effects lecture<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors] and Lab 3: [https://ccrma.stanford.edu/wiki/Stompbox_Rapid_Prototyping Rapid Prototyping]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
Enclosure How-To and customization<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Lab_0_2016&diff=19204Stompbox Lab 0 20162016-07-02T21:35:50Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 0: Making Sound with Satellite CCRMA</font><br><br />
<br />
Most instructions by Edgar Berdahl (updated by Romain Michon), and lab patches for musical interaction description by Matt Wright and possibly others.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a computer to program it, and some headphones with a mini 1/8" stereo jack.<br />
<br />
''' ''Please note that we do not expect you to finish this "lab 0." These exercises and considerations are just here to get you warmed up and introduce you to pd. The future lab exercises will be much more specifically oriented.'' '''<br />
<br />
== The Satellite CCRMA Setup (Before Adding Arduino) ==<br />
<br />
Included in your kit so far you should have<br />
- Raspberry Pi 2<br />
- One memory card (it may already be inserted into your Raspberry Pi)<br />
- One Ethernet cable for communication with your laptop<br />
- One USB micro cable<br />
- One USB audio interface with 1/4" connectors<br />
<br />
If you are missing something, please go get it before assembling your kit. Make sure the SD memory card is seated all of the way in its slot.<br />
<br />
== Powering Up For The First Time ==<br />
<br />
* Plug the Ethernet port of the Raspberry Pi into your laptop. <br />
<br />
* Plug the USB audio device into the Raspberry Pi. ('''The USB audio device won't work if you plug it in after it has booted up.''')<br />
<br />
* Then use the USB micro cable to power up the Raspberry Pi. (If you have a USB power supply, you could use it to power the Raspberry Pi, or if not you can try using your laptop's USB connector to power the Rasberry Pi.) You should see some lights turn on, flickering every now and then. This means that the Raspberry Pi is booting up.<br />
<br />
== Connect To Satellite CCRMA ==<br />
<br />
In order to see what your Satellite CCRMA kit is doing and program it, you need to log in to it. To do so, follow [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC these instructions].<br />
<br />
After you login, you will see the prompt ''ccrma@satellite:~$'' This means that you are logged into a computer named "satellite" as the user "ccrma", and you are currently in the directory ~, which is the shortcut for your home directory.<br />
<br />
== Avoid Powering Down the Board Without Halting it First! ==<br />
<br />
Would you take the battery out of your laptop and unplug its power adaptor without shutting down? ''I don't think so!'' The same goes for Satellite CCRMA, at least when you can avoid it, because it is a small computer running linux.<br />
<br />
Now we will test the halt procedure. Run the halt command as superuser by typing ''sudo halt'' at the Satellite CCRMA prompt. Then you will again have to type in the password ''temppwd'' in order to have the privilege to run this command. Wait until about 15 seconds after you see the message "Connection to 192.168.105.106 closed by remote host," and then disconnect the power from the Raspberry Pi via the micro USB connector.<br />
<br />
== Getting Comfortable With Satellite CCRMA ==<br />
<br />
* Turn on Satellite CCRMA again using the same procedure as before by plugging the micro USB connector into the Raspberry Pi. After about 30 seconds, the board should be booted up again, so you can log in again by running the command <br />
<br />
''ssh -XY ccrma@192.168.105.106''<br />
<br />
* Run the command ''pwd'' to find out the current directory. You will find that you are in the ''ccrma'' subdirectory of the directory ''/home''.<br />
<br />
* Type the ''ls'' command to see what is in the current directory. The blue items are subdirectories of the current directory. You can change directories using the ''cd'' command. For instance, to change into the ''pd'' subdirectory, you should run the command<br />
<br />
''cd pd''<br />
<br />
* Now again type ''pwd'' to make sure that you understand where you are! Run the ''ls'' command to see what files are in here.<br />
<br />
== Starting Audio And Pd ==<br />
<br />
* In order to be able to hear audio, you will need to plug a pair of ear buds, headphones, or loudspeakers into the 1/4" (6.35mm) jack on the USB audio interface.<br />
<br />
* A default pd patch might starts running automatically when your kit finishes booting up. To stop the default pd patch from running, execute the command<br />
<br />
''stop-default''<br />
<br />
'''Remember that each time you boot up your kit and want to edit your patch, you should stop the default patch from running by using the command ''stop-default'' '''<br />
<br />
* Start pd now with the following command, which tells pd to use the USB audio device and to set the audio latency to about 15 ms (the "space" & at the end of the command just means that the pd process shouldn't take over the terminal -- that way you can keep using the terminal independently of whatever pd is doing)<br />
<br />
''pd &''<br />
<br />
This time the graphical user interface (GUI) for pd should also start.<br />
<br />
* To start audio, click on the ''Compute audio'' checkbox.<br />
<br />
* Now to test audio, go to the media pull-down menu and choose ''Test Audio and MIDI.'' If you still do not here any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
* Once you have audio working, close the window test audio and MIDI window.<br />
<br />
* Choose ''Open'' from the ''File'' menu and select the patch ''4_algorithmic_music.pd'' within the ''pd_lecture'' subdirectory. Then go back to the patch, move the speed and width sliders slightly to the right, and bring up the volume. You should now hear some sound in your headphones. Play around with the parameters to see what new sounds you can discover.<br />
<br />
Troubleshooting: If you still do not hear any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
== Dive Into Pd ==<br />
<br />
* The patch ''~/pd/examples/just-play-WAV-files/play-WAV-file.pd'' shows the easiest way to play a WAV file. Try it out! <br />
<br />
* Look at the pd lecture patches stored in ''~/pd/pd-lecture'' (For example, see the patch ''4_algorithmic_music.pd''. Make sure that audio is on and increase the volume from zero in the patch.)<br />
<br />
* Right-click or option-click on any object to get a contextual menu including "help," which opens that object's help patch. (If you are using a Mac and don't have a right mouse button, then go to the ''X11'' pull-down menu, select ''Preferences'', and make sure that ''Emulate three button mouse'' is checked in the ''Input'' pane. Now, you should be able to right-click by clicking while holding down the Command key.)<br />
<br />
* Right-click on a blank portion of a Pd patch. Now when you select "help" you get a list of Pd's built-in objects, arranged by category.<br />
<br />
* In the upper right hand corner of each Pd window is a "help" menu. This accesses the Pd tutorials as well as some online reference documentation.<br />
<br />
== The Patches Are Already On The Board ==<br />
<br />
* You can find the main patch for the laboratory exercise at /home/ccrma/pd/labs-Music-250a-2012/lab1/myinstrument.pd Open it and make sure that ''compute audio'' is set to on. Play around with the patch. You should be able to exhaust its musical potential in a matter of minutes; reflect on its strengths and limitations.<br />
<br />
* Also try to understand how it works as a piece of software. (But please don't get hung up on the arcana - as always, if you get stuck, ask for help rather than waste time.)<br />
<br />
==Short questions==<br />
<br />
Why is the following patch a bad idea?<br />
<br />
[[Image:badidea.gif]]<br />
<br />
Make a patch that shows how to connect some objects together to calculate the function ''1-x'' where ''x'' is an input number. Save the patch in a file called ''OneMinus''.<br />
<br />
== List Of Objects ==<br />
<br />
* Here are some lists of pd objects that you can use to discover new object names: [http://protman.com/content/list-puredata-objects-and-extended-objects http://protman.com/content/list-puredata-objects-and-extended-objects] [http://www.umatic.nl/workshop/objects.txt http://www.umatic.nl/workshop/objects.txt]<br />
<br />
== More Sound Synthesizer Patches ==<br />
<br />
One intriguing way to synthesize sound is using physical models. A ''physical model'' is a computer program that simulates the laws of physics to create sound. Some physical models simulate traditional acoustic musical instruments, or other models simulate hypothetical situations that could be built using physical elements, but might be impractical. Try playing around with some of the physical models in ~/pd/SaM-models -- the ''FireFaderSimulator'' versions of the patches are the ones you will want to use. The process of tuning the model parameters can be useful from a compositional perspective because it can help provide you with a specific palette of sounds.<br />
<br />
== Copying Files To and From Your Kit ==<br />
<br />
* Alternatively, if you would like to use software with a nice GUI for copying files back and forth from your kit, you can install additional special software on your laptop. For Windows, install [https://itservices.stanford.edu/service/ess/pc/securefx Secure FX], or for Mac OS X, install [https://itservices.stanford.edu/service/ess/mac/fetch Fetch]. These programs actually use ''scp'', but they hide the details of the pathnames from you.<br />
<br />
== Design a different musical interaction ==<br />
<br />
Here are some ideas of changes that might make the patch more interesting:<br />
<br />
* Involve more QWERTY keys<br />
* Involve the mouse (see the [MouseState] object)<br />
* Load in a larger collection of samples.<br />
** Implement a mechanism to switch among banks of samples<br />
* Multiple gestures to one result: design a way for the parameters of each triggered note to depend on multiple key presses. For example, maybe only the space bar triggers notes, and all the other keys determine parameters of notes.<br />
** Make your patch automatically generate a bassline as a function of the key presses <br />
** Set multiple parameters modally, as volume works in the sample patch<br />
** Use chording: keep track of all the keys that are currently pressed, and use only that information to set the parameters for each note.<br />
* One gesture to multiple results<br />
** Use the "metro" object to trigger a steady stream of notes. Now you have two new parameters: repetition rate, and whether the metro is on or off.<br />
** Use the "counter" object to step through a cycle (of samples, parameter settings, etc.)<br />
** You could combine "metro" and "counter" to build a rudimentary sequencer that can step through a rhythmic pattern<br />
** Invent a mechanism to record short sequences of keypresses and play them back in time.<br />
* Incorporate looping or other interactive controls over the soundfile playback<br />
* Use Pd's "spigot" object to route control information to different parts of your patch at different times<br />
* Use some additional signal processing such as a filter, delay line, reverb, tremolo, etc. This gives you more parameters to control.<br />
* Polyphony: make it so the patch can play multiple samples at the same time. (Hint: put multiple copies of "play-sample" in your patch)<br />
* Use a totally different form of sound synthesis, such as FM, granular, or physical modeling.<br />
<br />
We recommend that you pick '''only one or a small number''' of these and work on it in depth, iterating on both the program/test/debug cycle as well as the design/implement/play cycle to craft something that has actual musical potential or is at least more fun to play. If you have an existing idea for your class project, you could use this lab to start thinking about implementing some of the modes and mappings. By all means, if you're inspired to try something else, go for it. If you'd rather spend today getting more of a broad sense of Pd's capabilities, feel free to work on many of these suggestions.<br />
<br />
== The Community ==<br />
<br />
There is a large, dedicated, and very generous community of Pd users on the Internet. Do some web searching (e.g., with a search engine, or else starting from some more specific resources) and look for interesting externals and/or patches. '''Optional:''' Download, install, and play with at least one. Can you incorporate it into what you programmed in the previous part?<br />
<br />
For more help in finding resources, don't forget to look on the [[PID Links]] page.<br />
<br />
== Appendix: Troubleshooting ==<br />
<br />
Tips:<br />
<br />
* If you are having problems with audio, make sure that ''compute audio'' is set to on.<br />
* If the audio is stuttering, then your processor might not be powerful enough to run all of the patches that are open. Remember, Satellite CCRMA is not as powerful as a laptop. Therefore, be careful about building complicated patches. You can monitor how much CPU you are using by running the ''top'' command in the terminal.<br />
* Type <tt>dmesg</tt> to see if there are any relevant messages that look like error messages.<br />
<br />
Solutions:<br />
* If you are running out of space on the SD card, you can free up some space by deleting items in <tt>/usr/src</tt>. For instance, all of the files needed for building Pure Data Extended are rather large.<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox_2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Lab_0_2016&diff=19203Stompbox Lab 0 20162016-07-02T21:16:39Z<p>Rmichon: </p>
<hr />
<div><font size=5>Lab 0: Making Sound with Satellite CCRMA</font><br><br />
<br />
Most instructions by Edgar Berdahl (updated by Romain Michon), and lab patches for musical interaction description by Matt Wright and possibly others.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a computer to program it, and some headphones with a mini 1/8" stereo jack.<br />
<br />
''' ''Please note that we do not expect you to finish this "lab 0." These exercises and considerations are just here to get you warmed up and introduce you to pd. The future lab exercises will be much more specifically oriented.'' '''<br />
<br />
== The Satellite CCRMA Setup (Before Adding Arduino) ==<br />
<br />
Included in your kit so far you should have<br />
- Raspberry Pi 2<br />
- One memory card (it may already be inserted into your Raspberry Pi)<br />
- One Ethernet cable for communication with your laptop<br />
- One USB micro cable<br />
- One USB audio interface with 1/4" connectors<br />
<br />
If you are missing something, please go get it before assembling your kit. Make sure the SD memory card is seated all of the way in its slot.<br />
<br />
== Powering Up For The First Time ==<br />
<br />
* Plug the Ethernet port of the Raspberry Pi into your laptop. <br />
<br />
* Plug the USB audio device into the Raspberry Pi. ('''The USB audio device won't work if you plug it in after it has booted up.''')<br />
<br />
* Then use the USB micro cable to power up the Raspberry Pi. (If you have a USB power supply, you could use it to power the Raspberry Pi, or if not you can try using your laptop's USB connector to power the Rasberry Pi.) You should see some lights turn on, flickering every now and then. This means that the Raspberry Pi is booting up.<br />
<br />
<br />
<br />
<br />
== Connect To Satellite CCRMA ==<br />
In order to see what your Satellite CCRMA kit is doing and program it, you need to log in to it. To do so, follow [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC these instructions].<br />
<br />
After you login, you will see the prompt ''ccrma@satellite:~$'' This means that you are logged into a computer named "satellite" as the user "ccrma", and you are currently in the directory ~, which is the shortcut for your home directory.<br />
<br />
<br />
<br />
<br />
== Avoid Powering Down the Board Without Halting it First! ==<br />
Would you take the battery out of your laptop and unplug its power adaptor without shutting down? ''I don't think so!'' The same goes for Satellite CCRMA, at least when you can avoid it, because it is a small computer running linux.<br />
<br />
Now we will test the halt procedure. Run the halt command as superuser by typing ''sudo halt'' at the Satellite CCRMA prompt. Then you will again have to type in the password ''temppwd'' in order to have the privilege to run this command. Wait until about 15 seconds after you see the message "Connection to 192.168.105.106 closed by remote host," and then disconnect the power from the Raspberry Pi via the micro USB connector.<br />
<br />
<br />
<br />
<br />
== Getting Comfortable With Satellite CCRMA ==<br />
* Turn on Satellite CCRMA again using the same procedure as before by plugging the micro USB connector into the Raspberry Pi. After about 30 seconds, the board should be booted up again, so you can log in again by running the command <br />
<br />
''ssh -XY ccrma@192.168.105.106''<br />
<br />
* Run the command ''pwd'' to find out the current directory. You will find that you are in the ''ccrma'' subdirectory of the directory ''/home''.<br />
<br />
* Type the ''ls'' command to see what is in the current directory. The blue items are subdirectories of the current directory. You can change directories using the ''cd'' command. For instance, to change into the ''pd'' subdirectory, you should run the command<br />
<br />
''cd pd''<br />
<br />
* Now again type ''pwd'' to make sure that you understand where you are! Run the ''ls'' command to see what files are in here.<br />
<br />
<br />
<br />
<br />
<br />
== Starting Audio And Pd ==<br />
<br />
* In order to be able to hear audio, you will need to plug a pair of ear buds, headphones, or loudspeakers into the 1/4" (5.08mm) jack on the UCG 102 guitar link USB audio interface.<br />
<br />
* A default pd patch starts running automatically when your kit finishes booting up. To stop the default pd patch from running, execute the command<br />
<br />
''stop-default''<br />
<br />
'''Remember that each time you boot up your kit and want to edit your patch, you should stop the default patch from running by using the command ''stop-default'' '''<br />
<br />
* Start pd now with the following command, which tells pd to use the USB audio device and to set the audio latency to about 15 ms (the "space" & at the end of the command just means that the pd process shouldn't take over the terminal -- that way you can keep using the terminal independently of whatever pd is doing)<br />
<br />
''pd &''<br />
<br />
This time the graphical user interface (GUI) for pd should also start.<br />
<br />
* To start audio, click on the ''Compute audio'' checkbox.<br />
<br />
* Now to test audio, go to the media pull-down menu and choose ''Test Audio and MIDI.'' If you still do not here any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
* Once you have audio working, close the window test audio and MIDI window.<br />
<br />
* Choose ''Open'' from the ''File'' menu and select the patch ''4_algorithmic_music.pd'' within the ''pd_lecture'' subdirectory. Then go back to the patch, move the speed and width sliders slightly to the right, and bring up the volume. You should now hear some sound in your headphones. Play around with the parameters to see what new sounds you can discover.<br />
<br />
Troubleshooting: If you still do not here any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
<br />
<br />
<br />
<br />
== Dive Into Pd ==<br />
* The patch ''~/pd/examples/just-play-WAV-files/play-WAV-file.pd'' shows the easiest way to play a WAV file. Try it out! <br />
<br />
* Look at the pd lecture patches stored in ''~/pd/pd-lecture'' (For example, see the patch ''4_algorithmic_music.pd''. Make sure that audio is on and increase the volume from zero in the patch.)<br />
<br />
* Right-click or option-click on any object to get a contextual menu including "help," which opens that object's help patch. (If you are using a Mac and don't have a right mouse button, then go to the ''X11'' pull-down menu, select ''Preferences'', and make sure that ''Emulate three button mouse'' is checked in the ''Input'' pane. Now, you should be able to right-click by clicking while holding down the Command key.)<br />
<br />
* Right-click on a blank portion of a Pd patch. Now when you select "help" you get a list of Pd's built-in objects, arranged by category.<br />
<br />
* In the upper right hand corner of each Pd window is a "help" menu. This accesses the Pd tutorials as well as some online reference documentation.<br />
<br />
<br />
<br />
<br />
== The Patches Are Already On The Board ==<br />
* You can find the main patch for the laboratory exercise at /home/ccrma/pd/labs-Music-250a-2012/lab1/myinstrument.pd Open it and make sure that ''compute audio'' is set to on. Play around with the patch. You should be able to exhaust its musical potential in a matter of minutes; reflect on its strengths and limitations.<br />
<br />
* Also try to understand how it works as a piece of software. (But please don't get hung up on the arcana - as always, if you get stuck, ask for help rather than waste time.)<br />
<br />
<br />
<br />
<br />
<br />
==Short questions==<br />
Why is the following patch a bad idea?<br />
<br />
[[Image:badidea.gif]]<br />
<br />
Make a patch that shows how to connect some objects together to calculate the function ''1-x'' where ''x'' is an input number. Save the patch in a file called ''OneMinus''.<br />
<br />
<br />
<br />
<br />
<br />
== List Of Objects ==<br />
* Here are some lists of pd objects that you can use to discover new object names: [http://protman.com/content/list-puredata-objects-and-extended-objects http://protman.com/content/list-puredata-objects-and-extended-objects] [http://www.umatic.nl/workshop/objects.txt http://www.umatic.nl/workshop/objects.txt]<br />
<br />
<br />
<br />
<br />
<br />
== More Sound Synthesizer Patches ==<br />
* Try out some of the patches from Andy Farnell's book ''Designing Sound.'' These patches are installed in ''~/pd/DesigningSoundBookExamples'' Most of the patches in there work with this version of pd, but a few patches don't! (As you try out the patches, keep in mind also that many of the patches are ''subpatches.'' That means that they are lower level patches that are used to serve some specific purpose within a higher level patch. Therefore, you may have to search around some to find the higher level patches that are easier to use to make sound.)<br />
<br />
* One intriguing way to synthesize sound is using physical models. A ''physical model'' is a computer program that simulates the laws of physics to create sound. Some physical models simulate traditional acoustic musical instruments, or other models simulate hypothetical situations that could be built using physical elements, but might be impractical. Try playing around with some of the physical models in ~/pd/SaM-models -- the ''FireFaderSimulator'' versions of the patches are the ones you will want to use. The process of tuning the model parameters can be useful from a compositional perspective because it can help provide you with a specific palette of sounds.<br />
<br />
<br />
<br />
<br />
<br />
<br />
== Copying Files To and From Your Kit ==<br />
* Alternatively, if you would like to use software with a nice GUI for copying files back and forth from your kit, you can install additional special software on your laptop. For Windows, install [https://itservices.stanford.edu/service/ess/pc/securefx Secure FX], or for Mac OS X, install [https://itservices.stanford.edu/service/ess/mac/fetch Fetch]. These programs actually use ''scp'', but they hide the details of the pathnames from you.<br />
<br />
<br />
<br />
<br />
<br />
== Design a different musical interaction ==<br />
<br />
Here are some ideas of changes that might make the patch more interesting:<br />
<br />
* Involve more QWERTY keys<br />
* Involve the mouse (see the [MouseState] object)<br />
* Load in a larger collection of samples.<br />
** Implement a mechanism to switch among banks of samples<br />
* Multiple gestures to one result: design a way for the parameters of each triggered note to depend on multiple key presses. For example, maybe only the space bar triggers notes, and all the other keys determine parameters of notes.<br />
** Make your patch automatically generate a bassline as a function of the key presses <br />
** Set multiple parameters modally, as volume works in the sample patch<br />
** Use chording: keep track of all the keys that are currently pressed, and use only that information to set the parameters for each note.<br />
* One gesture to multiple results<br />
** Use the "metro" object to trigger a steady stream of notes. Now you have two new parameters: repetition rate, and whether the metro is on or off.<br />
** Use the "counter" object to step through a cycle (of samples, parameter settings, etc.)<br />
** You could combine "metro" and "counter" to build a rudimentary sequencer that can step through a rhythmic pattern<br />
** Invent a mechanism to record short sequences of keypresses and play them back in time.<br />
* Incorporate looping or other interactive controls over the soundfile playback<br />
* Use Pd's "spigot" object to route control information to different parts of your patch at different times<br />
* Use some additional signal processing such as a filter, delay line, reverb, tremolo, etc. This gives you more parameters to control.<br />
* Polyphony: make it so the patch can play multiple samples at the same time. (Hint: put multiple copies of "play-sample" in your patch)<br />
* Use a totally different form of sound synthesis, such as FM, granular, or physical modeling.<br />
<br />
We recommend that you pick '''only one or a small number''' of these and work on it in depth, iterating on both the program/test/debug cycle as well as the design/implement/play cycle to craft something that has actual musical potential or is at least more fun to play. If you have an existing idea for your class project, you could use this lab to start thinking about implementing some of the modes and mappings. By all means, if you're inspired to try something else, go for it. If you'd rather spend today getting more of a broad sense of Pd's capabilities, feel free to work on many of these suggestions.<br />
<br />
<br />
<br />
<br />
<br />
== The Community ==<br />
<br />
There is a large, dedicated, and very generous community of Pd users on the Internet. Do some web searching (e.g., with a search engine, or else starting from some more specific resources) and look for interesting externals and/or patches. '''Optional:''' Download, install, and play with at least one. Can you incorporate it into what you programmed in the previous part?<br />
<br />
For more help in finding resources, don't forget to look on the [[PID Links]] page.<br />
<br />
<br />
<br />
<br />
<br />
== Appendix: Troubleshooting ==<br />
Tips:<br />
* If you are having problems with audio, make sure that ''compute audio'' is set to on.<br />
* If the audio is stuttering, then your processor might not be powerful enough to run all of the patches that are open. Remember, Satellite CCRMA is not as powerful as a laptop. Therefore, be careful about building complicated patches. You can monitor how much CPU you are using by running the ''top'' command in the terminal.<br />
* Type <tt>dmesg</tt> to see if there are any relevant messages that look like error messages.<br />
<br />
Solutions:<br />
* If you are running out of space on the SD card, you can free up some space by deleting items in <tt>/usr/src</tt>. For instance, all of the files needed for building Pure Data Extended are rather large.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox_2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_Lab_0_2016&diff=19202Stompbox Lab 0 20162016-07-02T21:16:15Z<p>Rmichon: Created page with "<font size=5>Lab 0: Making Sound with Satellite CCRMA</font><br> Most instructions by Edgar Berdahl (updated by Romain Michon), and lab patches for musical interaction descri..."</p>
<hr />
<div><font size=5>Lab 0: Making Sound with Satellite CCRMA</font><br><br />
<br />
Most instructions by Edgar Berdahl (updated by Romain Michon), and lab patches for musical interaction description by Matt Wright and possibly others.<br />
<br />
For this lab you need your [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA kit], a computer to program it, and some headphones with a mini 1/8" stereo jack.<br />
<br />
''' ''Please note that we do not expect you to finish this "lab 0." These exercises and considerations are just here to get you warmed up and introduce you to pd. The future lab exercises will be much more specifically oriented.'' '''<br />
<br />
== The Satellite CCRMA Setup (Before Adding Arduino) ==<br />
Included in your kit so far you should have<br />
- Raspberry Pi 2<br />
- One memory card (it may already be inserted into your Raspberry Pi)<br />
- One Ethernet cable for communication with your laptop<br />
- One USB micro cable<br />
- One USB audio interface with 1/4" connectors<br />
<br />
If you are missing something, please go get it before assembling your kit. Make sure the SD memory card is seated all of the way in its slot.<br />
<br />
== Powering Up For The First Time ==<br />
* Plug the Ethernet port of the Raspberry Pi into your laptop. <br />
<br />
* Plug the USB audio device into the Raspberry Pi. ('''The USB audio device won't work if you plug it in after it has booted up.''')<br />
<br />
* Then use the USB micro cable to power up the Raspberry Pi. (If you have a USB power supply, you could use it to power the Raspberry Pi, or if not you can try using your laptop's USB connector to power the Rasberry Pi.) You should see some lights turn on, flickering every now and then. This means that the Raspberry Pi is booting up.<br />
<br />
<br />
<br />
<br />
== Connect To Satellite CCRMA ==<br />
In order to see what your Satellite CCRMA kit is doing and program it, you need to log in to it. To do so, follow [https://ccrma.stanford.edu/wiki/CCRMA_Satellite_How_To_Connect_RevC these instructions].<br />
<br />
After you login, you will see the prompt ''ccrma@satellite:~$'' This means that you are logged into a computer named "satellite" as the user "ccrma", and you are currently in the directory ~, which is the shortcut for your home directory.<br />
<br />
<br />
<br />
<br />
== Avoid Powering Down the Board Without Halting it First! ==<br />
Would you take the battery out of your laptop and unplug its power adaptor without shutting down? ''I don't think so!'' The same goes for Satellite CCRMA, at least when you can avoid it, because it is a small computer running linux.<br />
<br />
Now we will test the halt procedure. Run the halt command as superuser by typing ''sudo halt'' at the Satellite CCRMA prompt. Then you will again have to type in the password ''temppwd'' in order to have the privilege to run this command. Wait until about 15 seconds after you see the message "Connection to 192.168.105.106 closed by remote host," and then disconnect the power from the Raspberry Pi via the micro USB connector.<br />
<br />
<br />
<br />
<br />
== Getting Comfortable With Satellite CCRMA ==<br />
* Turn on Satellite CCRMA again using the same procedure as before by plugging the micro USB connector into the Raspberry Pi. After about 30 seconds, the board should be booted up again, so you can log in again by running the command <br />
<br />
''ssh -XY ccrma@192.168.105.106''<br />
<br />
* Run the command ''pwd'' to find out the current directory. You will find that you are in the ''ccrma'' subdirectory of the directory ''/home''.<br />
<br />
* Type the ''ls'' command to see what is in the current directory. The blue items are subdirectories of the current directory. You can change directories using the ''cd'' command. For instance, to change into the ''pd'' subdirectory, you should run the command<br />
<br />
''cd pd''<br />
<br />
* Now again type ''pwd'' to make sure that you understand where you are! Run the ''ls'' command to see what files are in here.<br />
<br />
<br />
<br />
<br />
<br />
== Starting Audio And Pd ==<br />
<br />
* In order to be able to hear audio, you will need to plug a pair of ear buds, headphones, or loudspeakers into the 1/4" (5.08mm) jack on the UCG 102 guitar link USB audio interface.<br />
<br />
* A default pd patch starts running automatically when your kit finishes booting up. To stop the default pd patch from running, execute the command<br />
<br />
''stop-default''<br />
<br />
'''Remember that each time you boot up your kit and want to edit your patch, you should stop the default patch from running by using the command ''stop-default'' '''<br />
<br />
* Start pd now with the following command, which tells pd to use the USB audio device and to set the audio latency to about 15 ms (the "space" & at the end of the command just means that the pd process shouldn't take over the terminal -- that way you can keep using the terminal independently of whatever pd is doing)<br />
<br />
''pd &''<br />
<br />
This time the graphical user interface (GUI) for pd should also start.<br />
<br />
* To start audio, click on the ''Compute audio'' checkbox.<br />
<br />
* Now to test audio, go to the media pull-down menu and choose ''Test Audio and MIDI.'' If you still do not here any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
* Once you have audio working, close the window test audio and MIDI window.<br />
<br />
* Choose ''Open'' from the ''File'' menu and select the patch ''4_algorithmic_music.pd'' within the ''pd_lecture'' subdirectory. Then go back to the patch, move the speed and width sliders slightly to the right, and bring up the volume. You should now hear some sound in your headphones. Play around with the parameters to see what new sounds you can discover.<br />
<br />
Troubleshooting: If you still do not here any sound, then probably you missed one of the steps so far. If you look at the messages in the main ''pd'' window, you might find a clue.<br />
<br />
<br />
<br />
<br />
<br />
== Dive Into Pd ==<br />
* The patch ''~/pd/examples/just-play-WAV-files/play-WAV-file.pd'' shows the easiest way to play a WAV file. Try it out! <br />
<br />
* Look at the pd lecture patches stored in ''~/pd/pd-lecture'' (For example, see the patch ''4_algorithmic_music.pd''. Make sure that audio is on and increase the volume from zero in the patch.)<br />
<br />
* Right-click or option-click on any object to get a contextual menu including "help," which opens that object's help patch. (If you are using a Mac and don't have a right mouse button, then go to the ''X11'' pull-down menu, select ''Preferences'', and make sure that ''Emulate three button mouse'' is checked in the ''Input'' pane. Now, you should be able to right-click by clicking while holding down the Command key.)<br />
<br />
* Right-click on a blank portion of a Pd patch. Now when you select "help" you get a list of Pd's built-in objects, arranged by category.<br />
<br />
* In the upper right hand corner of each Pd window is a "help" menu. This accesses the Pd tutorials as well as some online reference documentation.<br />
<br />
<br />
<br />
<br />
== The Patches Are Already On The Board ==<br />
* You can find the main patch for the laboratory exercise at /home/ccrma/pd/labs-Music-250a-2012/lab1/myinstrument.pd Open it and make sure that ''compute audio'' is set to on. Play around with the patch. You should be able to exhaust its musical potential in a matter of minutes; reflect on its strengths and limitations.<br />
<br />
* Also try to understand how it works as a piece of software. (But please don't get hung up on the arcana - as always, if you get stuck, ask for help rather than waste time.)<br />
<br />
<br />
<br />
<br />
<br />
==Short questions==<br />
Why is the following patch a bad idea?<br />
<br />
[[Image:badidea.gif]]<br />
<br />
Make a patch that shows how to connect some objects together to calculate the function ''1-x'' where ''x'' is an input number. Save the patch in a file called ''OneMinus''.<br />
<br />
<br />
<br />
<br />
<br />
== List Of Objects ==<br />
* Here are some lists of pd objects that you can use to discover new object names: [http://protman.com/content/list-puredata-objects-and-extended-objects http://protman.com/content/list-puredata-objects-and-extended-objects] [http://www.umatic.nl/workshop/objects.txt http://www.umatic.nl/workshop/objects.txt]<br />
<br />
<br />
<br />
<br />
<br />
== More Sound Synthesizer Patches ==<br />
* Try out some of the patches from Andy Farnell's book ''Designing Sound.'' These patches are installed in ''~/pd/DesigningSoundBookExamples'' Most of the patches in there work with this version of pd, but a few patches don't! (As you try out the patches, keep in mind also that many of the patches are ''subpatches.'' That means that they are lower level patches that are used to serve some specific purpose within a higher level patch. Therefore, you may have to search around some to find the higher level patches that are easier to use to make sound.)<br />
<br />
* One intriguing way to synthesize sound is using physical models. A ''physical model'' is a computer program that simulates the laws of physics to create sound. Some physical models simulate traditional acoustic musical instruments, or other models simulate hypothetical situations that could be built using physical elements, but might be impractical. Try playing around with some of the physical models in ~/pd/SaM-models -- the ''FireFaderSimulator'' versions of the patches are the ones you will want to use. The process of tuning the model parameters can be useful from a compositional perspective because it can help provide you with a specific palette of sounds.<br />
<br />
<br />
<br />
<br />
<br />
<br />
== Copying Files To and From Your Kit ==<br />
* Alternatively, if you would like to use software with a nice GUI for copying files back and forth from your kit, you can install additional special software on your laptop. For Windows, install [https://itservices.stanford.edu/service/ess/pc/securefx Secure FX], or for Mac OS X, install [https://itservices.stanford.edu/service/ess/mac/fetch Fetch]. These programs actually use ''scp'', but they hide the details of the pathnames from you.<br />
<br />
<br />
<br />
<br />
<br />
== Design a different musical interaction ==<br />
<br />
Here are some ideas of changes that might make the patch more interesting:<br />
<br />
* Involve more QWERTY keys<br />
* Involve the mouse (see the [MouseState] object)<br />
* Load in a larger collection of samples.<br />
** Implement a mechanism to switch among banks of samples<br />
* Multiple gestures to one result: design a way for the parameters of each triggered note to depend on multiple key presses. For example, maybe only the space bar triggers notes, and all the other keys determine parameters of notes.<br />
** Make your patch automatically generate a bassline as a function of the key presses <br />
** Set multiple parameters modally, as volume works in the sample patch<br />
** Use chording: keep track of all the keys that are currently pressed, and use only that information to set the parameters for each note.<br />
* One gesture to multiple results<br />
** Use the "metro" object to trigger a steady stream of notes. Now you have two new parameters: repetition rate, and whether the metro is on or off.<br />
** Use the "counter" object to step through a cycle (of samples, parameter settings, etc.)<br />
** You could combine "metro" and "counter" to build a rudimentary sequencer that can step through a rhythmic pattern<br />
** Invent a mechanism to record short sequences of keypresses and play them back in time.<br />
* Incorporate looping or other interactive controls over the soundfile playback<br />
* Use Pd's "spigot" object to route control information to different parts of your patch at different times<br />
* Use some additional signal processing such as a filter, delay line, reverb, tremolo, etc. This gives you more parameters to control.<br />
* Polyphony: make it so the patch can play multiple samples at the same time. (Hint: put multiple copies of "play-sample" in your patch)<br />
* Use a totally different form of sound synthesis, such as FM, granular, or physical modeling.<br />
<br />
We recommend that you pick '''only one or a small number''' of these and work on it in depth, iterating on both the program/test/debug cycle as well as the design/implement/play cycle to craft something that has actual musical potential or is at least more fun to play. If you have an existing idea for your class project, you could use this lab to start thinking about implementing some of the modes and mappings. By all means, if you're inspired to try something else, go for it. If you'd rather spend today getting more of a broad sense of Pd's capabilities, feel free to work on many of these suggestions.<br />
<br />
<br />
<br />
<br />
<br />
== The Community ==<br />
<br />
There is a large, dedicated, and very generous community of Pd users on the Internet. Do some web searching (e.g., with a search engine, or else starting from some more specific resources) and look for interesting externals and/or patches. '''Optional:''' Download, install, and play with at least one. Can you incorporate it into what you programmed in the previous part?<br />
<br />
For more help in finding resources, don't forget to look on the [[PID Links]] page.<br />
<br />
<br />
<br />
<br />
<br />
== Appendix: Troubleshooting ==<br />
Tips:<br />
* If you are having problems with audio, make sure that ''compute audio'' is set to on.<br />
* If the audio is stuttering, then your processor might not be powerful enough to run all of the patches that are open. Remember, Satellite CCRMA is not as powerful as a laptop. Therefore, be careful about building complicated patches. You can monitor how much CPU you are using by running the ''top'' command in the terminal.<br />
* Type <tt>dmesg</tt> to see if there are any relevant messages that look like error messages.<br />
<br />
Solutions:<br />
* If you are running out of space on the SD card, you can free up some space by deleting items in <tt>/usr/src</tt>. For instance, all of the files needed for building Pure Data Extended are rather large.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<center>[[Stompbox 2013]]</center><br />
[[Category:Stompbox_2013]][[Category:PID]]</div>Rmichonhttps://ccrma.stanford.edu/mediawiki/index.php?title=Stompbox_2016&diff=19108Stompbox 20162016-05-28T13:29:14Z<p>Rmichon: </p>
<hr />
<div><font size=5>Digital Stompbox Design Workshop</font><br><br><br />
<font size=4>CCRMA Summer Workshop 2016<br><br />
July 25-29<br><br></font><br />
<br />
<font size=3>Instructors: [mailto:rmichon@ccrma.stanford.edu Romain Michon] and [mailto:esteban@ccrma.Stanford.edu Esteban Maestre]<br></font><br />
<br />
= Course History and Description =<br />
<br />
Come design your own flavor of audio effect at Stanford Universityʼs Digital Stompbox Design workshop. We will teach you a new platform for implementing audio effects in hardware that not only allows you to recreate classic types of sound effects but also enables the creation of new sound effects. Our resources for new media design are also at your fingertips if you would like to re-design the concept of a guitar stompbox of effects unit: for example, design the layout and control interface of your effects unit, add accelerometers on your guitar or your hand and use it to control the parameters of an effect, or use some LEDs to simulate the glow of vacuum tubes or fire! <br />
<br />
This workshop is intended for musicians interested in exploring new possibilities in digital audio effects in a hands-on and technical way; makers, engineers, computer scientists, or product designers interested in exploring artistic outlets for their talents and collaborating with musicians; and/or anyone looking to gain valuable skills in basic audio signal processing and human-computer interfaces, with a focus on invention. <br />
<br />
Participants are required to buy a $170 lab kit included in the registration price. The kit contains Satellite CCRMA platform featuring Arduino and the Raspberry Pi 2 as well as a miniature audio I/O digital interface, knobs, buttons, footswitches, a number of other sensors, and a customizable acrylic enclosure. All this leading to a custom programmable effects unit to bring home after the workshop! Participants are encouraged (but by no means required) to bring their own laptop computers (with Ethernet support) and/or musical instruments, so that they bring home a working platform and the associated toolchain configured in their laptop, ready for deploying new effects and control paradigms. <br />
<br />
This workshop was created by Edgar Berdahl and Esteban Maestre in 2011. This workshop uses very similar hardware to the [https://ccrma.stanford.edu/wiki/NMC_2013 New Music Controllers] workshop, but the focus is more on applications to stompbox design and audio signal processing.<br />
<br />
[https://ccrma.stanford.edu/workshops/stompbox-design How to sign up] for the workshop.<br />
<br />
= Course Schedule =<br />
<br />
We will meet from 9am-5:00pm daily, with mini-breaks at around 10:30am and 3:00pm, and a lunch break approximately between 12:00pm and 1:00pm.<br />
<br />
{| border="1"<br />
|+ '''The Week'''<br />
|-<br />
|'''Date''' || '''Morning (9am-12noon)''' || '''Afternoon (1:00pm-5:00pm)'''<br />
|-<br />
|Monday || <br />
Introduction and Overview<br> <br />
Pd basics lecture (incl. one digital effect example)<br> <br />
Kit How-To and [https://ccrma.stanford.edu/wiki/Stompbox_Lab_0_2013 Lab 0: Making Sound with Satellite CCRMA] <br />
||<br />
Review Lab 0<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_1_Introduction.pdf FX Lecture 1]<br><br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_2_Dynamics.pdf FX Lecture 2 ]<br><br />
[https://ccrma.stanford.edu/wiki/Lab1_Making_FX_in_Pd_2013 Lab 1: Making FX In Pd]<br />
|-<br />
|Tuesday || <br />
Review Lab 1<br> <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_3_Filtering.pdf FX Lecture 3]<br> [[Introduction to Electronics (condensed) | Introduction to Electronics]]--[[Sensors|Sensors1]] <br />
||<br />
Faust effects lecture<br><br />
Lab 2: [https://ccrma.stanford.edu/wiki/Stompbox_Rapid_Prototyping Rapid Prototyping] and [https://ccrma.stanford.edu/wiki/Stompbox_Real_Sensors_2013 Controlling an Effect with Real Sensors]<br />
|-<br />
|Wednesday || <br />
Lab 2 Review<br> <br />
[[Interfacing With The Rest Of The World]] (i.e. making cables, etc.) and making circuit boards lecture<br />
|| <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_4_Distortion.pdf FX Lecture 4]<br> <br />
Start on project<br />
|-<br />
|Thursday || <br />
[http://ccrma.stanford.edu/~esteban/stompbox/2015/2015_StompboxDesign_5_Time.pdf FX Lecture 5]<br><br />
Enclosure How-To and customization<br><br />
Refine project ideas<br><br />
Work on project<br />
|| <br />
Work on project<br />
|-<br />
|Friday || Work on project || [[Project presentations]] (3:00pm - 4:30pm)<br />
|}<br />
<br><br />
<br />
= Additional Resources =<br />
<br />
In this section we provide complementary materials for each day of the workshop. Because of the limited time we have for this workshop as compared to the vast amount of theory and literature behind digital audio effects and their implementation via different programming languages, the contents of these lectures are limited to introducing the very basics of some of the most popular types of audio effects used in stompboxes. For a deeper coverage of signal processing techniques behind digital audio effects, please refer to the CCRMA courses listed below (in the References section) and their complementary materials or books.<br />
<br />
=== Monday ===<br />
<br />
'''Basic PureData demo patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/00_stomp_dynamics_1.pd Boost]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2.pd Tremolo] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/01_stomp_dynamics_2_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3.pd Noise gate] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/02_stomp_dynamics_3_noPlot.pd here] without graphical signal displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4.pd Compressor] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/03_stomp_dynamics_4_noPlot.pd here] without graphical signal displays)<br />
<br />
Bear in mind that these Pure Data patches were created to illustrate the basic principles of some elementary digital audio effects. For that purpose, some graphical displays were added as a visual complement to monitor some (control) signals. Remember that, although potentially useful for debugging/monitoring purposes, those graphical displays (i.e. the '''[table]''' objects) do not contribute to sound processing. However, they may cause the Raspberry Pi to run very slow, so it's good to remove them (together with the corresponding '''[tabwrite~]''' objects), or use the alternative patches not including graphical signal displays!<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://en.flossmanuals.net/pure-data/ch072_introduction/ Categorized list of Pd Objects] (or [http://www.umatic.nl/workshop/objects.txt here])<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/solo_man.wav Ugly guitar track 'solo_man.wav']<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/moreSamples.zip More guitar/bass tracks (compressed ZIP)]<br />
* [http://ccrma.stanford.edu/~carlsonc/DryGuitarTracks.zip Nicer guitar tracks] Courtesy of Jonathan Abel, please do not distribute.<br />
<br />
=== Tuesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/NIME-2015-Stompbox-Design-Slides.pdf Circuit Overview]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1.pd Biquad block example] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/04_stomp_filtering_1_noPlot.pd here] without graphical displays)<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2.pd Wah example using a 2nd order peaking filter] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/05_stomp_filtering_2_noPlot.pd here] without graphical displays)<br />
<br />
'''Lab Resources:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/filters_by_mmb.zip filters_by_mmb.zip] Basic Pd filtering library by Mike Moser-Booth - Latest version (not checked) of the above library can be found at https://github.com/dotmmb/mmb.<br />
<br />
=== Wednesday ===<br />
<br />
'''FX Lecture:'''<br />
<br />
* [https://ccrma.stanford.edu/~eberdahl/Stompbox/Example-Pedals-For-Inspiration.pdf Example Pedals for Inspiration]<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion.pd Distortion / Fuzz] ([http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/06_stomp_distortion_noPlot.pd here] without graphical displays)<br />
<br />
=== Thursday ===<br />
<br />
'''Basic PureData Demo Patches:'''<br />
<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/07_stomp_time_1.pd Simple delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/08_stomp_time_2.pd Simple tapped delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/09_stomp_time_3.pd Feedback Delay]<br />
* [http://ccrma.stanford.edu/~esteban/stompbox/2013/pd/10_stomp_time_4.pd Flanger]<br />
<br />
=== Other Related Lectures ===<br />
<br />
*[[PID Introduction]]<br />
*[[Survey of Physical Interfaces for Music]]<br />
*[[Introduction to Electronics]]<br />
*[[Sensors]]<br />
*[[Microcontroller Architecture]]<br />
*[[Interaction Design Framework]]<br />
<br />
=== Softwares ===<br />
<br />
* The lectures will primarily be in [http://puredata.info/downloads Pure Data (Pd) Extended] for sound synthesis. We will introduce some other alternatives such as writing plug-ins directly in C/C++ or with [http://faust.grame.fr Faust].<br />
* The micro SDHC card for your kit will be initialized with [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA] so that you can get up and running instantly.<br />
* The [http://arduino.cc/en/Main/Software Arduino software] could be used to change the [http://firmata.org Firmata-based] firmware that gets data from the Arduino Nano board into Pd.<br />
<br />
= Workshop Project =<br />
<br />
One of the goals of this workshop is to help you get hands-on experience building a novel stompbox project of your choosing. You are encouraged to work with other workshop participants on the project, particularly those who might have skills that complement your own. Since the workshop is short, it is a good idea to start thinking of ideas during the first lectures and labs; during the second half of the workshop, you will primarily be working on getting a "demo-able" prototype ready for the project presentations on Friday afternoon.<br />
<br />
= References =<br />
<br />
* [[MaxLab]]<br />
* [[PID Links]]<br />
* [http://puredata.info/downloads Pure Data (Pd) Extended]<br />
* [http://www.raspberrypi.org/ Raspberry Pi]<br />
* [http://arduino.cc/en/Main/Software Arduino software] <br />
* [http://firmata.org Firmata]<br />
* [http://faust.grame.fr/ Faust]<br />
* [https://ccrma.stanford.edu/courses/320/ Course: Introduction to Digital Audio Signal Processing]<br />
* [https://ccrma.stanford.edu/courses/424/ Course: Signal Processing Effects for Digital Audio Effects]<br />
<br />
* [http://ccrma.stanford.edu/~eberdahl/Satellite Satellite CCRMA]<br />
[[Image:SatelliteCCRMALogoVSmall.jpg]]<br />
<br />
= FAQ =<br />
<br />
'''Project questions'''<br />
<br />
*<i>Can I do ____ for my project?</i><br />
<br />
You can do whatever you would like for your project. Keep in mind that you really only have a few days to work on it, so you might want to focus on one crucial aspect of a larger project that you'd like to have working.<br />
<br />
*<i>Can I incorporate my own hardware and software into my project?</i><br />
<br />
Yes, you can, although we have limited time and ability to support hardware and software other than what is introduced in the labs.<br />
<br />
[[Category:Stompbox]][[Category:PID]]</div>Rmichon