ep-4yy13 DSP – week 1

Digital Signal Processing, theory and composition

Spring 2014

teacher: Tom Zicarelli – http://tomzicarelli.com

You can reach me at:  [email protected] 

Office hours: Wednesday 2:30-3:30 PM, at the EPD office #401 at 161 Mass Ave. Please email or call ahead.

Assignments and class notes will be posted to this blog: https://reactivemusic.net before or after the class. Search for: ep-4yy13 to find the notes

Examples, software, links, and references demonstrated in class are available for you to use. If there is something missing from the notes,  please ask about it. This is your textbook.


The focus will be on composition – and sparking your imagination. Composition plus science fiction. After you take the course, you will have composed several new pieces. You might design a musical instrument. You will have opportunities to solve problems.  You will become familiar with how artists use DSP to compose music and to build musical instruments. You will be exposed to to a world of possibilities – which you may embrace or reject.

In particular we will compose, by improvising, using tools that transform signals and movement. For example, generative music.

We will explore a range of topics in DSP, and have opportunities to use them in projects. Most applications of DSP involve one or more of the following actions using signals:

  • analysis
  • measurement
  • transformation

For example, statistics is a form of analysis.

Topics: (subject to change)

  1. Future music tools
  2. Improvisation
  3. Signals: the time domain – granular synthesis
  4. Signals: the frequency domain – convolution
  5. Problem solving, prototyping, portfolios
  6. How to get ideas
  7. Sensors
  8. Demodulation and reversibility
  9. Artists
  10. Voices
  11. Music from data – sonification, Internet API’s
  12. Statistics
  13. Radio waves and ultrasound
  14. Visualization


Grades will be based on compositions, several small assignments, and class participation. Please see Dr. B’s EP-4yy13 syllabus for details. I encourage and will give credit for: collaboration with other students, outside projects, performances, independent projects, and anything else that will encourage your growth and success.


Go to the future. Make music. Bring it back to the present.

It should be a very short piece or an excerpt. Less than two minutes. It can be a remix of a song that you believe represents a future direction in music. Near future or distant future – your choice. Use any tools to create the music. The result: an audio file (mp3) or a link to audio or video on the Internet, or a live performance in class

Due: in 2 weeks.

Pluggo fx matrix

A Max 4.6 patch that uses Pluggo to create random effect matrixes with random parameters and various routing options.

plugv4r6.pat is the patch that works

User guide

(in progress)


– not available yet


Choose a data file from the menu in this panel

The data files contain patches – not Max patches, but banks of fx patches that define a configuration of fx saved and named by the user. I haven’t figured out just what is what yet. Select a patch and press the green button. If it worked you will see the patch name change in this text box:

If it doesn’t work, the drop down menu in this box will probably read ‘nothing’

To select a patch, use the drop down menu box, or the number box to the left to make a selection. Then press the green reload button just to the left… (the purple button is for saving the current patch)

After pressing the green button – you should see the fx rack modules reloading from top to bottom – they will turn yellow when loading – and you may see the Pluggo control panel appear.

note: you may need to load a patch twice – there is a bug in the sequence of events for reloading parameters


Channel randomization: There are 4 channels 0-3 which correspond to the individual fx in the rack, starting at the top. The number box selects which channel to randomize.

Global randomization: Randomize all channels

There are various randomization modes that you choose with the message boxes:

  • 0: randomly select a new plugin for the channel – using default preset (program)
  • 1: randomly select a new preset (program) for the current plugin
  • 2: randomly select new (reasonable) parameter settings for the current plugin
  • 3: randomize the plugin and the programs
  • 4: randomize the plugin and the parameters 
  • 5: randomize all the parameters for this plugin, reasonable or not. (this appears to not work)

Saving patch files

Enter the name of an xml file to save the new bank of patches to, and press the red button.

Note: the patch (xml) files are getting modified by the patch, even when they aren’t explicitly saved. Why is this?

 fx routing

Signals can be routed through the effects matrix in a variety of ways using the matrix control object. The radio buttons on the left side of the matrix control select the most common presets

The vertical lines represent inputs in the following order:

  • signal in
  • channel 0
  • channel 1
  • channel 2
  • channel 3
The horizontal lines represent outputs in the following order:
  • channel 0
  • channel 1
  • channel 2
  • channel 3
  • signal out
A red dot at any intersection makes a connection. Here are the default routings provided by pressing the radio buttons to the left of the matrix.
serial: in -> 0 -> 1 -> 2 -> 3 -> out
reverse serial: in -> 3 -> 2 -> 1 -> 0 -> out
in -> 0 -> out
in -> 1 -> out
in -> 2 -> out
in -> 3 -> out
serial + parallel:
in -> 0 -> 1 -> out
in -> 2 -> 3 -> out
Bypass: in -> out
zigzag serial:
in -> 1 -> 2 -> 0 –> 3 -> out
alternate zigzag serial:
in -> 2 -> 3 -> 0 -> 1 -> out
reverse serial + parallel:
in -> 1 -> 0 -> out
in -> 3 -> 2 -> out

Midi plugins and the bypass button

The green indicator to the right of the channel meter indicates that the plugin is a Midi device

Midi devices receive Midi input and will block audio input in a serial routing. To bypass any plugin, click the red button to the left of the channel meter:

The green button reloads the plugin with the default preset. The brown button does nothing.

Mixer and Midi input

The mixer has 3 sets of stereo controls. From left to right, they are input, wet signal, dry signal. The radio buttons to the right of the sliders allow you to select the current channel – which will bring the plugin control panel for that channel into the foreground.

The 2 drop down menus to the right  of the radio buttons select the midi input devices.

The top menu selects the midi controller device. (bcr-2000)

The bottom menu selects the midi note input and performance device.

The letter assignments can be set in the Max midi-setup configuration.


keyboard shortcuts

global randomization params

IO matrix


Location of midiStroke preset file

MidiStroke is a utility app that converts typewriter key strokes into Midi messages.

By Charlie Roberts

Configuration file (On a Macbook):

/Users/tkzic/Library/Application Support/midiStroke/midiStroke.cdcmidistroke

Helpful article at djtechtools.coml:


You can’t create multiple preset files within midiStroke – but you can work within the file system as they explain in the article above.