GeoShred can be used as an Audio Unit plugin in Audio Unit host applications, such as GarageBand, Cubasis, AUM and AudioBus3.
A typical use case, in GarageBand, would be to create one more GeoShred tracks, which can use separate GeoShred presets, along with other instruments, such as the built-in instruments in GarageBand, or other Audio Unit plugins, such as Moog Model 15, Roli Noise, or iSEM. See this list of Audio Unit plugins and hosts for some ideas.
When recording a track, GeoShred renders its own sound as it does standalone, but in addition sends MIDI to the host, which stores it for playback. In the case of GarageBand, this would mean the MIDI is saved on a track in a GarageBand "Song".
On playback, GeoShred receives the MIDI it sent to the host, and renders the audio as if you were playing into standalone GeoShred from a MIDI keyboard.
The playback sounds like what was recorded, but there are some cases where it’s not 100 percent accurate due to the quantization of floating-point, touch-derived, controller values to 7-bit MIDI values. We tried as much as we could to make this imperceptible.
When there are multiple tracks in a host project (e.g., in a GarageBand Song), a "program-number" (roughly equivalent to a MIDI program-change message) is associated with each track. The program-number is stored in the AU parameter memory (the 'AUParameterTree' for the track). The host sends this parameter to GeoShred to tell it which track it is on, and therefore which preset should be loaded for that track.
At the present time, Apple's implementation of AUParameterTree does not support dynamically allocated parameters, so we only expose AU parameters for program-number and panic. This means that AU Parameter presets (for example the Factory Presets in Cubasis) don't apply to GeoShred. You may treat GeoShred presets like any other AU presets in other plugins, but do not expect the host to know about them, such as for parameter automation.