Tutorial Videos
The following tutorial videos should help get you up and running with SCAMP. Each video is split into two halves: the first half is a basic introduction, and second half goes into more advanced features.
These tutorials assume that you’re a beginner in Python as well as in using the SCAMP library. If you are more experienced with Python, you will probably still find them useful, but may find you want to fast-forward through some of the content.
Playing Notes
This video shows the basics of creating a Session
object, adding an instrument, and playing some
notes using for and while loops. In the second half of the video, it goes into blocking vs. non-blocking
play_note()
calls, the extra properties argument, and playing glissandi,
along with other continuous playback animations.
Forking Functions
This video describes how to organize blocks of code into functions, and then fork()
them so that they run in parallel (a key step in creating multi-part music). The second half of the video goes into the
use of function arguments, forking functions that have arguments, and playing multiple copies of the same function
simultaneously with different arguments and tempos.
Tempo Changes and Polytempo Music
This video delves into the clock system in SCAMP, discussing how to set the tempo/rate of a Clock
,
how to create ritardandi and accelerandi with set_tempo_target()
, and the difference
between time and beat duration units. The second half of the video demonstrates the possibilities for polytempo music in
SCAMP, with multiple parts that each have their own separate tempo curves. It also discusses looping tempo targets,
mapping tempo to a mathematical function, and the system of tempo inheritance in forked processes.
Generating Music Notation
This video goes into the process of transcribing and generating music notation from a SCAMP script. The first half
explains how to transcribe the notes played within a Session
to a Performance
object, convert that Performance to a Score
object, adjust time signatures, note spelling, and
articulations, and ultimately render to both LilyPond and MusicXML. The second half goes into the notation of microtonal
music, glissandi, and polytempo music, as well as the thorny details of quantization.
Building Tools using Classes
This video goes into the process of building your own compositional tools by defining custom classes.
Connecting SCAMP to SuperCollider
If you’re a SuperCollider user, you can use SCAMP to control SynthDefs, spawning new synths with each play_note call. This video explains how to install the SuperCollider Quark, and connect the two.