This area contains various information on patches for Cycling-74 Max/MSP/Jitter. Please see the Metamusic area for more information on prior audio designs. Some of these are also described as projects and tools for Cycling'74 on its website,http://cycling74.com.
This short tutorial describes how vector optimization techniques, originally developed for Cray Supercomputers, can now provide an order of magnitude increase in performance for many audio apps running on standard Intel computers of the current era. It provides an example in Cycling'74 gen~ code. But first, you really might enjoy how I learned it, or perhaps not, as it's a very tragic story.
Maxmake builds a Windows executable with a single keyboard click. You can copy, move, and rename the patcher folder, and the makefile still works. You can automatically include your own files in the collective, add writable files, and replace resource files, simply by putting them in a subfolder of the patcher's folder. You can change the hotkeys and directly modify the makefile to your own needs by editing the makefile with its included editor.
>6 months in the making and the first of its kind, the Synthcore library contains a hundred functions written in Cycling74 gen~ codebox for audio. The download package includes: the library itself; a demo patch illustrating usage of the main functions; data files; and two complete synths built with the library that implement the audio path entirely in gen~.
A simple monophonic patch demonstrating the Yofiel synthesizer core. The single gen~ object's CPU utilization is extremely low, even though no sacrifices were made for quality. It is typically 0.6% on a 4GHz Windows machine, and built-in dynamic CPU throttling drops usage to near zero when not outputting audio.
The following video demonstrates some of the synthcore sounds.
Godel 2 includes a standard 2-oscillator FM subtractive synthesis engine, built entirely in gen~, with Yofiel's standard additional features such as multiple tracking modes, modulation matrix, and effects. The Godel arpeggiator plays notes in the same order played, with chords added during real-time play and/or to the arpeggiation at variable intervals.The polyphonic arpeggiation sequence is saved with the preset.
This is a gen~ implementation of the 2/4-pole mixing state-variable filter with variable saturation, based on the core filter implementation in the 2-Osc instrument for Reaktor 5.9. Resonance is not gain compensated at higher Q values.
This oscillator has 5,504 individual wave cycles, organized as 128 smoothly morphing waves, in 43 sets. The design is very simple, reading in a single audio file at initialization (included) that contains all the waves in continuous and contiguous segments. A gen~ object supports morphing between any wave in each set, and between any set, to eliminate clicks from wave discontinuities.
The 43 morphing sets include harmonic shapings, filter sweeps, vowel formants, and randomized loops (please note that the loops are for individual wave cycles, not for looper apps).
An extension to the 7-segment GEN envelope example providing retrigger and consistent exponential shaping of each segment slope across different duration values. The retrigger occurs when the envelope is already on and it receives a new gate-on signal. A brief release tapers the prior envelope to 0 over 5 milliseconds, to prevent clicking, before starting the new envelope afresh.
Recent advances in Efficient Polynomial Transition Region (EPTR) algorithms provide remarkable performance and quality. Here is a new EPTR pulse oscillator with variable pulse width, FM, and sync. It offers exceptionally well-defined harmonic bands, and low noise between them, providing astonishingly pure square waves that closely resemble vintage analog hardware, with extended frequency response up to MIDI F7 at 44.1kHz and MIDI F8 at 96 kHz. Here also is a unique design that improves the quality of sawtooth and variable-width triangle waves.
This cycling74 Max patch generates chords from an on-screen keyboard or MIDI, with dynamic voice allocation and transposition, key, scale, and velocity remapping. When the note is turned off, the other notes in the generated chord are turned off. The number of active generated notes can be changed at any time.
First, here is a standard audio limiter. which clamps output on signals over unity gain. it has 100ms sampling response, and a 5ms integrator on the gain control signal to prevent clicks when it adjusts the output volume.
Polyvoice 3 is a Max 7 object for managing polyphony. While Max has its own polyphonic management objects, there's a number of reasons you might wish to manage polyphony yourself. The first and most obvious is that you can then create a display which shows the actual playing notes. The demonstration patch shows, for example, if you click and drag across the keyboard, the older notes turn themselves off automatically. Also, you can change the maximum number of playing notes dynamically, which is even useful as a performance tool.
There's a number of scale remappers for Max. This one is optimized for real-time performance. It prebuilds 160 pitch remap lists during load. Subsequently, only one lookup operation on the selected pitch, key, and transposition is required during performance.
This Max object provides a thumbnail of the current pitch tracking that, when clicked, opens a window for fine-tune control. The tracking may be disabled overall providing a uniform shift; or adjusted with one breakpoint with linear or adjustable curvature above and below the breakpoint.