diff --git a/public/OSCspec.html b/public/OSCspec.html new file mode 100644 index 0000000000..6469c0bdca --- /dev/null +++ b/public/OSCspec.html @@ -0,0 +1,1560 @@ + + + + + + + + +
+
+ Surge XT Open Sound Control (OSC) Specification +
+
+ +
+
+
+
+
+

+ Surge XT supports external OSC control of most parameters, including patch and tuning + changes. Where appropriate and feasible, + Surge parameters/changes are reported to OSC out, either when they occur, or in the + special case of /send_all_parameters + (see below), on request. Notes may also be triggered via OSC, either by frequency or + by MIDI note number. +

+

+ OSC messages are constructed using the exact (case sensitive) + entry listed in the Address column in the tables below.
+ The form of the message should be /<address> <value>, + where address is one of the ones listed below, and zero or more + values can be*: + +

    +
  • a floating point value between 0.0 and 1.0, where 0 + represents the minimum acceptable + value for the parameter, and 1 represents the maximum.
    (note: use + '.' as the decimal mark, never ',').
  • +
  • an integer value
  • +
  • a boolean value, 0 (false) or 1 (true)
  • +
  • a file path (absolute or relative to the default path) +
  • contextual: either an integer or a float, depending on the context (loaded + oscillator or effect type)
  • +
+ +

+ If the received value is less than the minimum or greater than the maximum acceptable + value, it will be clipped + to the associated limit. +

+

+ Important Note: All numeric values must be sent over OSC as floating point + numbers + (even if they are listed as integer or boolean type -- + the 'Appropriate Values' column describes how the data is used by Surge XT, + not how messages are to be formatted for OSC). +

+

+ OSC Output: All parameter and patch changes made on Surge XT are reported to + OSC out, if OSC output is enabled. + Floating point parameters are reported both in their 'natural' range, and normalized + (0.0 - 1.0). + Errors are reported (when feasible) to "/error". +

+
+ + Examples are given in red. + + +
+
+
+ +
+
+

Notes

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionValue 1Value 2Value 3
/mnoteMIDI-style notenote number (0 - 127)velocity (0.0 - 127.0)*noteID (optional, 0 - maxint)§
/fnote †frequency notefrequency (8.176 - 12543.853)velocity (0.0 - 127.0)*noteID (optional, 0 - maxint)§
/mnote/relMIDI-style note releasenote number (0 - 127)release velocity (0.0 - 127.0)noteID (optional, 0 - maxint)§
/fnote/relfrequency note releasefrequency (8.176 - 12543.853)release velocity (0.0 - 127.0)noteID (optional, 0 - maxint)§
/allnotesoffrelease all current notes(none)(none)(none)
/allsoundoffstop all sound NOW(none)(none)(none)
+

* Velocity 0 releases the note; use the .../rel + messages to release notes with velocity. If noteIDs are + supplied, the note number or frequency value for releases is disregarded. +

+

† When using /fnote, Surge XT must be set + to standard tuning for proper results!

+

§ NoteID can be optionally supplied for more control over the + lifecycle of notes, or for Note Expressions. +

+
+
+ /mnote 68 120 + /fnote 440.0 120 + /mnote 68 0 + /fnote 440.0 0 + /mnote/rel 68 45 + /fnote/rel 440.0 45 +
+ +
+
+

Note Expressions

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionValue 1Value 2
/ne/pitchpitch note expressionnoteID (0 - maxint)§ + pitch offset (-120.0 - 120.0:  semitones)
/ne/volumevolume note expressionnoteID (0 - maxint)§ + volume multiplier (0.0 - 4.0)
/ne/panpan note expressionnoteID (0 - maxint)§ + position (0.0 - 1.0:  0.0 = left  0.5 = center  1.0 + = right)
/ne/timbretimbre note expressionnoteID (0 - maxint)§ + timbre (0.0 - 1.0)
/ne/pressurepressure note expressionnoteID (0 - maxint)§ + polyphonic aftertouch (0.0 - 1.0)
+

§ NoteID should belong to an already initiated note.

+
+
+
+ /ne/pitch 24566 0.34 + /ne/volume 24566 0.5 + /ne/pan 24566 0.9 + /ne/timbre 24566 0.18 + /ne/pressure 24566 0.4 +
+ +
+
+

Patches

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionAppropriate Values
/patch/loadload patchfile path (absolute, no extension)
/patch/savesave patchnone: overwrites current patch or + file path (absolute, no extension, overwrites if file exists) +
/patch/incrincrement patch(none)
/patch/decrdecrement patch(none)
/patch/incr_categoryincrement category(none)
/patch/decr_categorydecrement category(none)
/patch/randomchoose random patch(none)
+
+ +
+
+

Tuning

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionAppropriate Values
/tuning/scl .scl tuning filefile path (absolute or relative)*
/tuning/kbm.kbm mapping filefile path (absolute or relative)*
/tuning/path/scl.scl file default pathfile path (absolute only)
/tuning/path/kbm.kbm file default pathfile path (absolute only)
* no extension; use value = '_reset' to reset path to + factory default
+
+ +
+ +
+ /patch/load /Library/Application Support/Surge XT/patches_factory/Plucks/Clean + /patch/save + /patch/incr +
+
+ /tuning/scl ptolemy + /tuning/scl /Users/jane/scala_tunings/ptolemy + /tuning/path/scl /Users/jane/scala_tunings +
+ +
+ +
+
+

Parameter Queries

+
+ + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionAppropriate ValuesAction
/q/all_paramsrequest all parametersnoneSends a dump of all parameters listed below to OSC out
/q/<parameter address>request one parameternoneSends one parameter's value to OSC out
+
+ +
+ q/all_params + q/param/b/amp/gain + q/param/global/polyphony_limit + q/param/a/mixer/noise/mute +
+ +
+
+

Parameters

+
+
+ +
+ /param/b/amp/gain 0.63 + /param/global/polyphony_limit 12 + /param/a/mixer/noise/mute 0 +
+ + +
+
+

Control Group: Macros

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescriptionAppropriate Values
/param/macro/1macro 1float (0.0 - 1.0)
/param/macro/2macro 2float (0.0 - 1.0)
/param/macro/3macro 3float (0.0 - 1.0)
/param/macro/4macro 4float (0.0 - 1.0)
/param/macro/5macro 5float (0.0 - 1.0)
/param/macro/6macro 6float (0.0 - 1.0)
/param/macro/7macro 7float (0.0 - 1.0)
/param/macro/8macro 8float (0.0 - 1.0)
+
+
+
+

Control Group: Global

+

Replace '<sc>' with 'a' or 'b' (scene)

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/amp/gain VCA Gainfloat (0.0 to 1.0)
/param/<sc>/amp/pan Panfloat (0.0 to 1.0)
/param/<sc>/amp/vel_to_gain Velocity > VCA Gainfloat (0.0 to 1.0)
/param/<sc>/amp/volume Volumefloat (0.0 to 1.0)
/param/<sc>/amp/width Widthfloat (0.0 to 1.0)
/param/<sc>/filter/2/link_resonance Link Resonanceboolean (0 or 1)
/param/<sc>/filter/2/offset_mode Filter 2 Offset Modeboolean (0 or 1)
/param/<sc>/filter/balance Filter Balancefloat (0.0 to 1.0)
/param/<sc>/filter/config Filter Configurationinteger (0 to 7)
/param/<sc>/filter/feedback Feedbackfloat (0.0 to 1.0)
/param/<sc>/filter/keytrack_root Keytrack Root Keyinteger (0 to 127)
/param/<sc>/highpass Highpassfloat (0.0 to 1.0)
/param/<sc>/mixer/noise/color Noise Colorfloat (0.0 to 1.0)
/param/<sc>/octave Octaveinteger (-3 to 3)
/param/<sc>/osc/drift Osc Driftfloat (0.0 to 1.0)
/param/<sc>/osc/fm_depth FM Depthfloat (0.0 to 1.0)
/param/<sc>/osc/fm_routing FM Routinginteger (0 to 3)
/param/<sc>/pitch Pitchfloat (0.0 to 1.0)
/param/<sc>/pitchbend_down Pitch Bend Down Rangeinteger (0 to 24)
/param/<sc>/pitchbend_up Pitch Bend Up Rangeinteger (0 to 24)
/param/<sc>/play_mode Play Modeinteger (0 to 5)
/param/<sc>/portamento Portamentofloat (0.0 to 1.0)
/param/<sc>/send/1/level Send FX 1 Levelfloat (0.0 to 1.0)
/param/<sc>/send/2/level Send FX 2 Levelfloat (0.0 to 1.0)
/param/<sc>/send/3/level Send FX 3 Levelfloat (0.0 to 1.0)
/param/<sc>/send/4/level Send FX 4 Levelfloat (0.0 to 1.0)
/param/<sc>/waveshaper/drive Waveshaper Drivefloat (0.0 to 1.0)
/param/<sc>/waveshaper/type Waveshaper Typeinteger (0 to 42)
/param/fx/chain_bypass FX Chain Bypassinteger (0 to 3)
/param/fx/send/1/return Send FX 1 Returnfloat (0.0 to 1.0)
/param/fx/send/2/return Send FX 2 Returnfloat (0.0 to 1.0)
/param/fx/send/3/return Send FX 3 Returnfloat (0.0 to 1.0)
/param/fx/send/4/return Send FX 4 Returnfloat (0.0 to 1.0)
/param/global/active_scene Active Sceneinteger (0 to 1)
/param/global/character Characterinteger (0 to 2)
/param/global/polyphony_limit Polyphony Limitinteger (2 to 64)
/param/global/scene_mode Scene Modeinteger (0 to 3)
/param/global/split_point Split Pointinteger (0 to 127)
/param/global/volume Global Volumefloat (0.0 to 1.0)
+
+
+
+

Control Group: Oscillators

+

Replace '<sc>' with 'a' or 'b' (scene) and <n> with '1' through '3' + (oscillator #) +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/osc/<n>/keytrack Osc <n> Keytrackboolean (0 or 1)
/param/<sc>/osc/<n>/octave Osc <n> Octaveinteger (-3 to 3)
/param/<sc>/osc/<n>/param1 Osc <n> Morph(contextual)
/param/<sc>/osc/<n>/param2 Osc <n> Skew Vertical(contextual)
/param/<sc>/osc/<n>/param3 Osc <n> Saturate(contextual)
/param/<sc>/osc/<n>/param4 Osc <n> Formant(contextual)
/param/<sc>/osc/<n>/param5 Osc <n> Skew Horizontal(contextual)
/param/<sc>/osc/<n>/param6 Osc <n> Unison Detune(contextual)
/param/<sc>/osc/<n>/param7 Osc <n> Unison Voices(contextual)
/param/<sc>/osc/<n>/pitch Osc <n> Pitchfloat (0.0 to 1.0)
/param/<sc>/osc/<n>/retrigger Osc <n> Retriggerboolean (0 or 1)
/param/<sc>/osc/<n>/type Osc <n> Typeinteger (0 to 11)
+
+
+
+

Control Group: Filters

+

Replace '<sc>' with 'a' or 'b' (scene) and '<n>' with '1' or '2' (filter + #) +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/filter/<n>/cutoff Filter <n> Cutofffloat (0.0 to 1.0)
/param/<sc>/filter/<n>/feg_amount Filter <n> FEG Mod Amountfloat (0.0 to 1.0)
/param/<sc>/filter/<n>/keytrack Filter <n> Keytrackfloat (0.0 to 1.0)
/param/<sc>/filter/<n>/resonance Filter <n> Resonancefloat (0.0 to 1.0)
/param/<sc>/filter/<n>/subtype Filter <n> Subtypeinteger (0 to 15)
/param/<sc>/filter/<n>/type Filter <n> Typeinteger (0 to 33)
+
+ +
+
+

Control Group: Envelopes

+

Replace '<sc>' with 'a' or 'b' (scene)

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/aeg/attack Amp EG Attackfloat (0.0 to 1.0)
/param/<sc>/aeg/attack_shape Amp EG Attack Shapeinteger (0 to 2)
/param/<sc>/aeg/decay Amp EG Decayfloat (0.0 to 1.0)
/param/<sc>/aeg/decay_shape Amp EG Decay Shapeinteger (0 to 2)
/param/<sc>/aeg/mode Amp EG Envelope Modeinteger (0 to 1)
/param/<sc>/aeg/release Amp EG Releasefloat (0.0 to 1.0)
/param/<sc>/aeg/release_shape Amp EG Release Shapeinteger (0 to 2)
/param/<sc>/aeg/sustain Amp EG Sustainfloat (0.0 to 1.0)
/param/<sc>/feg/attack Filter EG Attackfloat (0.0 to 1.0)
/param/<sc>/feg/attack_shape Filter EG Attack Shapeinteger (0 to 2)
/param/<sc>/feg/decay Filter EG Decayfloat (0.0 to 1.0)
/param/<sc>/feg/decay_shape Filter EG Decay Shapeinteger (0 to 2)
/param/<sc>/feg/mode Filter EG Envelope Modeinteger (0 to 1)
/param/<sc>/feg/release Filter EG Releasefloat (0.0 to 1.0)
/param/<sc>/feg/release_shape Filter EG Release Shapeinteger (0 to 2)
/param/<sc>/feg/sustain Filter EG Sustainfloat (0.0 to 1.0)
+
+ +
+
+

Control Group: FX

+

Replace '<sc>' with 'a', 'b', 'global' or 'send' and '<n>' with '1' + through + '4' (slot + #)

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/fx/<sc>/<n>/param1 FX <sc><n> Param 1(contextual)
/param/fx/<sc>/<n>/param2 FX <sc><n> Param 2(contextual)
/param/fx/<sc>/<n>/param3 FX <sc><n> Param 3(contextual)
/param/fx/<sc>/<n>/param4 FX <sc><n> Param 4(contextual)
/param/fx/<sc>/<n>/param5 FX <sc><n> Param 5(contextual)
/param/fx/<sc>/<n>/param6 FX <sc><n> Param 6(contextual)
/param/fx/<sc>/<n>/param7 FX <sc><n> Param 7(contextual)
/param/fx/<sc>/<n>/param8 FX <sc><n> Param 8(contextual)
/param/fx/<sc>/<n>/param9 FX <sc><n> Param 9(contextual)
/param/fx/<sc>/<n>/param10 FX <sc><n> Param 10(contextual)
/param/fx/<sc>/<n>/param11 FX <sc><n> Param 11(contextual)
/param/fx/<sc>/<n>/param12 FX <sc><n> Param 12(contextual)
/param/fx/<sc>/<n>/type FX <sc><n> FX Type0 = off; 1 - 29: effect type
+
+ +
+
+

Control Group: Mixer

+

Replace '<sc>' with 'a' or 'b' (scene) and <n> with '1' through '3' + (oscillator #) +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/mixer/noise/mute Noise Muteboolean (0 or 1)
/param/<sc>/mixer/noise/route Noise Routeinteger (0 to 2)
/param/<sc>/mixer/noise/solo Noise Soloboolean (0 or 1)
/param/<sc>/mixer/noise/volume Noise Volumefloat (0.0 to 1.0)
/param/<sc>/mixer/osc<n>/mute Osc <n> Muteboolean (0 or 1)
/param/<sc>/mixer/osc<n>/route Osc <n> Routeinteger (0 to 2)
/param/<sc>/mixer/osc<n>/solo Osc <n> Soloboolean (0 or 1)
/param/<sc>/mixer/osc<n>/volume Osc <n> Volumefloat (0.0 to 1.0)
/param/<sc>/mixer/prefilter_gain Pre-Filter Gainfloat (0.0 to 1.0)
/param/<sc>/mixer/rm1x2/mute Ring Modulation 1x2 Muteboolean (0 or 1)
/param/<sc>/mixer/rm1x2/route Ring Modulation 1x2 Routeinteger (0 to 2)
/param/<sc>/mixer/rm1x2/solo Ring Modulation 1x2 Soloboolean (0 or 1)
/param/<sc>/mixer/rm1x2/volume Ring Modulation 1x2 Volumefloat (0.0 to 1.0)
/param/<sc>/mixer/rm2x3/mute Ring Modulation 2x3 Muteboolean (0 or 1)
/param/<sc>/mixer/rm2x3/route Ring Modulation 2x3 Routeinteger (0 to 2)
/param/<sc>/mixer/rm2x3/solo Ring Modulation 2x3 Soloboolean (0 or 1)
/param/<sc>/mixer/rm2x3/volume Ring Modulation 2x3 Volumefloat (0.0 to 1.0)
+
+ +
+
+

Control Group: Modulators

+

Replace '<sc>' with 'a' or 'b' (scene) and '<n>' with '1' through '6' (lfo + #) +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressParameter NameAppropriate Values
/param/<sc>/slfo/<n>/amplitude Scene LFO <n> Amplitudefloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/deform Scene LFO <n> Deformfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/attack Scene LFO <n> Attackfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/decay Scene LFO <n> Decayfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/delay Scene LFO <n> Delayfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/hold Scene LFO <n> Holdfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/release Scene LFO <n> Releasefloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/eg/sustain Scene LFO <n> Sustainfloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/phase Scene LFO <n> Phasefloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/rate Scene LFO <n> Ratefloat (0.0 to 1.0)
/param/<sc>/slfo/<n>/trigger_mode Scene LFO <n> Trigger Modeinteger (0 to 2)
/param/<sc>/slfo/<n>/type Scene LFO <n> Typeinteger (0 to 9)
/param/<sc>/slfo/<n>/unipolar Scene LFO <n> Unipolarboolean (0 or 1)
/param/<sc>/vlfo/<n>/amplitude LFO <n> Amplitudefloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/deform LFO <n> Deformfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/attack LFO <n> Attackfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/decay LFO <n> Decayfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/delay LFO <n> Delayfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/hold LFO <n> Holdfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/release LFO <n> Releasefloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/eg/sustain LFO <n> Sustainfloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/phase LFO <n> Phasefloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/rate LFO <n> Ratefloat (0.0 to 1.0)
/param/<sc>/vlfo/<n>/trigger_mode LFO <n> Trigger Modeinteger (0 to 2)
/param/<sc>/vlfo/<n>/type LFO <n> Typeinteger (0 to 9)
/param/<sc>/vlfo/<n>/unipolar LFO <n> Unipolarboolean (0 or 1)
+
+ + +
+ +
+
+
+
+

Modulation

+
+
+ +

+ Modulation Mapping messages are constructed by selecting one of the '/mod' source + addresses + listed below (with an appropriate index value, if necessary) and adding a target + address selected + from the '/param' addresses listed above, then specifying a depth (0.0 - 1.0). + If both the source and target addresses are scene-specific (a or b), the scenes must + match. +

+

+ Send a depth of 0 to disconnect a modulator from its target. +

+

+ Not all parameters can be modulated by all mod. sources. If a given combination is + not + possible an error will be reported to OSC out. +

+
+
+ +
+ /mod/b/slfo_1/2 /param/b/amp/gain 0.45 + /mod/a/feg /param/a/filter/1/cutoff 0.9 + /mod/macro_6 /param/a/pitch 0.75 +
+ +
+
+

Modulation Mapping: Sources

+

Replace '<sc>' with 'a' or 'b' (scene) and '<n>' with '1' through '6' (lfo + #) +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AddressDescription<index>=0<index>=1<index>=2
/mod/velVelocity
/mod/rel_velRelease Velocity
/mod/keytrkKeytrack
/mod/<sc>/lowest_keyLowest Key
/mod/<sc>/highest_keyHighest Key
/mod/<sc>/latest_keyLatest Key
/mod/patPolyphonic Aftertouch
/mod/atChannel Aftertouch
/mod/mwModulation Wheel
/mod/breathBreath
/mod/exprExpression
/mod/susSustain Pedal
/mod/pbPitch Bend
/mod/timbreTimbre
/mod/alt_biAlternate Bipolar
/mod/alt_uniAlternate Unipolar
/mod/rand_bi/<index>Random Bipolar (Uniform) (Normal)
/mod/rand_uni/<index>Random Unipolar (Uniform) (Half Normal)
/mod/<sc>/fegFilter EG
/mod/<sc>/aegAmp EG
/mod/<sc>/vlfo_<n>/<index>Voice LFO <n>†(Voice LFO <n>) (Raw Waveform) (EG Only)
/mod/<sc>/slfo_<n>/<index>Scene LFO <n>†(Scene LFO <n>) (Raw Waveform) (EG Only)
/mod/macro_1Macro 1
/mod/macro_2Macro 2
/mod/macro_3Macro 3
/mod/macro_4Macro 4
/mod/macro_5Macro 5
/mod/macro_6Macro 6
/mod/macro_7Macro 7
/mod/macro_8Macro 8
+

† For Scene or Voice LFOs of "Formula" type, indices [0 - 7] + specify "Formula Out" [1 - 8]

+
+
+
+
+ + + \ No newline at end of file diff --git a/src/content/pages/nightlychangelog.mdx b/src/content/pages/nightlychangelog.mdx index 8e1583913d..896c299202 100644 --- a/src/content/pages/nightlychangelog.mdx +++ b/src/content/pages/nightlychangelog.mdx @@ -7,7 +7,7 @@ slug: nightlychangelog We plan to release Surge XT 1.3 sometime in winter 2023. -This is up to date as of Nov 18 / db38b1c8f +This is up to date as of Nov 19 / fdb5029 ## Open Sound Control @@ -23,26 +23,26 @@ This is up to date as of Nov 18 / db38b1c8f - Combined with Open Sound Control and MIDI Program Change support, this allows a variety of new and useful embedded and headless performance options -## New Effects: Bonsai, Audio In, Expanded RM, and More Airwindows +## New Effects: Bonsai, Audio In, and More Airwindows - Bonsai is a really organic-sounding Distortion effect, combining a highly non-linear bass boost with an emphasis-filtered waveshaper and noise AM. It excels at a wide range of very beefy gnarly sounds, but can sound very good at subtle settings too. - Audio In is the same functionality as the Audio In oscillator type, simply allowing you to insert audio into the signal path downstream from the filters and waveshapers etc. -- Add the Airwindows Y and Z filters to the Airwindows effet suite -- The Digital Ring Modulator (RM1x2 and 2x3 in the mixer) gains a large number - of alternate combinator modes. +- Add the Airwindows Y and Z filters to the Airwindows effect suite + ## DSP Additions and Changes +- The Digital Ring Modulator (RM1x2 and 2x3 in the mixer) gains a large number + of alternate combinator modes. - FM3 M3 frequency extendable down to 0.5 hz - Oscillator initialization ignored the octave setting. This caused a very small initial gliss in the String and (in some cases) modern oscillator. Correct this to remove the gliss - Sin, FM2, and FM3 get a 'vintage feedback' mode (right mouse the Feedback slider) using a longer feedback window for slightly smoother feedback results. -- Added Z and Y filters to the Airwindows FX. - The default Comb Filter buffer is twice as long (4096 samples) allowing lower frequency physical modelling at high sample rates. Self builders can reduce this size if they need to preserve memory through a CMake switch. @@ -79,7 +79,6 @@ This is up to date as of Nov 18 / db38b1c8f ## Accessibility changes - The return key on a step sequencer launches the edit gesture, matching other accessible sliders - Alert screens now properly receive keyboard focus for screen reader users -- Allow Shift + F10 to close our menus, to work around a reaper bug where Escape closes the whole Surge - FX sliders now speak the name of the parameter group. Helpful in FX like the new Audio In, which have multiple similarly named params in different groups. - Shift F10 closes open menus as well as opening them, working around some DAWs (like Reaper) which @@ -99,7 +98,6 @@ This is up to date as of Nov 18 / db38b1c8f - Use consistent phaser waveform names - Patch Save Factory Overwrite available with shift-alt-click - Use built-in windows for all alerts and notifications, no longer using the JUCE generic alert -- Fix a multi-line text bug in JUCE which made the comment screen in patch editor mis-respond to HOME in some cases - Hide custom menu icons when menus are in accessible-expansion mode ## Bug Fixes and Other Changes @@ -133,7 +131,6 @@ This is up to date as of Nov 18 / db38b1c8f - Changing the OSC type or the FX type sends the appropriate begin/end edit information to the hosts for VST3/CLAP/AU parameter invalidation and OSC message creation - Surge Effects Bank no longer creates documents directory if not needed / improves portability. -- Copy/Paste and Undo/Redo work on voice mono options ## Code Factoring and Quality