Transcription
So this is Ipsy. It's a way to embed the precise flexibility of Maximus P's Gen, from its micro-temporal scheduling to single-sample feedback loops, into the hands-on flexibility and performance-happy accidents of modular analog and digital hardware using daisy-enabled devices.
So how does it work? If you have a Max patch that you've made or that you've adapted from a Cycling '74 forum, like this FM PM patch here, then all you need to do is drop in an Oopsy object corresponding to the hardware that you have. There'll be more hardware support coming in the future. Choose the sample rate that you want, and then every time that you save this patch, it's going to generate the code for the Daisy hardware. And if the hardware is plugged in by USB and ready to flash, it'll also upload the code to the device. [Music] Or you could also start with one of the template patches that are supplied with the Oopsie package. [Music]
The Daisy Patch OLED has several pages to view and control. Hold down the encoder and rotate to switch between the different pages. On each page, click the encoder and rotate to switch different options. Regular inputs and outputs in the Jet Patcher will correspond to the audio jacks on the hardware device. The Daisy Patch outputs have a very wide voltage range; you might want attenuation in your patch. In this Gigaverb patch, you can see the two inputs here for the two inputs on the hardware and the two outputs down here for the two outputs that are going to the out. Here you can use the OLED scope to switch between the different input and output channels, including comparing input to output. We're seeing pairs of inputs and pairs of outputs. Note that any undefined outputs will simply copy the data from the outputs that are defined in the Gen patch.
To access the knobs, CV inputs, gate inputs, and so forth on the Daisy hardware, use RAM objects in the Gen patcher. The name of the param will address a particular control of CV or gate or knob. The param page in the OLED will display the currently mapped parameters, what they are mapped to, and their current values. Any unmapped parameters are available for modification using the encoder. Oopsie will always try to map all of the hardware controls, such as knobs and switches, to any available parameters. Most controls range from 0 to 1 in the patcher unless you have defined a minimum and maximum to override it. Minimum-maximum range corresponds to 0 to 5 volts in the case of the Daisy Patch. In the case of CV inputs, you will want to use a parameter that ranges from 0 to 5 or -1 to 4 accordingly. And you can use the Oopsie CV to Hertz subpatcher to convert this to a frequency parameter. Inputs may also have a little electronic noise which can be filtered out using Oopsie Control Smooth. [Music]
3. Use out CV 1 and 2, out gate 1, and so on to address the CV and gate outputs on the hardware. Again, an input value of 0 to 1 will map to 0 to 5 volts on the hardware. [Music] Be sure to use an outnumber that hasn't already been used for another purpose in the patch. Gate outputs have very low latency, on the order of a couple of milliseconds at most. However, very short triggers may be missed by the hardware. You can use Oopsie Gate Min to ensure that every trigger has at least enough duration to be picked up by the hardware.
If you have more than one Gen object in your patcher or in its subpatchers, then when you build and flash to the firmware, each will be available to switch between as different apps. They'll be available to switch through on the app page, like so. On the Daisy Field, use Switch 1 and Switch 2 to pick through apps. On the Daisy Petal, use the encoder with LED rings to switch between apps. MIDI-enabled Daisy devices can switch between apps in response to program change messages. This can actually happen quite quickly. Several menu pages also show the CPU usage. This is also displayed on the hardware by the pulse width of this LED here. Multiple apps don't use any extra runtime memory but do add up to program memory. Flashing may fail if too much program memory is required. Runtime memory use is displayed on the console page here. Oopsie will use the fast SRAM for all core algorithms and most data resources but will fall back to the slower SDRAM for large delays and data resources.
Oopsie provides a few objects for handling raw MIDI I/O within Gen patching for maximum flexibility, as well as streamlined MIDI input and output objects for specific media events such as continuous controllers and drum note velocities. MIDI I/O activity is displayed next to the CPU indicator on the OLED. See the MIDI IO example for more details on how this works. [Music] Wow. [Music] Wow. [Music] This swoops. [Music] You. You.