Tag Archives: supercollider

Large Intestine 2013 vs 2024 – Brief Analysis

I am at the age where I can make a “How It Started vs. How It’s Going” analysis of my music. Comparing performance practice change over a decade or so is valuable for my growth, especially when the piece involves improvisation and no score. I can see where I came from, where I am now, and where I should go next. Large Intestine for no-input mixer and computer premiered in 2013, and I still present it in concerts. Watching the August 2013 version and the recent June 2024 version in sequence gives me a chance to contemplate my electronic performance practice. Did the technology and style change over 11 years? 

Technology

I took the “if it ain’t broke, don’t fix it” approach for Large Intestine in terms of the hardware and the software. The SuperCollider patch I coded 11 years ago is almost identical to the 2024 version. There were maintenance updates, such as replacing a deprecated UGen with a current one, but the signal-processing algorithm is untouched.  The hardware signal flow is also unchanged, although I upgraded the mixer for increased possibility and flexibility. 

I perform the piece by changing the mixer settings and SuperCollider patch. The SuperCollider patch consists of eight effect processors, and I turn on and off those effects in different combinations. It is much like playing a guitar with a pedal board. Over the past 11 years, I have bought a “new guitar” but am using the “same pedal.” The sonic possibilities remain the same, but how I play the instrument, the style in other words, has changed.  

Download and run the SuerColider patch for Large Intestine as a reference. You can test it using a mic or any other instrument.

Style

I observed the following differences in the 2013 and 2024 versions of Large Intestine

20132024
Mostly slow and gradual parameter changes Mostly fast and abrupt parameter changes
I discover things on stageI present previously experienced sounds
The mixer supports computer soundsThe computer supports mixer sounds
Long duration (10+ minutes)Short duration (less than 8 minutes)

When I was a no-input beginner, I could not make quick transitions and variations. In the 2013 version, I treated the mixer as one of many sound sources that could pass through signal processors. Like its umbrella project, 100 Strange Sounds, Large Intestine featured my SuperCollider capacity. The 2024 version shows that I reduced the dependency on the computer part. I also learned to say more within less time.

Gained confidence also changed the performance goal. I make a one-sentence goal when I am improvising solo. My goal for Large Intestine used to be “Let me figure out what no-input mixer can do on stage,” as it delighted me to discover the mixer’s unique sound and its augmentation by the computer. 11 years later, there are much less delightful discoveries in the piece. But I can now expect the sound I can create. The current  motto is, “Let me show you my favorite no-input mixer moments I learned previously on stage.” 

Evaluation

I am my work’s biggest supporter and critic, but that does not help my career development. The audience ultimately decides the longevity of the work. Large Intestine was fortunate to be liked by the audience on many occasions. It received some honors, such as being included in the SEAMUS CD series (2015), a peer-reviewed annual album released by the Society for Electroacoustic Music in the United States. There were multiple invitations to perform at different venues, and it became an integral part of my solo performance practice. The positive feedback from presentations motivated me to delve further into the no-input mixer world. I composed the following pieces based on the learnings from Large Intestine.

There are also clear limits to Large Intestine and my solo electroacoustic improvisation. I don’t expect other performers to play Large Intestine as it lacks score or instruction. The experience and joy I had with the piece are not transferable to other performers. This bothered me. I tackled this issue by teaching others how to play no-input mixers. I currently enjoy organizing no-input mixer workshops and no-input ensemble sessions. The mixer is a great introductory instrument for electronic music performance.

Motivation Quadrants for Musicians

What motivates me to write or practice a piece? As I grow older with less time and energy, I must strategize what to do for the next research or creative activity. The decision-making process is multidimensional, but a simplified guideline helps me. I ask two questions before I commit to a project.

  • Do I want to do it?
  • Do I know how to do it?

Answers to these two questions yield four degrees of motivation plotted as four quadrants in a graph. My goal is to identify in which quadrant I start the project so that I can identify the level of motivation and amount of work. I also find that the answers to the above questions change at the end of the project, sometimes.  

I am most eager to work on a project that starts in Quadrant IV and ends in Quadrant I. Changing the “I don’t know” axis to the “I know” axis takes time and energy, but that process is what being a researcher, artist, and student is all about. Learning SuperCollider was an IV-I move. Going to graduate school to be a teacher was IV-I. Improvising on a no-input mixer was IV-I. Spending a few months of the COVID quarantine time to learn Mark Applebaum’s Aphasia was IV-I. 

Quadrant IV is also a fandom area. While some pieces move from VI to I, like Aphasia or Alvin Lucier’s Music on a Long Thin Wire, I don’t mind Jeff Mills’ Exhibitionist Mix 3 and Bach’s music staying in Quadrant IV. Discovering and admiring awe-inspiring pieces is what being a researcher, artist, and student is all about.  The permanent Quadrant IV pieces become motivations for new pieces as well. Cobalt Vase is my homage to Exhibitionist, and 847 Twins is my Bach fan art.  

Ideally, all projects should end up being in Quadrant I, where I am happy to do the work with the skills I know. Realistically, many works fall into quadrants II and III. Dismissing them is not always possible, especially when the projects involve benefits like money, graduation, future opportunities, etc. Some projects in Quadrant III move into Quadrant I through education and repeated experience. Many dance and sound installations were my III-I projects because I learned more about the benefits of collaboration as I got more experience and studied more. Witnessing students doing the III-I move is equally exciting as students doing the IV-I move in my music technology classes. 

In contrast to the III-I or IV-I move, II-I moves are much rarer. Projects in Quadrant II often stay in Quadrant II, and they involve extra motivational factors, like deadlines or funding, to accept and finish the project. Some projects move from Quadrant I to II due to burnout or changed interest. Such regression, however, was not always bad, as it pointed me to new artistic/aesthetic directions. I am currently not focusing on further developing free improvisation skills as I feel the plateau or burnout. This condition led me to make notated electronic music less dependent on an individual’s improvisation skills. My notated electronic pieces gain more performance opportunities nowdays, and I am happy to present both improvisational and no-improvisational pieces in a show. Music career is cumulative

Evaluating the need to start a project by asking two simple questions with four possible answers clarified my thoughts.  Perhaps I could extend this to plot listener reactions. I want the audience, colleagues, or commissioners to feel Quadrant I when they listen to my piece  (I want to play it, and I think I figured out the technology!). The audience feeling Quadrant IV could be good (I don’t know how he’s making that sound, but I want to try!), especially if they are scholars or performers. Learning opportunities and capable institutions abound for the audience in Quadrant IV. I hope my pieces do not fall into Quadrants II and III. 

Endorsement – SuperCollider for the Creative Musician

I wrote a book endorsement for SuperCollider for the Creative Musician by Eli Fieldsteel

SuperCollider for the Creative Musician teaches how to compose, perform, and think music in numbers and codes. With interactive examples, time-saving debugging tips, and line-by-line analysis in every chapter, Fieldsteel shows efficient and diverse ways of using SuperCollider as an expressive instrument. Be sure to explore the Companion Code, as its contents demonstrate practical and musically intriguing applications of the topics discussed in the chapters.

The endorsement had a word count limit. This book deserves a more detailed review. I agree with Fieldsteel’s statement in the Introduction that the book is a  “tutorial and reference guide for anyone wanting to create electronic music or experimental sound art with SuperCollider.” Musicians, media artists, and programmers will learn the fundamentals and practical applications of SuperCollider by reading the book from cover to cover. I especially recommend this book to musicians seeking the connection between creative coding and their artistic practice. Electronic musicians learn to express musical ideas in numbers and symbols when they code music.  Coding trains users to think of music differently as a result, and the author does an excellent job of teaching how to do so. 

Fieldsteel’s expertise in composing, performing, and teaching SuperCollider for over a decade is evident in every chapter. The author correctly anticipates common beginner challenges and provides the most efficient solutions. I love Tip.rand sections dedicated to troubleshooting and debugging. They are essential in increasing productivity and decreasing the frustration of learning a new environment. The book’s biggest strength, as demonstrated in Tip.rand, is its accessibility. The language, style, and examples do not assume that the readers have previous programming, music synthesis, or audio engineering experience. Included figures, tables, and example codes are also effective and pedagogical. I was happy to see that the printed codes’ font is identical to the default font of SuperCollider IDE.  It reconfirms the author’s effort in creating inviting chapters to learn a language with a considerable learning curve.  

I spend the first month of my SuperCollider class helping students overcome the initial steep learning curve. The book will dramatically reduce the time and frustration of going over that hump. I don’t think other existing SuperCollider resources will help as much as Fieldsteel’s book for that purpose.

Elegy No. 2 – live at SPLICE Institute

I performed Elegy No.2, written in 2018 for violin and computer, with melodica at the SPLICE Inistute 2023. It is not a happy song, but I share what I can express only with music. Sarah Plum recorded the original version beautifully, but I have been playing the song as my solo shows since COVID.

If you own a melodica and want to play this, the score and SuperCollider file are available HERE. You don’t need to know how to use SuperCollider. The instruction to run the code is here. Please use the score as a guideline, and feel free to improvise.

847 Twins – Brief Analysis

The production of 847 Twins, the title track in the album Fan Art, is documented in four sections. The first section, Program, is a one-paragraph description of the music written for a concert booklet or album promotion. I share information and thoughts that may help listeners enjoy the music. The second section, Form, is for the creators who want to learn how I used electronic sounds in composition. The third section, Code, is for the technologists who want to learn how I designed the piece in SuperCollider, a code-based audio app. Links to the code are available here. The last part, Anecdote, has extra narrative relevant to 847 Twins but is optional to enjoy the piece.

If preferred, read this article in PDF format.

Program

847 Twins is a two-movement piece based on harmonic progressions of Prelude & Fugue in C Minor by J.S. Bach. An electronic remake of Bach is a well-known practice pioneered by Wendy Carlos and Pierre Schaeffer (Switched-On Bach & Bilude). I learned so much from reading and listening to their works. J.S. Bach is also my hero composer. Therefore, it seemed appropriate to dedicate a song to my musical cornerstones in an album about fandom.

Listen to the tracks linked below before reading the next sections.

The tracks are available on other major platforms at  https://noremixes.com/nore048/

Form

Mvt I. Pluck

Pluck and Blip, the two movements of 847 Twins, algorithms written in SuperCollider use the harmonic progression of the Prelude in BWV 847. The downloadable code, 847_Pluck.scd, generates randomized voicing patterns played by a guitar-like synth. Below is a step-by-step explanation of how the composition process. 

  1. Design an electronic string instrument. Each note of this instrument is detuned at a different ratio every time the string is “plucked.” The note’s duration, dynamic, string stiffness, and pan position also vary randomly. 
  2. Using the instrument in Step 1, strum a chord with notes at a measure in BWV 847. Unlike a guitar, a strum of a chord can have multiple pan, accents, and note durations due to the randomization in Step 1.
  3. Each measure of BWV 847 is played four times before advancing to the next measure.
  4. Add a bass part with gradually increasing loudness. It plays the lowest note in the corresponding measure. 
  5. Add the intro and the outro for a better form. They are not quoted from BWV 847.

In short, the first movement of 847 Twins is a reinterpretation of BWV 847 featuring an imaginary string instrument and a synth bass. I loved how Bach created exciting music with a predictable rhythmic pattern. The key was harmony and voicings. I wanted to emphasize that aspect with an additional layer of dynamics articulations in Pluck. The added bass line, which imitates the “left hand” of basso continuo, fills in the low-frequency spectrum of the piece. The bass part is best experienced with a headphone or a subwoofer. 

Mvt II. Blip

The first movement lacked elements of counterpoint, so I tried to make an electronic polyphony in the second movement. In Blip, each measure has 3-6 parts playing different phrases derived from a measure in BWV 847. The phrase shape, the number of voices, and articulation are determined randomly at every measure and create a disjunct yet relative form. Schaeffer’s Bilude explores this idea by combining piano performance and recorded sounds.   

Below is my process of creating a random phrase generator. Please run 847_Blip.scd to hear the piece.

  1. Create a list of pitch sets by reducing repeating notes in each measure of BVW 847.
  2. Make three different synth sounds.
  3. Make a phrase generator that uses the list in Step 1 and synths from Step 2. The instrument choices, phrase length, note subdivisions, and articulations are randomized. The SuperCollider code also has the option to generate a rhythmic variation (i.e., insert rest instead of a note). 
  4. Make a polyphony generator that spawns the phrase generator described in Step 3. The number of polyphonic voices and their octave transpositions are random. 
  5. Play and record Step 4 twice. Then, import the tracks to a DAW. Insert a reverb plugin on one track. The reverb should be 100% wet. 
explanation of analysis
explanation of analysis

The algorithm described above creates different timbres, polyphonic patterns, and the number of voicings at every measure. Furthermore, every rendition of the SuperCollider code makes a unique version of Blip. One measure can be a duet of two-note phrases, and the following measure can be an octet of eight phrases played in a four-octave range. The room sound created by the DAW reverb plugin doesn’t reflect the source, but it sounds similar enough to be heard as part of a whole. 

Code

Mvt I. Pluck

The SuperCollider file for Pluck consists of seven parts. Please download and use 847_Pluck_Analysis.scd to hear and modify each part. Make sure to run the line s.options.memSize=8192*16 to allocate enough memory. 

  • SynthDefs: SynthDef(“Gtr”) uses a Karplus-Strong physical model with controllable pan, frequency, stiffness, amplitude, and duration. SynthDef(“Bass”) makes a sinusoid tone with a percussive amplitude envelope. The UGen Lag.kr smoothens the sharp transient of the amplitude envelope. 
  • ~onenote: this function uses two SynthDef(“Gtr”) to create a detuned note. The amount of detuning is randomized along with other parameters of the SynthDef.
  • ~stroke: this function creates instances of ~onenote with pitches specified in the ~chords array.  ~chords is a collection of all the notes in the Bach Prelude, categorized and indexed by measure number. The order of the notes in a measure is random.  ~stroke plays the chord in sequence or reverse to simulate a guitar’s up and down stroke motions. 
  • ~strums: this function continuously triggers ~stroke. The global variable ~pulse determines the tempo. ~strumsend function is used once for the ending. 
  • ~clock: this function changes the chord progression at time intervals set by the global variable ~mdur. It also changes the parameters of ~strums by altering the values of global variables ~mm~accent~volume~notedur, and ~stiff. Note that both ~strums and ~clock functions must run simultaneously for a correct chord progression. 
  • ~bassline: this function plays SynthDef(“Bass”) a few seconds after the start of the piece. It uses the if condition to change the rhythmic pattern. The line pitch=~chords.at(count).sort.at(0) picks the lowest note of each measure as a bass note.
  • SystemClock: this scheduler syncs ~strums, ~clock, and ~bassline to play a version of Pluck. Every rendition of SystemClock will make a new variation of the track.    

Mvt II. Blip

The SuperCollider file for Blip consists of four interconnected parts. Please download and run 847_Blip_Analysis.scd to hear each part.

  • SynthDefs: The three SynthDefs, PBeepTBeep, and SBeep, are all slightly detuned percussive instruments featuring a classic oscillator waveform, such as sine, triangle, and pulsewidth. 
  • ~phrase: this function creates a short melodic pattern based on pitch sets received from global variable ~arp. It controls which SynthDef to use, amplitude, phrase length, note duration, and transposition. The last two arguments activate or deactivate that random rhythm generation and arpeggio pattern variation.  
  • ~section: this function duplicates ~phrase. The number of ~phrase and octave transpositions are randomized. The function also makes further variations on amplitude, note duration, and panning.
  • The Routine in the last section uses the ~piece array as a cue list with details on when and how to trigger the ~section. The array ~chords is a list of all the notes in corresponding measures of the Bach Prelude. The Routine also sends a changing pitch set from ~chords to ~phrase via the global variable ~arp.

Anecdote

847 Twins does not use the Adagio section of the Prelude and Fugue. When composing the first movement, I could not transition from a constant 16th-note drive to a free and improvisational ending. I tried to address this incompleteness by writing a complementary movement, Blip, but it did not work out. I made a satisfying solution six months after completing 847 Twins by incorporating an instrument I could improvise aptly and freely. Nim6tet, the sixth track in Fan Art, has six layers of no-input mixer improvisation guided by the chord progressions of the Adagio section. It shamelessly shows off no-input mixer sounds I can not create with other instruments. 

It took many attempts in the period of 1.5 years to finish three tracks about the first half of BWV847. The electronic interpretation of the Fugue part is a puzzle yet to be solved.

More Analysis and Tutorials

Updated on 4/13/2023