Skip to content

1e. Getting Started With Oopsy (Gen~ Integration)

takumi-ogata edited this page Aug 4, 2023 · 8 revisions

Getting Started with Oopsy (Max/MSP Gen~ integration)

This guide can be dissected into just a few parts:

  1. Installing the toolchain for your OS (OS X or Windows)
  2. Downloading the oopsy package (or cloning it from Github, and placing it Max 8/Packages folder
  3. Opening up one of the Examples and programming your Daisy

Toolchain Install

If you've already been doing any development with Daisy you've probably already got this set up, and can skip ahead to the next section.

Oopsy compiles firmware for the Daisy platform under the hood, and can program that firmware onto the device directly from Max. In order to do these things, a few extra tools are required:

  • Make
  • arm-none-eabi toolchain
  • dfu-util

These are generally simple to install for each OS. See our Windows Guide, and our Mac OS X Guide for detailed steps.

Though, if you're on OS X and already have brew installed, all you need to do is paste this command into your terminal:

brew install make armmbed/formulae/arm-none-eabi-gcc dfu-util

Getting oopsy

You can either download a pre-built version of oopsy, ready to drop into place, or clone it from github.

Download

Download the zip file by clicking here, and extract the file into the Max 8 Packages folder.

The packages folder can be found at:

C:\Users\YourUserName\Documents\Max 8\Packages on Windows

or

~/Documents/Max\ 8/Packages/ on Mac OS X

Clone with Git

To get oopsy set up with git clone the repo, and then run the install script:

# first open a console in your Documents/Max 8/Packages folder, then:
git clone https://github.com/electro-smith/oopsy.git
cd oopsy
./install.sh

Programming an Example from Max

Examples can be found inside of the package.

open up reverb.maxpat example.

You'll see a bpatcher containing:

  • A button that when pressed, will export and compile the gen~ patcher(s) for Daisy
  • A dropdown with the available breakout boards.
  • A button that toggles between DISCREET/VERBOSE for printing to the console.

Select the platform you're using from the drop down (i.e. patch, for Daisy Patch, etc.).

Note: For the Daisy Seed, you can arbitrary select Pod if you're just using the audio I/O pins.

Next, configure the Daisy in bootloader mode by holding down the BOOT button, and then pressing and releasing the RESET button.

Now you can either click the bang in the oopsy bpatcher, or simply save the patcher, and the object will attempt to program the daisy with the new firmware.

When the firmware is loaded you should see the LED on the Daisy begin to blink, to indicate it is running the generated firmware.

You should now have a functioning reverb on any platform! (The Pod will have limited controls since there are four parameters within the patcher.)

Note: for the time being you must manually reenter the bootloader mode, each time you want to reprogram the daisy.

The following platforms are currently supported:

  • Electrosmith Daisy Pod
  • Electrosmith Daisy Patch
  • Electrosmith Daisy Petal
  • Electrosmith Daisy Field

Creating a patcher

So you've programmed one of the examples onto the Daisy, and now you want to take your crazy quadruple dogwhistle resonator gen~ patcher, and throw it on the Daisy.

You can add oopsy to your patch in a few different ways.

To add oopsy to an existing patch, you can create an [oopsy.platform] object, where platform is the desired breakout board (i.e. pod, patch, etc.). This will add the bpatcher with the specified target.

Templates exist for creating new patches with control inputs set up and ready to simulate. Start a new patcher this way by clicking "File" > "New From Template" > "Oopsy <board>"

Alternatively, you can create an oopsy object, and set the @target attribute to your desired breakout board (i.e. Pod, Petal, Field, Patch)

Multiple Patches

Many of the supported breakout boards support loading multiple gen~ patchers to the hardware at once. To do this, simply add more gen~ patchers to your max patch, and load the firmware as usual.

Details for switching apps are in the oopsy README

Troubleshooting

Please refer to the Oopsy section of the troubleshooting page.