.. _video tutorials: 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 :class:`~scamp.session.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 :func:`~scamp.instruments.ScampInstrument.play_note` calls, the extra `properties` argument, and playing glissandi, along with other continuous playback animations. .. raw:: html Forking Functions ----------------- This video describes how to organize blocks of code into functions, and then :func:`~clockblocks.utilities.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. .. raw:: html Tempo Changes and Polytempo Music --------------------------------- This video delves into the clock system in SCAMP, discussing how to set the tempo/rate of a :class:`~clockblocks.clock.Clock`, how to create ritardandi and accelerandi with :func:`~clockblocks.clock.Clock.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. .. raw:: html 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 :class:`~scamp.session.Session` to a :class:`~scamp.performance.Performance` object, convert that Performance to a :class:`~scamp.score.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. .. raw:: html Building Tools using Classes ---------------------------- This video goes into the process of building your own compositional tools by defining custom classes. .. raw:: html 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. .. raw:: html