From 4805db1dcd2fa1a0d59c26f6bfeaab7e224fb487 Mon Sep 17 00:00:00 2001 From: dhemery Date: Sun, 28 Jul 2024 20:22:31 +0000 Subject: [PATCH] deploy: 1e52b3ae70bb5c4857a53f376b6bdcee827f973f --- css/screen.css | 87 ++-- .../index.html | 118 +----- .../index.html | 65 +-- guides/index.html | 33 +- guides/techniques-and-variations/index.html | 289 +++---------- index.html | 129 ++---- modules/blossom/index.html | 99 +---- modules/booster-stage/index.html | 190 ++------- modules/buttons/index.html | 51 +-- modules/cubic/index.html | 119 +----- .../conversion-guide/index.html | 113 +---- modules/curve-sequencer/index.html | 341 ++++----------- modules/func-6/index.html | 100 +---- modules/func/index.html | 93 +--- modules/fuzzy-logic-h/index.html | 154 ++----- modules/fuzzy-logic-z/index.html | 154 ++----- modules/gator/index.html | 110 +---- modules/hostage/index.html | 150 ++----- modules/index.html | 27 +- modules/ranger/index.html | 69 +-- modules/scannibal/index.html | 176 ++------ modules/sequencizer/index.html | 396 ++++-------------- .../user-guide/anchors-constant.png | Bin 18025 -> 18492 bytes modules/sequencizer/user-guide/index.html | 215 ++++++++++ modules/stage/index.html | 163 +------ modules/swave/index.html | 74 +--- modules/tapers/index.html | 78 +--- modules/truth/index.html | 137 +----- modules/upstage/index.html | 106 +---- modules/xycloid/index.html | 156 ++----- modules/xycloid/v0.6.1/index.html | 82 ++++ release-notes/index.html | 244 +---------- technical/curves/index.html | 194 +-------- technical/how-stages-work-together/index.html | 104 +---- technical/index.html | 34 +- technical/modulation/index.html | 75 +--- technical/sigmoid/index.html | 184 ++------ 37 files changed, 1071 insertions(+), 3838 deletions(-) create mode 100644 modules/sequencizer/user-guide/index.html create mode 100644 modules/xycloid/v0.6.1/index.html diff --git a/css/screen.css b/css/screen.css index d9850264..7e0d578d 100644 --- a/css/screen.css +++ b/css/screen.css @@ -18,13 +18,19 @@ body { font-family: Helvetica, sans-serif; font-size: 100%; } -main p, main ul, main ol, main blockquote { +main p, +main ul, +main ol, +main blockquote { margin: 1rem auto; } -main p, main ul, main ol { +main p, +main ul, +main ol { padding: 0; } -main ul, main ol { +main ul, +main ol { padding-left: 1rem; } main blockquote { @@ -48,7 +54,9 @@ footer { background-color: #003366; padding: .5em; margin: 0; } - .banner h1, .banner h2, .banner a { + .banner h1, + .banner h2, + .banner a { font-weight: normal; color: #e7ebef; } .banner h1 { @@ -56,7 +64,8 @@ footer { .banner h2 { font-size: 2rem; } -.boxed, .chrome { +.boxed, +.chrome { border-color: #999999; border-width: 1px; background-color: #e7ebef; } @@ -101,26 +110,36 @@ blockquote { border: 1px solid #999999; background-color: #fbfbfb; color: #003366; } - blockquote p, blockquote em em { + blockquote p, + blockquote em em { font-style: italic; } - blockquote em, blockquote em em em { + blockquote em, + blockquote em em em { font-style: normal; } -em, em em em { +em, +em em em { font-style: italic; } em em { font-style: normal; } -h1, h2, h3, h4 { +h1, +h2, +h3, +h4 { margin: 0; padding: 0; color: #003366; } -section h1, section h2 { +section h1, +section h2 { font-variant: small-caps; } -section h1, section h2, section h3, section h4 { +section h1, +section h2, +section h3, +section h4 { margin-top: 1.5rem; } h1 { @@ -143,13 +162,20 @@ img { li { margin: 0; } -ol, ul { +ol, +ul { list-style: none; } -p, li, dt, dd { +p, +li, +dt, +dd { line-height: 1.5; } -p, ul, ol, blockquote { +p, +ul, +ol, +blockquote { padding: 0; margin-top: 2rem; } @@ -167,20 +193,14 @@ img.faceplate { float: right; } img.controls { - padding-left: 10px; - padding-bottom: 10px; - float: right; } - -img.td-controls { - margin: auto; - text-align: center; - vertical-align: top; } + padding-top: 10px; } img.envelope { height: auto; width: auto; max-height: 360px; - max-width: 100%; } + max-width: 100%; + padding-top: 10px; } img.envelope2 { height: auto; @@ -194,20 +214,29 @@ img.xycloid { max-height: 360px; max-width: 100%; } -table.curves td { +table.curves td, +table.techniques td { vertical-align: middle; text-align: center; - padding: 0; + padding: 5px; margin: 0; } -table.curves th { +table.curves th, +table.techniques th { vertical-align: middle; text-align: center; padding: .5em; } -table.curves svg { +table.curves svg, +table.techniques svg { width: 12.7mm; height: 12.7mm; } -table.curves img { - height: 80px; } +table.curves img, +table.techniques img { + width: 40px; } + +table.techniques { + border-collapse: collapse; } + table.techniques td { + border: 1px solid black; } diff --git a/guides/generating-multi-stage-envelopes/index.html b/guides/generating-multi-stage-envelopes/index.html index de2e3e63..afadeac5 100644 --- a/guides/generating-multi-stage-envelopes/index.html +++ b/guides/generating-multi-stage-envelopes/index.html @@ -1,37 +1,10 @@ - - - - - - -Generating Multi-Stage Envelopes - - - - - -
-
-

Generating Multi-Stage Envelopes

-
-

Combine +Generating Multi-Stage Envelopes +

Generating Multi-Stage Envelopes

Combine Stage, Booster Stage, Hostage, and Upstage -modules to generate complex, interesting, multi-stage envelopes.

-

Here are some common envelope types:

- -

For additional ideas: +modules to generate complex, interesting, multi-stage envelopes.

Here are some common envelope types:

For additional ideas: see Techniques and Variations, which describes how to wire multi-stage envelopes, @@ -40,83 +13,22 @@

-

AR: Attack-Release Envelopes

-Attack-Release Envelope -
    -
  • Connect: -
      -
    1. A Stage for the attack stage
    2. -
    3. A Stage for the release stage
    4. -
    -
  • -
  • To start the envelope at 0V, -leave the attack stage’s IN input disconnected.
  • -
  • To set the peak attack voltage, -adjust the attack stage’s LEVEL.
  • -
  • Set the release stage’s LEVEL to 0V.
  • -
-

AHR: Attack-Hold-Release Envelopes

-Attack-Hold-Release Envelope -
    -
  • Connect: -
      -
    1. A Stage for the attack stage
    2. -
    3. A Hostage for the hold stage
    4. -
    5. A Stage for the release stage
    6. -
    -
  • -
  • Set Hostage to HOLD mode.
  • -
  • To start the envelope at 0V, -leave the attack Stage’s IN input disconnected.
  • -
  • Adjust the attack Stage’s LEVEL +and other interesting variations.

    AR: Attack-Release Envelopes

    Attack-Release Envelope
    • Connect:
      1. A Stage for the attack stage
      2. A Stage for the release stage
    • To start the envelope at 0V, +leave the attack stage’s IN input disconnected.
    • To set the peak attack voltage, +adjust the attack stage’s LEVEL.
    • Set the release stage’s LEVEL to 0V.

    AHR: Attack-Hold-Release Envelopes

    Attack-Hold-Release Envelope
    • Connect:
      1. A Stage for the attack stage
      2. A Hostage for the hold stage
      3. A Stage for the release stage
    • Set Hostage to HOLD mode.
    • To start the envelope at 0V, +leave the attack Stage’s IN input disconnected.
    • Adjust the attack Stage’s LEVEL to set the peak attack voltage. -This also sets the hold level.
    • -
    • Set the release Stage’s LEVEL to 0V.
    • -
    -

    ADHR: Attack-Decay-Hold-Release Envelopes

    -Attack-Decay-Hold-Release Envelope -

    To generate an Attack-Decay-Hold-Release (ADHR) envelope, +This also sets the hold level.

  • Set the release Stage’s LEVEL to 0V.

ADHR: Attack-Decay-Hold-Release Envelopes

Attack-Decay-Hold-Release Envelope

To generate an Attack-Decay-Hold-Release (ADHR) envelope, start with an Attack-Hold-Release envelope -and insert another Stage before the Hostage:

-

ADSR: Attack-Decay-Sustain-Release Envelopes

-Attack-Decay-Sustain-Release Envelope -

To generate a sustain stage, +and insert another Stage before the Hostage:

ADSR: Attack-Decay-Sustain-Release Envelopes

Attack-Decay-Sustain-Release Envelope

To generate a sustain stage, we need to wire one module a little differently than normal. -Note the bold text below.

-
    -
  • Connect: -
      -
    1. A Stage for the attack stage
    2. -
    3. A Stage for the decay stage
    4. -
    5. A Hostage for the sustain stage
    6. -
    7. A Stage for the release stage
    8. -
    -
  • -
  • Connect Hostage’s GATE input +Note the bold text below.

    • Connect:
      1. A Stage for the attack stage
      2. A Stage for the decay stage
      3. A Hostage for the sustain stage
      4. A Stage for the release stage
    • Connect Hostage’s GATE input to the same gate source that triggers the first stage. This configures the gate source -to both trigger and sustain the envelope.
    • -
    • Set Hostage to SUSTAIN mode.
    • -
    • To start the envelope at 0V, -leave the attack stage’s IN input disconnected.
    • -
    • Adjust the attack stage’s LEVEL -to set the peak attack voltage.
    • -
    • Adjust the decay stage’s LEVEL -to set the sustain level.
    • -
    • Set the release stage’s LEVEL to 0V.
    • -
    -

    Note that the envelope uses the LFO’s square wave +to both trigger and sustain the envelope.

  • Set Hostage to SUSTAIN mode.
  • To start the envelope at 0V, +leave the attack stage’s IN input disconnected.
  • Adjust the attack stage’s LEVEL +to set the peak attack voltage.
  • Adjust the decay stage’s LEVEL +to set the sustain level.
  • Set the release stage’s LEVEL to 0V.

Note that the envelope uses the LFO’s square wave both to trigger the envelope -and to sustain it.

-

More Stages Than You Can Count…

-

… unless you can count to eighteen.

-An Eighteen-Stage Envelope -
-
-
-

© 2017–2022 Dale H. Emery

-
- - \ No newline at end of file +and to sustain it.

More Stages Than You Can Count…

… unless you can count to eighteen.

An Eighteen-Stage Envelope
\ No newline at end of file diff --git a/guides/generating-single-stage-envelopes/index.html b/guides/generating-single-stage-envelopes/index.html index d9b10602..9c37690e 100644 --- a/guides/generating-single-stage-envelopes/index.html +++ b/guides/generating-single-stage-envelopes/index.html @@ -1,70 +1,19 @@ - - - - - - -Generating Single-Stage Envelopes - - - - - -
-
-

Generating Single-Stage Envelopes

-
-

You can create a simple envelopes +Generating Single-Stage Envelopes +

Generating Single-Stage Envelopes

You can create a simple envelopes with a single Stage -module:

- -

For additional control and versatility, +module:

For additional control and versatility, use a Booster Stage -instead of a Stage.

-

See also:

-
    -
  • Generating Multi-Stage Envelopes
  • -
  • Techniques and Variations: +instead of a Stage.

    See also:

    -

    Attack-and-Hold Envelopes

    -Attack and Hold Envelope -
      -
    • Connect a trigger source to the TRIG input.
    • -
    • Leave the IN input disconnected.
    • -
    • Set the LEVEL knob to the desired hold voltage.
    • -
    -

    Decay-and-Hold Envelopes

    -

    This is very useful for plucks:

    -Decay and Hold Envelope -
      -
    • Connect a trigger source to the TRIG input.
    • -
    • Connect a voltage source to the IN input -to supply the envelope’s starting voltage.
    • -
    • Set the LEVEL knob to the desired hold voltage.
    • -
    -

    Note: +and other interesting variations.

Attack-and-Hold Envelopes

Attack and Hold Envelope
  • Connect a trigger source to the TRIG input.
  • Leave the IN input disconnected.
  • Set the LEVEL knob to the desired hold voltage.

Decay-and-Hold Envelopes

This is very useful for plucks:

Decay and Hold Envelope
  • Connect a trigger source to the TRIG input.
  • Connect a voltage source to the IN input +to supply the envelope’s starting voltage.
  • Set the LEVEL knob to the desired hold voltage.

Note: It may be useful to use the trigger signal to supply the envelope’s starting voltage, -as we’ve done in this example.

-
-
-
-

© 2017–2022 Dale H. Emery

-
- - \ No newline at end of file +as we’ve done in this example.

© 2017–2022 Dale H. Emery

\ No newline at end of file diff --git a/guides/index.html b/guides/index.html index 07f92067..6181eee2 100644 --- a/guides/index.html +++ b/guides/index.html @@ -1,31 +1,2 @@ - - - - - - -Usage Guides - - - - - -
-
-

Usage Guides

-
-
-
-
-
-

© 2017–2022 Dale H. Emery

-
- - \ No newline at end of file +Usage Guides +

Usage Guides

© 2017–2022 Dale H. Emery

\ No newline at end of file diff --git a/guides/techniques-and-variations/index.html b/guides/techniques-and-variations/index.html index f0654409..66040d84 100644 --- a/guides/techniques-and-variations/index.html +++ b/guides/techniques-and-variations/index.html @@ -1,300 +1,127 @@ - - - - - - -Techniques and Variations - - - - - -
-
-

Techniques and Variations

-
-
-

See also:

- -

Wiring a Multi-Stage Envelope

-

The usual way to wire +Techniques and Variations +

Techniques and Variations

See also:

Wiring a Multi-Stage Envelope

The usual way to wire Stage, Booster Stage, Hostage, and Upstage modules -into multi-stage envelopes is:

-
    -
  1. Place the modules side-by-side in the order you want them to execute.
  2. -
  3. Connect each output to the input on its right.
  4. -
-

For example, -suppose you want generate a four-stage envelope using Stage modules:

-Four Stage Modules -

Notice how:

-
    -
  • The ACTIVE outputs line up with the DEFER inputs.
  • -
  • The EOC outputs line up with the TRIG inputs.
  • -
  • The OUT outputs line up with the IN inputs.
  • -
-

That is your clue to wiring the modules together:

-
    -
  • Connect each module’s ACTIVE output -to its successor’s DEFER input.
  • -
  • Connect each module’s EOC output -to its successor’s TRIG input.
  • -
  • Connect each module’s OUT output -to its successor’s IN input.
  • -
-

Here is the result:

-Four Connected Stage Modules -

Now all that remains is to +into multi-stage envelopes is:

  1. Place the modules side-by-side in the order you want them to execute.
  2. Connect each output to the input on its right.

For example, +suppose you want generate a four-stage envelope using Stage modules:

Four Stage Modules

Notice how:

  • The ACTIVE outputs line up with the DEFER inputs.
  • The EOC outputs line up with the TRIG inputs.
  • The OUT outputs line up with the IN inputs.

That is your clue to wiring the modules together:

  • Connect each module’s ACTIVE output +to its successor’s DEFER input.
  • Connect each module’s EOC output +to its successor’s TRIG input.
  • Connect each module’s OUT output +to its successor’s IN input.

Here is the result:

Four Connected Stage Modules

Now all that remains is to connect a trigger source to the first stage, connect the final stage’s output to whatever parameter you want your envelope to modulate, -and adjust the levels, curves, and durations to taste.

-

Note: +and adjust the levels, curves, and durations to taste.

Note: Hostage has a GATE port instead of a TRIG port. Upstage has a different set of ports. -But even these modules' ports are arranged +But even these modules’ ports are arranged so that the usual wiring scheme — “connect each module’s outputs to its successor’s inputs” — usually applies. -See the examples below for details and exceptions.

-

Setting Levels

-
    -
  • -

    Each module’s LEVEL knob +See the examples below for details and exceptions.

    Setting Levels

    • Each module’s LEVEL knob determines the ending level -of the stage it generates.

      -
    • -
    • -

      The starting voltage of each stage +of the stage it generates.

    • The starting voltage of each stage is determined by the signal arriving at its IN input -at the instant it is triggered.

      -
    • -
    • -

      In this way, +at the instant it is triggered.

    • In this way, each stage begins -where its predecessor ends.

      -
    • -
    • -

      So to set each module’s starting level, +where its predecessor ends.

    • So to set each module’s starting level, set the previous stage’s -ending level.

      -
    • -
    -

    Adding a Hold Stage

    -

    The Hostage module is designed specifically -to create hold and sustain stages.

    -

    A hold stage +ending level.

Adding a Hold Stage

The Hostage module is designed specifically +to create hold and sustain stages.

A hold stage holds the envelope voltage constant -for a given duration.

-

With a hold stage, +for a given duration.

With a hold stage, you can generate an Attack-Hold-Release or Attack-Decay-Hold-Release -Envelope.

-

To generate a hold stage with Hostage:

-
    -
  • Wire it into the chain of modules -in the position where you want the the hold stage
  • -
  • Set its mode to HOLD.
  • -
-

Hostage holds the voltage +Envelope.

To generate a hold stage with Hostage:

  • Wire it into the chain of modules +in the position where you want the the hold stage
  • Set its mode to HOLD.

Hostage holds the voltage at the level where the previous stage ended. It offers a knob, a range switch, and CV modulation -to set the duration of the hold stage.

-

Adding a Sustain Stage

-

The Hostage module is designed specifically -to create hold and sustain stages.

-

A sustain stage +to set the duration of the hold stage.

Adding a Sustain Stage

The Hostage module is designed specifically +to create hold and sustain stages.

A sustain stage sustains a constant envelope voltage -as long as the sustain gate is up.

-

With a sustain stage, +as long as the sustain gate is up.

With a sustain stage, you can generate an Attack-Decay-Sustain-Release -Envelope.

-

The wiring for a sustain stage +Envelope.

The wiring for a sustain stage differs from the usual scheme. -Note the bold text below.

-

To generate a sustain stage with Hostage:

-
    -
  • Wire it into the chain of modules -in the position where you want the the sustain stage.
  • -
  • Set its mode to SUSTAIN.
  • -
  • Connect its GATE input +Note the bold text below.

    To generate a sustain stage with Hostage:

    • Wire it into the chain of modules +in the position where you want the the sustain stage.
    • Set its mode to SUSTAIN.
    • Connect its GATE input to the same gate source -that triggers the envelope.
    • -
    -

    Hostage sustains the voltage +that triggers the envelope.

Hostage sustains the voltage at the level where the previous stage ended -as long as the gate remains up.

-

Making Envelopes Retriggerable

-

Each multi-stage envelope shown in +as long as the gate remains up.

Making Envelopes Retriggerable

Each multi-stage envelope shown in Generating Multi-Stage Envelopes is retriggerable. If a trigger arrives while an envelope is in progress, the new trigger interrupts the in-progress envelope -and begins a new one.

-

The general rule of retriggering for +and begins a new one.

The general rule of retriggering for Stage, Booster Stage, Hostage, and Upstage -modules is:

-
-

Unless you +modules is:

Unless you take steps to suppress retriggers while an envelope is in progress, -the envelope is retriggerable.

-
-

For example, -here is a retriggerable ADHR envelope:

-Retriggerable Envelope -

The cyan scope trace shows the envelope. -The magenta trace shows the incoming triggers.

-

Notice that when a new trigger arrives +the envelope is retriggerable.

For example, +here is a retriggerable ADHR envelope:

Retriggerable Envelope

The cyan scope trace shows the envelope. +The magenta trace shows the incoming triggers.

Notice that when a new trigger arrives while the release stage is still in progress, the trigger interrupts the release stage -and starts a new envelope.

-

Making Envelopes Uninterruptible

-

If you want to prevent incoming triggers -from interrupting in-progress envelopes:

-
    -
  • Insert an Upstage at the front of the chain.
  • -
  • Rewire the trigger source +and starts a new envelope.

    Making Envelopes Uninterruptible

    If you want to prevent incoming triggers +from interrupting in-progress envelopes:

    • Insert an Upstage at the front of the chain.
    • Rewire the trigger source so that the trigger signal passes through Upstage -rather than going directly to the first stage.
    • -
    • Connect Upstage’s WAIT input -to the final stage’s ACTIVE output.
    • -
    -

    For example, -here is an uninterruptible ADHR envelope:

    -Uninterruptible Envelope -

    The cyan scope trace shows the envelope. +rather than going directly to the first stage.

  • Connect Upstage’s WAIT input +to the final stage’s ACTIVE output.

For example, +here is an uninterruptible ADHR envelope:

Uninterruptible Envelope

The cyan scope trace shows the envelope. The magenta trace shows multiple triggers -arriving during each iteration of the envelope.

-

With this configuration, +arriving during each iteration of the envelope.

With this configuration, whenever an envelope is in progress, the final stage’s ACTIVE signal tells Upstage to suppress incoming triggers. When the envelope finishes, -Upstage resumes forwarding incoming triggers to the first stage.

-

Looping Envelopes

-

To generate a looping envelope, -we need to

-
    -
  • Manually trigger the first envelope
  • -
  • Configure the final stage +Upstage resumes forwarding incoming triggers to the first stage.

    Looping Envelopes

    To generate a looping envelope, +we need to

    • Manually trigger the first envelope
    • Configure the final stage to retrigger the envelope -when it finishes
    • -
    -

    And we might want a way to stop or retrigger a looping envelope.

    -

    Upstage and Booster Stage -offer ways to control looping envelopes.

    -

    Controlling Loops With Upstage

    -
      -
    • Configure a non-looping envelope in the usual way.
    • -
    • Add an Upstage before the first stage.
    • -
    • Connect the final stage’s EOC output to Upstage’s TRIG input.
    • -
    • Connect Upstage’s TRIG output to the first stage’s TRIG input.
    • -
    -

    Here is a looping ADHR envelope using Upstage:

    -Looping with Upstage -

    You can use Upstage’s buttons -to start, stop, and retrigger the loop.

    -
      -
    • To start the loop: -Press the TRIG button.
    • -
    • To retrigger the loop: +when it finishes

    And we might want a way to stop or retrigger a looping envelope.

    Upstage and Booster Stage +offer ways to control looping envelopes.

    Controlling Loops With Upstage

    • Configure a non-looping envelope in the usual way.
    • Add an Upstage before the first stage.
    • Connect the final stage’s EOC output to Upstage’s TRIG input.
    • Connect Upstage’s TRIG output to the first stage’s TRIG input.

    Here is a looping ADHR envelope using Upstage:

    Looping with Upstage

    You can use Upstage’s buttons +to start, stop, and retrigger the loop.

    • To start the loop: +Press the TRIG button.
    • To retrigger the loop: Press the TRIG button -while the envelope is running.
    • -
    • To stop the loop: +while the envelope is running.
    • To stop the loop: Press the WAIT button and hold it -until the final stage finishes.
    • -
    -

    Weird Fact: +until the final stage finishes.

Weird Fact: You an also stop the loop by pressing the TRIG button (causing the loop to restart) -and holding it until the final stage finishes.

-

Controlling Loops With Booster Stage

-
    -
  • Configure a non-looping envelope in the usual way, -using a Booster Stage as the first stage.
  • -
  • Connect the final stage’s EOC output to Booster Stage’s TRIG input.
  • -
-

Here is a looping ADHR envelope using Booster Stage:

-Looping with Booster Stage -

You can use Booster Stage’s buttons -to start, stop, and retrigger the loop.

-
    -
  • To start the loop: -Press the TRIG button.
  • -
  • To retrigger the loop: +and holding it until the final stage finishes.

    Controlling Loops With Booster Stage

    • Configure a non-looping envelope in the usual way, +using a Booster Stage as the first stage.
    • Connect the final stage’s EOC output to Booster Stage’s TRIG input.

    Here is a looping ADHR envelope using Booster Stage:

    Looping with Booster Stage

    You can use Booster Stage’s buttons +to start, stop, and retrigger the loop.

    • To start the loop: +Press the TRIG button.
    • To retrigger the loop: Press the TRIG button -while the envelope is running.
    • -
    • To stop the loop: +while the envelope is running.
    • To stop the loop: Press and hold any Booster Stage button -until the loop stops.
    • -
    -

    I leave it as an exercise for the reader +until the loop stops.

I leave it as an exercise for the reader to discover when and at what voltage -each button stops the envelope.

-

If you want a gentler, more controlled stop, +each button stops the envelope.

If you want a gentler, more controlled stop, use Upstage and its WAIT button -to control the loop.

-

Variations

-
    -
  • For additional versatility, +to control the loop.

    Variations

    • For additional versatility, replace any Stage module with a -Booster Stage.
    • -
    • To start each envelope at a level other than 0V, +Booster Stage.
    • To start each envelope at a level other than 0V, connect an Upstage -or other voltage source.
    • -
    • To start each envelope +or other voltage source.
    • To start each envelope at the level where the previous one ended, connect the the final stage’s OUT output -to the first stage’s IN input.
    • -
    • Follow Artur Karlov’s lead and -make a sick kick.
    • -
    • Generate audible waveforms +to the first stage’s IN input.
    • Follow Artur Karlov’s lead and +make a sick kick.
    • Generate audible waveforms by configuring a loop -with very short durations.
    • -
    • Generate an envelope with seventeen stages.
    • -
    • Configure a stage to trigger two or more successor stages.
    • -
    • Vary something.
    • -
    • Vary something else.
    • -
    -
-
-
-

© 2017–2022 Dale H. Emery

-
- - \ No newline at end of file +with very short durations.
  • Generate an envelope with seventeen stages.
  • Configure a stage to trigger two or more successor stages.
  • Vary something.
  • Vary something else.
  • © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/index.html b/index.html index fa6fc1fd..3bd05340 100644 --- a/index.html +++ b/index.html @@ -1,139 +1,70 @@ - - - - - - - -DHE Modules - - - - - -
    -
    -

    DHE Modules

    -
    -

    The DHE-Modules suite includes +DHE Modules +

    DHE Modules

    The DHE-Modules suite includes sequencers, envelope generators, logic modules, low frequency oscillators, utilities. and -waveshapers.

    -

    Sequencers

    -

    -

    -

    Sequencizer +waveshapers.

    Sequencers

    +

    Sequencizer is a sequencer that offers flexible, precise control over the individual steps -and the overall sequence.

    -

    Scannibal +and the overall sequence.

    Scannibal is a scanned sequencer that offers flexible, precise control -over the individual steps.

    -

    Curve Sequencer -is an earlier version of Sequencizer.

    -

    Sequencizer, Scannibal, and Curve Sequencer -each come in three sizes: 4 steps, 8 steps, and 16 steps.

    -

    Envelope Generators

    -

    +over the individual steps.

    Curve Sequencer +is an earlier version of Sequencizer.

    Sequencizer, Scannibal, and Curve Sequencer +each come in three sizes: 4 steps, 8 steps, and 16 steps.

    Envelope Generators

    -

    -

    Stage +

    Stage generates a single envelope stage. Combine Stages and other modules to generate complex envelopes -with any number of stages.

    -

    Booster Stage +with any number of stages.

    Booster Stage enhances Stage’s functionality, adding CV inputs, sigmoid curves, buttons to inject triggers and other control signals, -and more.

    -

    Hostage -generates a hold or sustain envelope stage.

    -

    Upstage +and more.

    Hostage +generates a hold or sustain envelope stage.

    Upstage adds special-purpose envelope controls to inject triggers, suppress retriggers, set an envelope’s starting voltage, -and more.

    -

    Logic

    -

    +and more.

    Logic

    -

    -

    Fuzzy Logic H +

    Fuzzy Logic H combines signals by applying fuzzy logic operators -based on hyperbolic paraboloids.

    -

    Fuzzy Logic Z +based on hyperbolic paraboloids.

    Fuzzy Logic Z combines signals by applying fuzzy logic operators -defined by Lofti Zadeh.

    -

    Gator +defined by Lofti Zadeh.

    Gator computes eight common logic functions -for up to 16 inputs.

    -

    Truth +for up to 16 inputs.

    Truth is a customizable truth table -with 2, 3, or 4 inputs.

    -

    Low Frequency Oscillators

    -

    -

    -

    Blossom +with 2, 3, or 4 inputs.

    Low Frequency Oscillators

    +

    Blossom traces a point around the edge of a circle -as the radius of the circle varies.

    -

    Xycloid +as the radius of the circle varies.

    Xycloid traces a fixed point on the edge a circle rolling along the inside or outside -of another circle.

    -

    Each draws a pleasing, two-dimensional shape, -generating a pair of complex, evolving, pulsing LFO signals.

    -

    Utilities

    -

    +of another circle.

    Each draws a pleasing, two-dimensional shape, +generating a pair of complex, evolving, pulsing LFO signals.

    Utilities

    -

    -

    Buttons: -8 toggle buttons with momentary negation.

    -

    Cubic -offsets, scales, squares, and cubes its input signal.

    -

    Func -is a knob with a selectable range to offset or scale its input signal.

    -

    Func 6 -is a chain of knobs with selectable ranges to offset and scale input signals.

    -

    Ranger -is a modulatable knob with an adjustable, modulatable range.

    -

    Tapers -is a pair of modulatable knobs with adjustable, modulatable tapers.

    -

    Waveshapers

    -

    -

    Swave -is a waveshaper with a unique sigmoid transfer function.

    -

    See Also

    - -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +

    Buttons: +8 toggle buttons with momentary negation.

    Cubic +offsets, scales, squares, and cubes its input signal.

    Func +is a knob with a selectable range to offset or scale its input signal.

    Func 6 +is a chain of knobs with selectable ranges to offset and scale input signals.

    Ranger +is a modulatable knob with an adjustable, modulatable range.

    Tapers +is a pair of modulatable knobs with adjustable, modulatable tapers.

    Waveshapers

    Swave +is a waveshaper with a unique sigmoid transfer function.

    See Also

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/blossom/index.html b/modules/blossom/index.html index e79ee33a..2ba56ea5 100644 --- a/modules/blossom/index.html +++ b/modules/blossom/index.html @@ -1,100 +1,37 @@ - - - - - - -The Blossom Module - - - - - -
    -
    -

    The Blossom Module

    -
    -
    The Blossom Faceplate -

    Blossom +The Blossom Module +

    The Blossom Module

    The Blossom Faceplate

    Blossom traces a point around the edge of a circle -as the radius of the circle varies.

    -

    The resulting two-dimensional shape -generates a pair of complex, evolving, pulsing LFO signals.

    -

    Controls

    -
      -
    • -

      SPEED: +as the radius of the circle varies.

      The resulting two-dimensional shape +generates a pair of complex, evolving, pulsing LFO signals.

      Controls

      • SPEED: The speed at which the point -traces around the circle.

        -
      • -
      • -

        RATIO: +traces around the circle.

      • RATIO: The number of times the radius bounces in and out -on each rotation.

        -
      • -
      • -

        FREE / LOCK: +on each rotation.

      • FREE / LOCK: Determines whether to round the BOUNCE value -to the nearest integer.

        -

        LOCK rounds the RATIO +to the nearest integer.

        LOCK rounds the RATIO to the nearest integer, causing Blossoms’s pattern of accents -to repeat on every rotation.

        -

        FREE allows non-integer BOUNCE values, +to repeat on every rotation.

        FREE allows non-integer BOUNCE values, which lets the accents -vary from one rotation to the next.

        -
      • -
      • -

        DEPTH: +vary from one rotation to the next.

      • DEPTH: How far the radius bounces from the outer edge of the shape. This determines the dominance of the bounce effect -in the output signals.

        -
      • -
      • -

        PHASE: -Offsets the phase of the bounce cycle.

        -

        This has the effect +in the output signals.

      • PHASE: +Offsets the phase of the bounce cycle.

        This has the effect of shifting where the accents -occur on each rotation.

        -
      • -
      -

      Ports

      -
        -
      • -

        X OUT and Y OUT: -The output signals.

        -

        The polarity switch (UNI / BI) +occur on each rotation.

      Ports

      • X OUT and Y OUT: +The output signals.

        The polarity switch (UNI / BI) selects the voltage range of the associated output signal. 0 to 10V (UNI) -or -5 to 5V (BI).

        -

        The GAIN knob applies gain (from 0 to 2) -to the signal.

        -

        Blossom selects the range before applying the gain.

        -
      • -
      • -

        CV: +or -5 to 5V (BI).

        The GAIN knob applies gain (from 0 to 2) +to the signal.

        Blossom selects the range before applying the gain.

      • CV: A control voltage signal -to modulate the associated parameter. Some CV signals have attenuverters.

        -
      • -
      -

      Plotting Blossom

      -

      When plotted on a two-dimensional graph, +to modulate the associated parameter. Some CV signals have attenuverters.

    Plotting Blossom

    When plotted on a two-dimensional graph, Blossom’s X and Y signals -produce a visually pleasing, flower-like shape.

    -

    To view the shape that Blossom produces, connect its X and Y outputs to a +produce a visually pleasing, flower-like shape.

    To view the shape that Blossom produces, connect its X and Y outputs to a Scope’s X and Y inputs. Set the scope to X x Y mode. Note that the -scope’s X/Y mode can also be interesting.

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +scope’s X/Y mode can also be interesting.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/booster-stage/index.html b/modules/booster-stage/index.html index 1952682d..a6cca72c 100644 --- a/modules/booster-stage/index.html +++ b/modules/booster-stage/index.html @@ -1,217 +1,87 @@ - - - - - - -The Booster Stage Module - - - - - -
    -
    -

    The Booster Stage Module

    -
    -
    The Booster Stage Faceplate -

    Generates a single envelope stage.

    -

    Booster Stage features all of +The Booster Stage Module +

    The Booster Stage Module

    The Booster Stage Faceplate

    Generates a single envelope stage.

    Booster Stage features all of Stage’s functionality, enhanced by CV inputs, S curves, buttons to inject triggers and other control signals, -and more.

    -

    Combine +and more.

    Combine Stage, Booster Stage, Hostage, and Upstage modules to generate complex envelopes -with any number of stages.

    -

    See also:

    - -

    Controls

    -
      -
    • -

      LEVEL: -The voltage level at which each generated envelope stage ends.

      -

      The polarity switch (UNI / BI) +with any number of stages.

      See also:

      Controls

      • LEVEL: +The voltage level at which each generated envelope stage ends.

        The polarity switch (UNI / BI) selects the range of the LEVEL knob: Either unipolar control voltage (0 to 10V) -or bipolar control voltage (-5 to 5V).

        -
      • -
      • -

        CURVE: +or bipolar control voltage (-5 to 5V).

      • CURVE: The curvature of the envelope stage. The shape switch (S / J) selects the shape -of the envelope stage.

        -
      • -
      • -

        DURATION: -The duration of the envelope stage.

        -

        The duration switch (1 / 10 / 100) +of the envelope stage.

      • DURATION: +The duration of the envelope stage.

        The duration switch (1 / 10 / 100) sets the range of the DURATION knob. The switch labels indicate the maximum duration (seconds) for each range. -For each range:

        -
          -
        • The minimum duration +For each range:

          • The minimum duration is 1/1000 of the maximum: -1ms, 10ms, or 100ms.
          • -
          • Centering the knob gives a duration of +1ms, 10ms, or 100ms.
          • Centering the knob gives a duration of 1/10 of the maximum: -100ms, 1s, or 10s.
          • -
          -
        • -
        • -

          Buttons: +100ms, 1s, or 10s.

      • Buttons: The DEFER and TRIG inputs and the ACTIVE and EOC outputs each have an associated “manual override” button. While pressed, each button injects 10V into the associated signal -(unless the signal exceeds 10V).

        -
      • -
      -

      Ports

      -
        -
      • -

        DEFER: +(unless the signal exceeds 10V).

      Ports

      • DEFER: When the DEFER gate signal is high, Booster Stage defers to its IN signal, forwarding the IN signal -directly to the OUT output.

        -

        When it begins deferring, +directly to the OUT output.

        When it begins deferring, Booster Stage abandons any envelope stage -it may have been generating.

        -
      • -
      • -

        TRIG: +it may have been generating.

      • TRIG: When triggered, Booster Stage generates an envelope stage, -starting at the voltage sampled from the IN signal.

        -

        While Booster Stage is deferring, -it ignores incoming triggers.

        -
      • -
      • -

        IN: +starting at the voltage sampled from the IN signal.

        While Booster Stage is deferring, +it ignores incoming triggers.

      • IN: When Booster Stage generates an envelope stage, the stage starts -at the voltage sampled from the IN signal.

        -

        While Booster Stage is deferring, -it forwards the IN signal directly to its OUT output.

        -
      • -
      • -

        ACTIVE: +at the voltage sampled from the IN signal.

        While Booster Stage is deferring, +it forwards the IN signal directly to its OUT output.

      • ACTIVE: A 10V gate signal indicating that Booster Stage is either actively generating an envelope stage -or deferring to its IN signal.

        -
      • -
      • -

        EOC: +or deferring to its IN signal.

      • EOC: When Booster Stage completes an envelope stage, it emits a 1 millisecond 10V pulse -at its EOC output.

        -
      • -
      • -

        OUT: +at its EOC output.

      • OUT: The generated envelope stage signal -or (when deferring) the IN signal.

        -
      • -
      • -

        CV: +or (when deferring) the IN signal.

      • CV: A control voltage -signal to modulate the associated parameter.

        -
      • -
      -

      Notes

      -
        -
      • -

        While an envelope stage is in progress, +signal to modulate the associated parameter.

      Notes

      • While an envelope stage is in progress, all of the knobs are “live.” If you adjust a knob, Booster Stage applies the new value -to the remainder of the stage.

        -
      • -
      • -

        Before Booster Stage first becomes active +to the remainder of the stage.

      • Before Booster Stage first becomes active (by either a trigger or a DEFER gate), it “tracks” its input by sending its IN voltage to its OUT port. Stage also enters this mode -when its DEFER gate falls (unless the TRIG port is high).

        -
      • -
      • -

        After Booster Stage completes an envelope stage, +when its DEFER gate falls (unless the TRIG port is high).

      • After Booster Stage completes an envelope stage, it “tracks” the LEVEL knob -by sending the LEVEL voltage to the OUT port.

        -
      • -
      -

      State Model

      -

      Stage State Model

      -

      TrackingInput Mode

      -

      Booster Stage starts in TrackingInput mode. -While Booster Stage is TrackingInput:

      -
        -
      • it is inactive
      • -
      • it “tracks” its input by sending its IN voltage to its OUT port
      • -
      • if DEFER rises, Booster Stage enters Deferring mode
      • -
      • if TRIG rises, Booster Stage enters Generating mode
      • -
      -

      Deferring Mode

      -

      Whatever mode Booster Stage is in, +by sending the LEVEL voltage to the OUT port.

    State Model

    Stage State Model

    TrackingInput Mode

    Booster Stage starts in TrackingInput mode. +While Booster Stage is TrackingInput:

    • it is inactive
    • it “tracks” its input by sending its IN voltage to its OUT port
    • if DEFER rises, Booster Stage enters Deferring mode
    • if TRIG rises, Booster Stage enters Generating mode

    Deferring Mode

    Whatever mode Booster Stage is in, whenever its DEFER gate rises, it enters Deferring mode. -While Booster Stage is _Deferring:

    -
      -
    • it is active
    • -
    • it sends its IN voltage to its OUT port
    • -
    • it ignores its TRIG port
    • -
    -

    When the DEFER gate falls, -Booster Stage resumes TrackingInput.

    -

    Generating Mode

    -

    If the TRIG port rises +While Booster Stage is _Deferring:

    • it is active
    • it sends its IN voltage to its OUT port
    • it ignores its TRIG port

    When the DEFER gate falls, +Booster Stage resumes TrackingInput.

    Generating Mode

    If the TRIG port rises while Booster Stage is not Deferring, it begins Generating a stage. -While Booster Stage is Generating:

    -
      -
    • it is active
    • -
    • it advances its phase and generates the appropriate voltage at its OUT port
    • -
    • if the stage completes, +While Booster Stage is Generating:

      • it is active
      • it advances its phase and generates the appropriate voltage at its OUT port
      • if the stage completes, Booster Stage initiates a short pulse on its EOC port -and enters TrackingLevel mode
      • -
      • if DEFER rises, Booster Stage enters Deferring mode
      • -
      • if TRIG rises, Booster Stage abandons the stage it is generating and begins a new one
      • -
      -

      TrackingLevel Mode

      -

      While Booster Stage is TrackingLevel:

      -
        -
      • it is inactive
      • -
      • it sends the voltage of its LEVEL knob to its OUT port
      • -
      • if DEFER rises, Booster Stage enters Deferring mode
      • -
      • if TRIG rises, Booster Stage enters Generating mode
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +and enters TrackingLevel mode
  • if DEFER rises, Booster Stage enters Deferring mode
  • if TRIG rises, Booster Stage abandons the stage it is generating and begins a new one
  • TrackingLevel Mode

    While Booster Stage is TrackingLevel:

    • it is inactive
    • it sends the voltage of its LEVEL knob to its OUT port
    • if DEFER rises, Booster Stage enters Deferring mode
    • if TRIG rises, Booster Stage enters Generating mode

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/buttons/index.html b/modules/buttons/index.html index b6bb7599..516c25ce 100644 --- a/modules/buttons/index.html +++ b/modules/buttons/index.html @@ -1,47 +1,4 @@ - - - - - - -The Buttons Module - - - - - -
    -
    -

    The Buttons Module

    -
    -
    The Buttons Faceplate -

    8 toggle buttons with momentary negation.

    -

    Controls

    -
      -
    • -

      Toggle Button (A–H): -Toggles between true (10V) and false (0V).

      -
    • -
    • -

      Negate Button (¬): -Negates the truth value while pressed.

      -
    • -
    -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    -

     

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +The Buttons Module +

    The Buttons Module

    The Buttons Faceplate

    8 toggle buttons with momentary negation.

    Controls

    • Toggle Button (A–H): +Toggles between true (10V) and false (0V).

    • Negate Button (¬): +Negates the truth value while pressed.

     

     

     

     

     

     

     

     

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/cubic/index.html b/modules/cubic/index.html index e69dce9a..5ddc2929 100644 --- a/modules/cubic/index.html +++ b/modules/cubic/index.html @@ -1,135 +1,64 @@ - - - - - - -The Cubic Module - - - - - -
    -
    -

    The Cubic Module

    -
    -
    The Cubic Faceplate -

    Transforms its input signal by offsetting, scaling, squaring, and cubing it.

    -

    Cubic calculates the function:

    -
      -
    • y = ax3 + bx2 + cx1 + dx0
    • -
    -

    which +The Cubic Module +

    The Cubic Module

    The Cubic Faceplate

    Transforms its input signal by offsetting, scaling, squaring, and cubing it.

    Cubic calculates the function:

    • y = ax3 + bx2 + cx1 + dx0

    which (because x1 = x and x0 = 1) -can be written as:

    -
      -
    • y = ax3 + bx2 + cx + d
    • -
    -

    Take care when applying Cubic to an audio signal.

    -

    WARNING: +can be written as:

    • y = ax3 + bx2 + cx + d

    Take care when applying Cubic to an audio signal.

    WARNING: Cubic can emit voltages far outside the safe audio range (-5 to 5V). -See the usage guide for details.

    -

    WARNING: +See the usage guide for details.

    WARNING: The x2 and x0 knobs can generate a very large DC bias. -See the usage guide for details.

    -

    Controls

    -
      -
    • -

      IN: +See the usage guide for details.

      Controls

      • IN: The gain to apply to the IN signal to produce the value of x for the equation. -The range is 0 to 2.

        -
      • -
      • -

        x3: +The range is 0 to 2.

      • x3: The amount of x cubed to add to y — the a coefficient for the ax3 term of the equation. -The range is -2 to 2.

        -
      • -
      • -

        x2: +The range is -2 to 2.

      • x2: The amount of x squared to add to y — the b coefficient for the bx2 term of the equation. -The range is -2 to 2.

        -
      • -
      • -

        x1: +The range is -2 to 2.

      • x1: The amount of x to add to y — the c coefficient for the cx1 term of the equation. This acts as a attenuverter -with a range of -2 to 2.

        -
      • -
      • -

        x0: +with a range of -2 to 2.

      • x0: The constant to add to y — the d coefficient for the dx0 term of the equation. This acts as a DC offset -with a range of -10 to 10V.

        -
      • -
      • -

        OUT: +with a range of -10 to 10V.

      • OUT: The gain to apply to y before sending it to the OUT port. -The range is 0 to 2.

        -
      • -
      -

      Ports

      -
        -
      • -

        IN: -The input signal to transform.

        -
      • -
      • -

        OUT: -The transformed signal.

        -
      • -
      • -

        CV: +The range is 0 to 2.

      Ports

      • IN: +The input signal to transform.

      • OUT: +The transformed signal.

      • CV: A control voltage signal -to modulate the associated parameter.

        -
      • -
      -

      Using Cubic

      -
        -
      • Cubic excels at transforming a simple modulation signal, +to modulate the associated parameter.

      Using Cubic

      • Cubic excels at transforming a simple modulation signal, such as a sawtooth or triangle wave, -into something more interesting.
      • -
      • To generate a constant voltage, +into something more interesting.
      • To generate a constant voltage, adjust x0 and leave all other controls at 0. The range is -10V to 10V (which you can amplify -using the OUT gain).
      • -
      • To use Cubic as an attenuverter, +using the OUT gain).
      • To use Cubic as an attenuverter, adjust x1 and leave all other controls at 0. The range is -2 to 2 (which you can further amplify -using the OUT gain).
      • -
      • By default, +using the OUT gain).
      • By default, all of Cubic’s controls are set to 0. While this makes the default patch essentially useless, it does make it easier -to set any control to 0.
      • -
      • WARNING: +to set any control to 0.
      • WARNING: Cubic can generate voltages far outside the safe audio range of -5 to 5V. If you apply Cubic to an audio signal, adjust the IN and OUT gain to keep the output signal -in the safe audio range.
      • -
      • WARNING: +in the safe audio range.
      • WARNING: The x2 and x0 controls can generate a signficant DC bias. @@ -143,12 +72,4 @@

        Using Cubic

        can each, to some extent, compensate for the DC bias -generated by the other.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +generated by the other.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/curve-sequencer/conversion-guide/index.html b/modules/curve-sequencer/conversion-guide/index.html index 86c05ea5..bb2141a8 100644 --- a/modules/curve-sequencer/conversion-guide/index.html +++ b/modules/curve-sequencer/conversion-guide/index.html @@ -1,104 +1,11 @@ - - - - - - -How to Convert Curve Sequencer Presets to Sequencizer Presets - - - - - -
    -
    -

    How to Convert Curve Sequencer Presets to Sequencizer Presets

    -
    -

    The Curve Sequencer modules are deprecated. +How to Convert Curve Sequencer Presets to Sequencizer Presets +

    How to Convert Curve Sequencer Presets to Sequencizer Presets

    The Curve Sequencer modules are deprecated. This guide explains how to convert a Curve Sequencer preset -to use a Sequencizer instead.

    -

    The key differences between Curve Sequencer and Sequencizer:

    -
      -
    • Curve Sequencer uses “generate modes” to specify the starting and ending voltages for each step. Sequencizer uses two flexible voltage sources called “anchors,” one defining the step’s starting voltage and the other defining the ending voltage.
    • -
    • Curve sequencer uses “advance modes” to define the conditions under which the sequence exits the current step and advances to the next. Sequencizer uses a flexible combination of trigger, interrupt, and sustain controls to determine when the sequence advances.
    • -
    -

    See:

    - -

    Converting Generate Modes

    -

    In Curve Sequencer, the generate mode determines what kind of curve the step produces. In Sequencizer, the curve is determined by the START and END anchors, each of which has a source (LEVEL, A, B, C, or OUT) and a mode (SMPL or TRACK).

    -

    Generate Mode: CURVE

    -

    In Curve Sequencer, curve mode generates a curve starting from whatever voltage the sequencer was emitting when the step started, and prograssing to the voltage set by the LEVEL knob.

    -

    To achieve the same effect in Sequencizer: -Curve Mode

    -
      -
    • Set the START anchor to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and progresses from the sampled voltage.
    • -
    • Set the END anchor to TRACK LEVEL, and set the end LEVEL knob to the desired voltage. The step progresses to the voltage set by the LEVEL knob.
    • -
    -

    Generate Mode: HOLD

    -

    In Curve Sequencer, hold mode emits whatever voltage the sequencer was emitting when the step started.

    -

    To achieve the same effect in Sequencizer: -Hold Mode

    -
      -
    • Set the START and END anchors to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and emits the sampled voltage throughout.
    • -
    • Turn INT Off. The step ignores the GATE input, and continues for the step’s full duration.
    • -
    • Turn SUST Off. When the current step’s duration elapses, the sequence automatically advances to the next step.
    • -
    -

    Generate Mode: SUST

    -

    In Curve Sequencer, sust mode emits whatever voltage the sequencer was emitting when the step started.

    -

    To achieve the same effect in Sequencizer: -Sustain Mode

    -
      -
    • Set TRIG to the desired gate condition. When the GATE input matches the condition, the step generates an internal trigger. For a traditional sustain mode, set this to LOW. But you can choose to advance on another GATE condition.
    • -
    • Turn INT On. When the step generates an internal trigger, Sequencizer interrupts the step and advances to the next.
    • -
    • Turn SUST On. When the current step’s duration elapses, the step continues to emit the sampled voltage until interrupted.
    • -
    • Set the START and END anchors to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and emits the sampled voltage throughout.
    • -
    -

    Generate Mode: INPUT

    -

    In Curve Sequencer, input mode emits the voltage at the IN port.

    -

    To achieve the same effect in Sequencizer: -Input Mode

    -
      -
    • -

      Set the START and END anchors to TRACK A. The step emits the voltage at the A input port.

      -

      You can also use the B or C input ports. Just set both the START and END anchors to TRACK the same input.

      -
    • -
    -

    Generate Mode: CHASE

    -

    In Curve Sequencer, chase mode “chases” the input by progressing from the sequence’s current voltage to the voltage at the IN port.

    -

    To achieve the same effect in Sequencizer: -Chase Mode

    -
      -
    • Set the START anchor to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and progresses from the sampled voltage.
    • -
    • Set the END anchor to TRACK A. The step progresses toward the voltage at the A input port. You can also use the B or C input ports.
    • -
    -

    Converting Advance Modes

    -

    In Curve Sequencer, each step’s advance mode determines when the sequence advances from the current step to the next. In Sequencizer, advancement is controlled by the TRIG, INT, and SUST controls.

    -

    Advance Mode: TIME

    -

    In Curve Sequencer, time mode causes the step to proceed for its full duration, regardless of what happens at the GATE input. The sequence then automatically advances to the next step.

    -

    To achieve the same effect in Sequencizer: -Time Mode

    -
      -
    • Turn INT Off. The step ignores the GATE input, and continues for the step’s full duration.
    • -
    • Turn SUST Off. When the step’s duration elapses, the sequence automatically advances to the next step.
    • -
    -

    Advance Mode: RISE, FALL, EDGE, HIGH, and LOW

    -

    In Curve Sequencer, when the GATE condition matches the selected advance mode, the current step is interrupted, and the sequence advances to the next step.

    -

    To achieve the same effect in Sequencizer: -Interrupt Mode

    -
      -
    • Set TRIG to the desired condition. When the GATE input matches the condition, the step generates an internal trigger.
    • -
    • Turn INT On. When the current step generates an internal trigger, Sequencizer interrupts the step and advances to the next.
    • -
    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +to use a Sequencizer instead.

    The key differences between Curve Sequencer and Sequencizer:

    • Curve Sequencer uses “generate modes” to specify the starting and ending voltages for each step. Sequencizer uses two flexible voltage sources called “anchors,” one defining the step’s starting voltage and the other defining the ending voltage.
    • Curve sequencer uses “advance modes” to define the conditions under which the sequence exits the current step and advances to the next. Sequencizer uses a flexible combination of trigger, interrupt, and sustain controls to determine when the sequence advances.

    See:

    Converting Generate Modes

    In Curve Sequencer, the generate mode determines what kind of curve the step produces. In Sequencizer, the curve is determined by the START and END anchors, each of which has a source (LEVEL, A, B, C, or OUT) and a mode (SMPL or TRACK).

    Generate Mode: CURVE

    In Curve Sequencer, curve mode generates a curve starting from whatever voltage the sequencer was emitting when the step started, and prograssing to the voltage set by the LEVEL knob.

    To achieve the same effect in Sequencizer: +Curve Mode

    • Set the START anchor to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and progresses from the sampled voltage.
    • Set the END anchor to TRACK LEVEL, and set the end LEVEL knob to the desired voltage. The step progresses to the voltage set by the LEVEL knob.

    Generate Mode: HOLD

    In Curve Sequencer, hold mode emits whatever voltage the sequencer was emitting when the step started.

    To achieve the same effect in Sequencizer: +Hold Mode

    • Set the START and END anchors to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and emits the sampled voltage throughout.
    • Turn INT Off. The step ignores the GATE input, and continues for the step’s full duration.
    • Turn SUST Off. When the current step’s duration elapses, the sequence automatically advances to the next step.

    Generate Mode: SUST

    In Curve Sequencer, sust mode emits whatever voltage the sequencer was emitting when the step started.

    To achieve the same effect in Sequencizer: +Sustain Mode

    • Set TRIG to the desired gate condition. When the GATE input matches the condition, the step generates an internal trigger. For a traditional sustain mode, set this to LOW. But you can choose to advance on another GATE condition.
    • Turn INT On. When the step generates an internal trigger, Sequencizer interrupts the step and advances to the next.
    • Turn SUST On. When the current step’s duration elapses, the step continues to emit the sampled voltage until interrupted.
    • Set the START and END anchors to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and emits the sampled voltage throughout.

    Generate Mode: INPUT

    In Curve Sequencer, input mode emits the voltage at the IN port.

    To achieve the same effect in Sequencizer: +Input Mode

    • Set the START and END anchors to TRACK A. The step emits the voltage at the A input port.

      You can also use the B or C input ports. Just set both the START and END anchors to TRACK the same input.

    Generate Mode: CHASE

    In Curve Sequencer, chase mode “chases” the input by progressing from the sequence’s current voltage to the voltage at the IN port.

    To achieve the same effect in Sequencizer: +Chase Mode

    • Set the START anchor to SMPL OUT. When the step starts, it samples the voltage at the OUT port, and progresses from the sampled voltage.
    • Set the END anchor to TRACK A. The step progresses toward the voltage at the A input port. You can also use the B or C input ports.

    Converting Advance Modes

    In Curve Sequencer, each step’s advance mode determines when the sequence advances from the current step to the next. In Sequencizer, advancement is controlled by the TRIG, INT, and SUST controls.

    Advance Mode: TIME

    In Curve Sequencer, time mode causes the step to proceed for its full duration, regardless of what happens at the GATE input. The sequence then automatically advances to the next step.

    To achieve the same effect in Sequencizer: +Time Mode

    • Turn INT Off. The step ignores the GATE input, and continues for the step’s full duration.
    • Turn SUST Off. When the step’s duration elapses, the sequence automatically advances to the next step.

    Advance Mode: RISE, FALL, EDGE, HIGH, and LOW

    In Curve Sequencer, when the GATE condition matches the selected advance mode, the current step is interrupted, and the sequence advances to the next step.

    To achieve the same effect in Sequencizer: +Interrupt Mode

    • Set TRIG to the desired condition. When the GATE input matches the condition, the step generates an internal trigger.
    • Turn INT On. When the current step generates an internal trigger, Sequencizer interrupts the step and advances to the next.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/curve-sequencer/index.html b/modules/curve-sequencer/index.html index 5a040e89..18495a88 100644 --- a/modules/curve-sequencer/index.html +++ b/modules/curve-sequencer/index.html @@ -1,104 +1,34 @@ - - - - - - -The Curve Sequencer Modules - - - - - -
    -
    -

    The Curve Sequencer Modules

    -
    -
    The Curve Sequencer 4 Faceplate -

    Generates a sequence of curves.

    -

    DHE Modules includes three Curve Sequencer modules:

    -
      -
    • Curve Sequencer 4 (shown).
    • -
    • Curve Sequencer 8.
    • -
    • Curve Sequencer 16.
    • -
    -

    The three modules operate identically, except for the number of steps.

    -

    Note: +The Curve Sequencer Modules +

    The Curve Sequencer Modules

    The Curve Sequencer 4 Faceplate

    Generates a sequence of curves.

    DHE Modules includes three Curve Sequencer modules:

    • Curve Sequencer 4 (shown).
    • Curve Sequencer 8.
    • Curve Sequencer 16.

    The three modules operate identically, except for the number of steps.

    Note: The Curve Sequencer modules are deprecated. New patches should use Sequencizer instead. -See How to Convert Curve Sequencer Presets to Sequencizer Presets.

    -

    See also:

    -
      -
    • Factory Presets -for descriptions of the presets included with the modules.
    • -
    • Usage Notes -for basic ideas about how to use these modules.
    • -
    • Details -for explanations of several non-intuitive aspects of these modules.
    • -
    • J and S Curves
    • -
    -

    Controls

    -

    Each Curve Sequencer has controls for the overall sequence -and controls for each step in the sequence.

    -

    Sequence Controls

    -
      -
    • -

      RUN: -Determines whether the sequencer is running.

      -

      If RUN falls +See How to Convert Curve Sequencer Presets to Sequencizer Presets.

      See also:

      Controls

      Each Curve Sequencer has controls for the overall sequence +and controls for each step in the sequence.

      Sequence Controls

      • RUN: +Determines whether the sequencer is running.

        If RUN falls while a sequence is in progress, the sequencer pauses the sequence. If RUN rises while a sequence is paused, -the sequencer resumes the sequence.

        -
      • -
      • -

        LOOP: +the sequencer resumes the sequence.

      • LOOP: If LOOP is on when a sequence ends, -the sequencer immediately begins a new sequence.

        -

        If LOOP is off when a sequence ends, -the sequencer becomes idle.

        -
      • -
      • -

        START and LENGTH -select the steps of the sequence.

        -

        Bracket-shaped markers next to the ACTIVITY lights -indicate the currently selected steps.

        -
      • -
      • -

        GATE: +the sequencer immediately begins a new sequence.

        If LOOP is off when a sequence ends, +the sequencer becomes idle.

      • START and LENGTH +select the steps of the sequence.

        Bracket-shaped markers next to the ACTIVITY lights +indicate the currently selected steps.

      • GATE: Controls when a sequence starts, -and may influence when the sequence advances.

        -

        If GATE rises +and may influence when the sequence advances.

        If GATE rises while the sequencer is idle, the sequencer starts the sequence, -activating the first selected, enabled step.

        -

        See the ADVANCE step controls +activating the first selected, enabled step.

        See the ADVANCE step controls for details of how an individual step -may react to GATE conditions.

        -
      • -
      • -

        RESET: +may react to GATE conditions.

      • RESET: When RESET rises, the sequencer becomes idle, -abandoning any paused or in-progress sequence.

        -

        See details -for explanations of several likely non-intuitive aspects of the RESET feature.

        -
      • -
      • -

        IN: -The input signal to the curve sequencer.

        -
      • -
      • -

        OUT: -The output signal from the curve sequencer.

        -
      • -
      -

      Step Controls

      -
        -
      • -

        ACTIVITY lights +abandoning any paused or in-progress sequence.

        See details +for explanations of several likely non-intuitive aspects of the RESET feature.

      • IN: +The input signal to the curve sequencer.

      • OUT: +The output signal from the curve sequencer.

      Step Controls

      • ACTIVITY lights indicate which step is active (if any), and how far the active step has progressed. When a step starts, its light is red. @@ -107,257 +37,140 @@

        Step Controls

        the light transitions from red to green over the step’s duration. Note that the light indicates progress, -not voltage.

        -
      • -
      • -

        MODE: -Selects what kind of envelope stage this step generates:

        -
          -
        • -

          CURVE mode +not voltage.

        • MODE: +Selects what kind of envelope stage this step generates:

          • CURVE mode generates a curve ending at the LEVEL voltage. The SHAPE, CURVE, and DURATION controls -govern the shape and duration of the curve.

            -
          • -
          • -

            HOLD mode +govern the shape and duration of the curve.

          • HOLD mode holds the OUT port at its current voltage -for the duration selected by the DURATION controls.

            -
          • -
          • -

            SUSTAIN mode +for the duration selected by the DURATION controls.

          • SUSTAIN mode sustains the OUT port at its current voltage until the GATE condition -selected by the ADVANCE stepper occurs.

            -
          • -
          • -

            INPUT mode +selected by the ADVANCE stepper occurs.

          • INPUT mode sends the IN signal to the OUT port -for the duration selected by the DURATION controls.

            -
          • -
          • -

            CHASE mode +for the duration selected by the DURATION controls.

          • CHASE mode generates a curve that progressively approaches the IN voltage. The SHAPE, CURVE, and DURATION controls -govern the shape and duration of the approach.

            -
          • -
          • -

            LEVEL mode -sends the LEVEL voltage to the OUT port.

            -
          • -
          -
        • -
        • -

          ADVANCE: +govern the shape and duration of the approach.

        • LEVEL mode +sends the LEVEL voltage to the OUT port.

      • ADVANCE: Selects the condition that triggers the sequencer -to advance from this step to the next.

        -
          -
        • -

          TIME: +to advance from this step to the next.

          • TIME: The sequencer advances to the next step when this step completes its full duration. -The state of the GATE is ignored.

            -

            Selecting this option +The state of the GATE is ignored.

            Selecting this option for a step in SUSTAIN mode -disables the step.

            -
          • -
          • -

            RISE: +disables the step.

          • RISE: If the GATE rises while this step is active, -the sequencer advances to the next step.

            -
          • -
          • -

            FALL: +the sequencer advances to the next step.

          • FALL: If the GATE falls while this step is active, -the sequencer advances to the next step.

            -
          • -
          • -

            EDGE: +the sequencer advances to the next step.

          • EDGE: If the GATE rises or falls while this step is active, -the sequencer advances to the next step.

            -
          • -
          • -

            HIGH: +the sequencer advances to the next step.

          • HIGH: If the GATE is high while this step is active, -the sequencer advances to the next step.

            -
          • -
          • -

            LOW: +the sequencer advances to the next step.

          • LOW: If the GATE is low while this step is active, -the sequencer advances to the next step.

            -
          • -
          -
        • -
        • -

          LEVEL: +the sequencer advances to the next step.

      • LEVEL: The voltage at which the curve ends. The range of each LEVEL knob is set by the common LEVEL RANGE switch -(to the right of the LEVEL knobs).

        -
      • -
      • -

        SHAPE: -Selects the shape of the curve.

        -
      • -
      • -

        CURVE: -The curvature of the curve.

        -
      • -
      • -

        DURATION: +(to the right of the LEVEL knobs).

      • SHAPE: +Selects the shape of the curve.

      • CURVE: +The curvature of the curve.

      • DURATION: The duration of the CURVE or HOLD. The range of each DURATION knob is set by the common DURATION RANGE switch -(to the right of the DURATION knobs).

        -
      • -
      • -

        ENABLED: +(to the right of the DURATION knobs).

      • ENABLED: Determines whether the sequencer can enter this step. When ENABLED is off, -the sequencer bypasses this step when advancing.

        -
      • -
      -

      Factory Presets

      -

      The Curve Sequencer 4 module -includes these factory presets:

      -
        -
      • AD: -Generates an Attack Decay envelope.
      • -
      • ADHR: -Generates an Attack Decay Hold Release envelope.
      • -
      • ADSR: -Generates an Attack Decay Sustain Release envelope.
      • -
      • AHR: -Generates an Attack Hold Release envelope.
      • -
      • ASR: -Generates an Attack Sustain Release envelope.
      • -
      • Batman: -Calls for help.
      • -
      -

      Usage Notes

      -

      To create a traditional sequencer step. +the sequencer bypasses this step when advancing.

    Factory Presets

    The Curve Sequencer 4 module +includes these factory presets:

    • AD: +Generates an Attack Decay envelope.
    • ADHR: +Generates an Attack Decay Hold Release envelope.
    • ADSR: +Generates an Attack Decay Sustain Release envelope.
    • AHR: +Generates an Attack Hold Release envelope.
    • ASR: +Generates an Attack Sustain Release envelope.
    • Batman: +Calls for help.

    Usage Notes

    To create a traditional sequencer step. Select LEVEL mode and set the step to ADVANCE on RISE. Then set the duration longer than the clock cycle. Note that using the other ADVANCE options give you a great deal of flexibility -compared to a traditional sequencer.

    -

    INPUT mode +compared to a traditional sequencer.

    INPUT mode essentially bypasses the sequencer -for the duration of the step.

    -

    CHASE mode +for the duration of the step.

    CHASE mode generates a curve that chases a moving target: -The voltage at the IN port.

    -

    To restart a sequence. +The voltage at the IN port.

    To restart a sequence. To interrupt a sequence and start a new sequence, send a rising edge to both RESET and GATE. The rising RESET resets the sequencer to idle. -The rising GATE immediately starts the next sequence.

    -

    To start a sequence at a specified voltage.

    -
      -
    • Feed the IN port a signal with the desired voltage.
    • -
    • Send a rising edge to both RESET and GATE. +The rising GATE immediately starts the next sequence.

      To start a sequence at a specified voltage.

      • Feed the IN port a signal with the desired voltage.
      • Send a rising edge to both RESET and GATE. The rising RESET copies the IN voltage to the OUT port. The rising GATE immediately starts a new sequence -starting from the OUT port voltage.
      • -
      -

      To skip a series of steps. -Set a series of adjacent steps to advance on the same GATE value

      -

      either HIGH or LOW. +starting from the OUT port voltage.

    To skip a series of steps. +Set a series of adjacent steps to advance on the same GATE value

    either HIGH or LOW. If the selected value appears at the GATE while any of those steps is active, the sequencer immediately completes the active step and all of the successive steps with the same ADVANCE condition, -and executes the next available step that has a different ADVANCE condition.

    -

    For example, to generate an ADSR envelope +and executes the next available step that has a different ADVANCE condition.

    For example, to generate an ADSR envelope that jumps to the Release step when the GATE goes low, set the ADVANCE condition of the Attack, Decay, and Sustain steps -to LOW.

    -

    To track the IN voltage. +to LOW.

    To track the IN voltage. If RESET is high while the sequencer is idle, the sequencer copies the IN voltage to the OUT port. So if you want control the sequencer externally -to “track” the IN signal:

    -
      -
    • Send a rising signal to RESET. -The sequencer interrupts any sequence in progress and becomes idle.
    • -
    • Hold RESET high. +to “track” the IN signal:

      • Send a rising signal to RESET. +The sequencer interrupts any sequence in progress and becomes idle.
      • Hold RESET high. As long as RESET is high and the sequencer is idle, -the sequencer copies IN to OUT.
      • -
      • Prevent GATE from rising. +the sequencer copies IN to OUT.
      • Prevent GATE from rising. If GATE rises while the sequencer is idle, the sequencer starts a sequence and stops tracking IN -(unless the first selected step is in INPUT mode).
      • -
      • To stop tracking, set RESET low or send a rising signal to GATE.
      • -
      -

      Pausing and resuming a sequence. +(unless the first selected step is in INPUT mode).

    • To stop tracking, set RESET low or send a rising signal to GATE.

    Pausing and resuming a sequence. Turning RUN off while a sequence is in progress pauses the sequence. When RUN turns on, -the sequence resumes from the point where it was paused.

    -

    Details

    -

    Several aspects of the Curve Sequencer modules, +the sequence resumes from the point where it was paused.

    Details

    Several aspects of the Curve Sequencer modules, though purposefully designed, -may be unexpected:

    -
      -
    • -

      ADVANCE options and timed modes. +may be unexpected:

      • ADVANCE options and timed modes. If the active step is in one of the timed modes (CURVE, HOLD, INPUT, CHASE, or LEVEL), the sequencer advances to the next step -as soon as either or both of these things occurs:

        -
          -
        • The active step completes its duration.
        • -
        • The GATE satisfies the ADVANCE condition.
        • -
        -

        If the active step completes its duration, +as soon as either or both of these things occurs:

        • The active step completes its duration.
        • The GATE satisfies the ADVANCE condition.

        If the active step completes its duration, the sequencer advances to the next step regardless of whether the GATE -satisfies the ADVANCE condition.

        -

        If the GATE satisfies the ADVANCE condition, +satisfies the ADVANCE condition.

        If the GATE satisfies the ADVANCE condition, the sequencer advances to the next step regardless of whether the active step regardless of whether the active step -has completed its duration.

        -
      • -
      • -

        The starting voltage of each mode. +has completed its duration.

      • The starting voltage of each mode. A step in CURVE, HOLD, SUSTAIN, or CHASE mode -starts at the current OUT port voltage.

        -

        A step in INPUT mode +starts at the current OUT port voltage.

        A step in INPUT mode starts at the the voltage at the IN port. and tracks the IN signal -for the duration.

        -

        A step in LEVEL mode +for the duration.

        A step in LEVEL mode starts at the voltage specified by the LEVEL controls and tracks the value of those controls -for the duration.

        -
      • -
      • -

        Once started, a step always completes. +for the duration.

      • Once started, a step always completes. Once a step starts, it always proceeds as if enabled, -even if ENABLED is turned off while the step is in progress.

        -
      • -
      • -

        RESET and RUN. +even if ENABLED is turned off while the step is in progress.

      • RESET and RUN. A rising RESET resets the sequencer to idle even while RUN is off. @@ -366,20 +179,8 @@

        Details

        abandons any sequence in progress. If RUN is off, a rising RESET -abandons any paused sequence.

        -
      • -
      • -

        RESET, idle mode, and the IN port. +abandons any paused sequence.

      • RESET, idle mode, and the IN port. While the sequencer is idle and RESET is high, the sequencer copies the IN port voltage -to the OUT port.

        -
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +to the OUT port.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/func-6/index.html b/modules/func-6/index.html index a581bac4..f87f7493 100644 --- a/modules/func-6/index.html +++ b/modules/func-6/index.html @@ -1,99 +1,19 @@ - - - - - - -The Func 6 Module - - - - - -
    -
    -

    The Func 6 Module

    -
    -
    The Func 6 Faceplate -

    A chain of knobs with selectable ranges to offset and scale input signals.

    -

    Each row of controls is a channel that applies a selected function to its input signal.

    -

    Each channel’s input is normaled to the output of the channel above it.

    -

    Controls

    -

    Each channel includes the following controls.

    -
      -
    • -

      ADD / MULT: -Selects the function to apply to the input signal.

      -
        -
      • ADD offsets the signal by adding the selected amount to it.
      • -
      • MULT scales the signal by multiplying it by the selected amount.
      • -
      -

      This switch also selects +The Func 6 Module +

      The Func 6 Module

      The Func 6 Faceplate

      A chain of knobs with selectable ranges to offset and scale input signals.

      Each row of controls is a channel that applies a selected function to its input signal.

      Each channel’s input is normaled to the output of the channel above it.

      Controls

      Each channel includes the following controls.

      • ADD / MULT: +Selects the function to apply to the input signal.

        • ADD offsets the signal by adding the selected amount to it.
        • MULT scales the signal by multiplying it by the selected amount.

        This switch also selects an appropriate set of ranges for the function. -See the RANGE button, below.

        -
      • -
      • -

        KNOB: +See the RANGE button, below.

      • KNOB: Selects the amount to offset or scale -the input signal.

        -
      • -
      • -

        RANGE (button): -Selects the range of the knob.

        -

        The ranges depend on the function selected by the ADD / MULT switch. +the input signal.

      • RANGE (button): +Selects the range of the knob.

        The ranges depend on the function selected by the ADD / MULT switch. For each function, -this button cycles through several ranges.

        -
          -
        • ADD ranges: -
            -
          • 0–5
          • -
          • ±5
          • -
          • 0–10
          • -
          • ±10
          • -
          -
        • -
        • MULT ranges: -
            -
          • 0–1 (attenuator)
          • -
          • ±1 (attenuverter)
          • -
          • 0–2 (gain)
          • -
          • ±2
          • -
          • 0–5
          • -
          • ±5
          • -
          • 0–10
          • -
          • ±10
          • -
          -
        • -
        -
      • -
      -

      Ports

      -

      Each channel includes the following ports.

      -
        -
      • -

        IN: -The input to the function.

        -

        Each IN port is normaled to the OUT port of the channel above it. +this button cycles through several ranges.

        • ADD ranges:
          • 0–5
          • ±5
          • 0–10
          • ±10
        • MULT ranges:
          • 0–1 (attenuator)
          • ±1 (attenuverter)
          • 0–2 (gain)
          • ±2
          • 0–5
          • ±5
          • 0–10
          • ±10

      Ports

      Each channel includes the following ports.

      • IN: +The input to the function.

        Each IN port is normaled to the OUT port of the channel above it. That is, if a channel’s IN port is not connected to a wire, the channel takes its input from the OUT port -of the channel above.

        -
      • -
      • -

        OUT: -The output signal from the function.

        -
      • -
      -
      -
      -
      -

      © 2017–2022 Dale H. Emery

      -
      - - \ No newline at end of file +of the channel above.

    • OUT: +The output signal from the function.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/func/index.html b/modules/func/index.html index 2a6d6a3b..57c77d4d 100644 --- a/modules/func/index.html +++ b/modules/func/index.html @@ -1,89 +1,14 @@ - - - - - - -The Func Module - - - - - -
    -
    -

    The Func Module

    -
    -
    The Func Faceplate -

    Offsets or scales its input signal by a selectable amount.

    -

    Controls

    -
      -
    • -

      ADD / MULT: -Selects the function to apply to the input signal.

      -
        -
      • ADD offsets the signal by adding the selected voltage to it.
      • -
      • MULT scales the signal by multiplying it by the selected amount.
      • -
      -

      This switch also selects +The Func Module +

      The Func Module

      The Func Faceplate

      Offsets or scales its input signal by a selectable amount.

      Controls

      • ADD / MULT: +Selects the function to apply to the input signal.

        • ADD offsets the signal by adding the selected voltage to it.
        • MULT scales the signal by multiplying it by the selected amount.

        This switch also selects an appropriate set of ranges for the function. -See the RANGE button, below.

        -
      • -
      • -

        KNOB: +See the RANGE button, below.

      • KNOB: Selects the amount to offset or scale -the input signal.

        -
      • -
      • -

        RANGE (button): -Selects the range of the knob.

        -

        The ranges depend on the function selected by the ADD / MULT switch. +the input signal.

      • RANGE (button): +Selects the range of the knob.

        The ranges depend on the function selected by the ADD / MULT switch. For each function, -this button cycles through several ranges.

        -
          -
        • ADD ranges: -
            -
          • 0–5
          • -
          • ±5
          • -
          • 0–10
          • -
          • ±10
          • -
          -
        • -
        • MULT ranges: -
            -
          • 0–1 (attenuator)
          • -
          • ±1 (attenuverter)
          • -
          • 0–2 (gain)
          • -
          • ±2
          • -
          • 0–5
          • -
          • ±5
          • -
          • 0–10
          • -
          • ±10
          • -
          -
        • -
        -
      • -
      -

      Ports

      -
        -
      • -

        IN: -The input to the function.

        -
      • -
      • -

        OUT: -The output signal from the function.

        -
      • -
      -
      -
      -
      -

      © 2017–2022 Dale H. Emery

      -
      - - \ No newline at end of file +this button cycles through several ranges.

      • ADD ranges:
        • 0–5
        • ±5
        • 0–10
        • ±10
      • MULT ranges:
        • 0–1 (attenuator)
        • ±1 (attenuverter)
        • 0–2 (gain)
        • ±2
        • 0–5
        • ±5
        • 0–10
        • ±10

    Ports

    • IN: +The input to the function.

    • OUT: +The output signal from the function.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/fuzzy-logic-h/index.html b/modules/fuzzy-logic-h/index.html index 5f02e9e6..bd45969a 100644 --- a/modules/fuzzy-logic-h/index.html +++ b/modules/fuzzy-logic-h/index.html @@ -1,93 +1,33 @@ - - - - - - -The Fuzzy Logic H Module - - - - - -
    -
    -

    The Fuzzy Logic H Module

    -
    -
    The Fuzzy Logic H Faceplate -

    Fuzzy Logic H combines signals by applying fuzzy logic operators -based on hyperbolic paraboloids.

    -

    Fuzzy Logic H is arranged in two independent columns +The Fuzzy Logic H Module +

    The Fuzzy Logic H Module

    The Fuzzy Logic H Faceplate

    Fuzzy Logic H combines signals by applying fuzzy logic operators +based on hyperbolic paraboloids.

    Fuzzy Logic H is arranged in two independent columns with identical functionality. The left column (described below) applies the fuzzy logic operators to the A and B inputs. -The right column applies the same operators to the C and D inputs.

    -

    WARNING: +The right column applies the same operators to the C and D inputs.

    WARNING: Fuzzy Logic H can produce very large output voltages if the input voltages are above or below the selected range. -Please READ THE WARNINGS CAREFULLY!

    -

    Controls

    -
      -
    • -

      ¬ button: +Please READ THE WARNINGS CAREFULLY!

      Controls

      • ¬ button: Negates the corresponding input by applying the NOT unary operator before applying the binary operators. -NOT(x) is defined as 1-x.

        -
      • -
      • -

        UNI / BI: +NOT(x) is defined as 1-x.

      • UNI / BI: The input voltage range for which Fuzzy Logic H is well-behaved. 0 to 10V (UNI) -or -5 to 5V (BI).

        -

        If the input signals are within the selected range, -the output signals will also be within the selected range.

        -

        Input signals +or -5 to 5V (BI).

        If the input signals are within the selected range, +the output signals will also be within the selected range.

        Input signals above or below the selected range -can produce very large output voltages.

        -
      • -
      -

      Ports

      -
        -
      • -

        A and B: -The inputs to the operators.

        -
      • -
      • -

        AND: -emits A*B.

        -
      • -
      • -

        OR: -emits A+B-(A*B).

        -
      • -
      • -

        XOR: -emits A+B-(2AB).

        -
      • -
      • -

        A ▶ B (A implies B): -emits 1-A+(A*B).

        -
      • -
      • -

        A ◀ B (B implies A): -emits 1-B+(A*B).

        -
      • -
      • -

        ¬ port: +can produce very large output voltages.

      Ports

      • A and B: +The inputs to the operators.

      • AND: +emits A*B.

      • OR: +emits A+B-(A*B).

      • XOR: +emits A+B-(2AB).

      • A ▶ B (A implies B): +emits 1-A+(A*B).

      • A ◀ B (B implies A): +emits 1-B+(A*B).

      • ¬ port: Emits the negation of the operator it is grouped with. -NOT(x) is defined as 1-x.

        -
      • -
      -

      Usage Ideas

      -
        -
      • -

        Disconnected inputs. +NOT(x) is defined as 1-x.

      Usage Ideas

      • Disconnected inputs. Leave one input disconnected. Fuzzy Logic H treates a disconnected input as a 0V input signal. @@ -95,17 +35,11 @@

        Usage Ideas

        In UNI range (0V to 10V), 0V means absolutely false. In BI range (-5V to 5V), -0V means half true.

        -
      • -
      • -

        Sequences of Operators. +0V means half true.

      • Sequences of Operators. Send the outputs of the A/B column to the C and D inputs (or vice versa) -to form compound logic expressions.

        -
      • -
      • -

        Feedback Loops. +to form compound logic expressions.

      • Feedback Loops. Connect one or both inputs of each column to outputs from the other column. This can generate very complex output signals @@ -113,18 +47,9 @@

        Usage Ideas

        WARNING: If any input voltage is above or below the selected range, feedback loops like this can generate -very high output voltages.

        -
      • -
      • -

        Alternate Fuzzy Logic. +very high output voltages.

      • Alternate Fuzzy Logic. For fuzzy logic based on Lofti Zadeh’s more standard definitions of the same operators, -try Fuzzy Logic Z.

        -
      • -
      -

      Voltage and Truth

      -

      Voltage and Truth

      • Scaling the Inputs. Before applying the operators, Fuzzy Logic H scales its inputs from the selected range @@ -132,48 +57,25 @@

        Voltage and Truth

        where 0.0 means absolutely false, 1.0 means absolutely true, and a value in between -represents some degree of truth.

        -
      • -
      • -

        Scaling the Outputs. +represents some degree of truth.

      • Scaling the Outputs. After applying the fuzzy logic operators, Fuzzy Logic H scales each result -to the range selected by the UNI / BI switch.

        -
      • -
      • -

        It may be interesting to consider +to the range selected by the UNI / BI switch.

      • It may be interesting to consider the meaning of signals above or below the selected input range. More true than absolutely true? More false than absolutely false? If you connect input signals outside the selected range, -be sure to heed the warnings below.

        -
      • -
      -

      Warnings

      -

      Fuzzy Logic H can produce VERY large output voltages +be sure to heed the warnings below.

    Warnings

    Fuzzy Logic H can produce VERY large output voltages if the input voltages are above or below -the selected range.

    -
      -
    • Fuzzy Logic H +the selected range.

      • Fuzzy Logic H is well-defined and well-behaved for input signals within in its selected range. If both input signals are in the selected range, -all output signals will be in the selected range.
      • -
      • Input signals above or below the selected range -can produce large output signals.
      • -
      • Input signals even moderately above or below the selected range -can produce VERY large output signals.
      • -
      • Feeding Fuzzy Logic H’s outputs +all output signals will be in the selected range.
      • Input signals above or below the selected range +can produce large output signals.
      • Input signals even moderately above or below the selected range +can produce VERY large output signals.
      • Feeding Fuzzy Logic H’s outputs back into its inputs can produce VERY large output signals if the inputs are only slightly -above or below the selected range.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +above or below the selected range.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/fuzzy-logic-z/index.html b/modules/fuzzy-logic-z/index.html index 60606fb6..8b7f8c20 100644 --- a/modules/fuzzy-logic-z/index.html +++ b/modules/fuzzy-logic-z/index.html @@ -1,92 +1,32 @@ - - - - - - -The Fuzzy Logic Z Module - - - - - -
    -
    -

    The Fuzzy Logic Z Module

    -
    -
    The Fuzzy Logic Z Faceplate -

    Fuzzy Logic Z combines signals by applying fuzzy logic operators -based on Lofti Zadeh’s definitions.

    -

    Fuzzy Logic Z is arranged in two independent columns +The Fuzzy Logic Z Module +

    The Fuzzy Logic Z Module

    The Fuzzy Logic Z Faceplate

    Fuzzy Logic Z combines signals by applying fuzzy logic operators +based on Lofti Zadeh’s definitions.

    Fuzzy Logic Z is arranged in two independent columns with identical functionality. Only the left column, which operates on the A and B inputs, is described below. -The right column applies the same operators to the C and D inputs.

    -

    WARNING: +The right column applies the same operators to the C and D inputs.

    WARNING: Fuzzy Logic Z can produce very large output voltages if the input voltages are above or below the selected range. -Please READ THE WARNINGS CAREFULLY!

    -

    Controls

    -
      -
    • -

      ¬ button: +Please READ THE WARNINGS CAREFULLY!

      Controls

      • ¬ button: Negates the corresponding input by applying the NOT unary operator before applying the binary operators. -NOT(x) is defined as 1-x.

        -
      • -
      • -

        UNI / BI: +NOT(x) is defined as 1-x.

      • UNI / BI: The input voltage range for which Fuzzy Logic Z is well-behaved. 0 to 10V (UNI) -or -5 to 5V (BI).

        -

        If the input signals are within the selected range, -the output signals will also be within the selected range.

        -

        Input signals +or -5 to 5V (BI).

        If the input signals are within the selected range, +the output signals will also be within the selected range.

        Input signals above or below the selected range -can produce very large output voltages.

        -
      • -
      -

      Ports

      -
        -
      • -

        A and B: -The inputs to the operators.

        -
      • -
      • -

        AND: -emits min(A,B).

        -
      • -
      • -

        OR: -emits max(A,B).

        -
      • -
      • -

        XOR: -emits A+B-2*min(A,B).

        -
      • -
      • -

        A ▶ B (A implies B): -emits 1-min(A,1-B).

        -
      • -
      • -

        A ◀ B (B implies A): -emits 1-min(1-A,B).

        -
      • -
      • -

        ¬ port: +can produce very large output voltages.

      Ports

      • A and B: +The inputs to the operators.

      • AND: +emits min(A,B).

      • OR: +emits max(A,B).

      • XOR: +emits A+B-2*min(A,B).

      • A ▶ B (A implies B): +emits 1-min(A,1-B).

      • A ◀ B (B implies A): +emits 1-min(1-A,B).

      • ¬ port: Emits the negation of the operator it is grouped with. -NOT(x) is defined as 1-x.

        -
      • -
      -

      Usage Ideas

      -
        -
      • -

        Disconnected inputs. +NOT(x) is defined as 1-x.

      Usage Ideas

      • Disconnected inputs. Leave one input disconnected. Fuzzy Logic Z treates a disconnected input as a 0V input signal. @@ -94,17 +34,11 @@

        Usage Ideas

        In UNI range (0V to 10V), 0V means absolutely false. In BI range (-5V to 5V), -0V means half true.

        -
      • -
      • -

        Sequences of Operators. +0V means half true.

      • Sequences of Operators. Send the outputs of the A/B column to the C and D inputs (or vice versa) -to form compound logic expressions.

        -
      • -
      • -

        Feedback. +to form compound logic expressions.

      • Feedback. Connect one or both inputs of each column to outputs from the other column. This can generate very complex output signals @@ -112,18 +46,9 @@

        Usage Ideas

        WARNING: If any input voltage is above or below the selected range, feedback loops like this can generate -very high output voltages.

        -
      • -
      • -

        Alternate Fuzzy Logic. +very high output voltages.

      • Alternate Fuzzy Logic. For fuzzy logic based on the less common “hyperbolic paraboloid” fuzzy operators, -try Fuzzy Logic H.

        -
      • -
      -

      Voltage and Truth

      -

      Voltage and Truth

      • Scaling the Inputs. Before applying the operators, Fuzzy Logic Z scales its inputs from the selected range @@ -131,48 +56,25 @@

        Voltage and Truth

        where 0.0 means completely false, 1.0 means completely true, and a value in between -represents some degree of truth.

        -
      • -
      • -

        Scaling the Outputs. +represents some degree of truth.

      • Scaling the Outputs. After applying the fuzzy logic operators, Fuzzy Logic Z scales each result -to the range selected by the UNI / BI switch.

        -
      • -
      • -

        It may be interesting to consider +to the range selected by the UNI / BI switch.

      • It may be interesting to consider the meaning of signals above or below the selected input range. More true than absolutely true? More false than absolutely false? If you connect input signals outside the selected range, -be sure to heed the warnings below.

        -
      • -
      -

      Warnings

      -

      Fuzzy Logic Z can produce VERY large output voltages +be sure to heed the warnings below.

    Warnings

    Fuzzy Logic Z can produce VERY large output voltages if the input voltages are above or below -the the range selected by the UNI / BI switch.

    -
      -
    • Fuzzy Logic Z +the the range selected by the UNI / BI switch.

      • Fuzzy Logic Z is well-defined and well-behaved for input signals within in its selected range. If both input signals are in the selected range, -all output signals will be in the selected range.
      • -
      • Input signals above or below the selected range -can produce large output signals.
      • -
      • Input signals even moderately above or below the selected range -can produce VERY large output signals.
      • -
      • Feeding Fuzzy Logic Z’s outputs +all output signals will be in the selected range.
      • Input signals above or below the selected range +can produce large output signals.
      • Input signals even moderately above or below the selected range +can produce VERY large output signals.
      • Feeding Fuzzy Logic Z’s outputs back into its inputs can produce VERY large output signals if the inputs are only slightly -above or below the selected range.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +above or below the selected range.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/gator/index.html b/modules/gator/index.html index 26ba6e12..3fbdd11b 100644 --- a/modules/gator/index.html +++ b/modules/gator/index.html @@ -1,113 +1,39 @@ - - - - - - -The Gator Module - - - - - -
    -
    -

    The Gator Module

    -
    -
    The Gator Faceplate -

    Computes eight common logic functions -for up to 16 inputs.

    -

    Controls

    -
      -
    • Negate Buttons: +The Gator Module +

      The Gator Module

      The Gator Faceplate

      Computes eight common logic functions +for up to 16 inputs.

      Controls

      • Negate Buttons: Beside each input is a negate button that negates the input -before computing the logic functions.
      • -
      -

      Ports

      -
        -
      • -

        Input ports: +before computing the logic functions.

      Ports

      • Input ports: The 16 logic inputs. A voltage above 0.5V (half a volt) is considered true. A voltage of 0.5V or below -is considered false.

        -
      • -
      • -

        AND: -True if every input is true.

        -
      • -
      • -

        NAND: -True if at least one input is false.

        -
      • -
      • -

        EVEN: -True if the number of true inputs is even.

        -
      • -
      • -

        ODD: -True if the number of true inputs is odd.

        -
      • -
      • -

        OR: -True if at least one input is true.

        -
      • -
      • -

        NOR: -True if every input is false.

        -
      • -
      • -

        XOR: +is considered false.

      • AND: +True if every input is true.

      • NAND: +True if at least one input is false.

      • EVEN: +True if the number of true inputs is even.

      • ODD: +True if the number of true inputs is odd.

      • OR: +True if at least one input is true.

      • NOR: +True if every input is false.

      • XOR: True if exactly one input is true. See the note below about the meaning of XOR -for more than two inputs.

        -
      • -
      • -

        XNOR: -True if the number of true inputs is other than one.

        -
      • -
      -

      Notes

      -
        -
      • Inputs: +for more than two inputs.

      • XNOR: +True if the number of true inputs is other than one.

      Notes

      • Inputs: Gator considers any input above 0.5V (half a volt) to be true, and any other voltage -to be false.
      • -
      • Connected Inputs: +to be false.
      • Connected Inputs: When computing the logic functions, Gator considers only the connected inputs. If no inputs are connected, -Gator emits 0V on all OUT ports.
      • -
      • Output: +Gator emits 0V on all OUT ports.
      • Output: Each Gator output emits 10V if the corresponding logic function is true -and 0V if the function is false.
      • -
      -

      The Meaning of XOR

      -

      Opinions differ about the definition of “exclusive or” (XOR) -for more than two inputs:

      -
        -
      1. Some people insist that it is undefined.
      2. -
      3. Some people insist that it is true if the number of true inputs is odd.
      4. -
      5. Some people insist that it is true if exactly one input is true.
      6. -
      -

      I chose the third definition (exactly one true input) for XOR, +and 0V if the function is false.

    The Meaning of XOR

    Opinions differ about the definition of “exclusive or” (XOR) +for more than two inputs:

    1. Some people insist that it is undefined.
    2. Some people insist that it is true if the number of true inputs is odd.
    3. Some people insist that it is true if exactly one input is true.

    I chose the third definition (exactly one true input) for XOR, and added the ODD output to handle the second definition. I left the first definition unimplemented. At least, I think I did. -Frankly, there’s no way to know.

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +Frankly, there’s no way to know.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/hostage/index.html b/modules/hostage/index.html index fc523ea1..633f57d1 100644 --- a/modules/hostage/index.html +++ b/modules/hostage/index.html @@ -1,173 +1,75 @@ - - - - - - -The Hostage Module - - - - - -
    -
    -

    The Hostage Module

    -
    -
    The Hostage Faceplate -

    Generates a hold or sustain envelope stage. +The Hostage Module +

    The Hostage Module

    The Hostage Faceplate

    Generates a hold or sustain envelope stage. A hold stage lasts for the duration specified by the controls. -A sustain stage lasts as long as the GATE is up.

    -

    Combine +A sustain stage lasts as long as the GATE is up.

    Combine Stage, Booster Stage, Hostage, and Upstage modules to generate complex envelopes -with any number of stages.

    -

    See also:

    - -

    Modes

    -
      -
    • -

      In SUSTAIN mode, +with any number of stages.

      See also:

      Modes

      • In SUSTAIN mode, the GATE signal acts as a sustain gate. When the gate rises, Hostage samples the IN signal, then generates a sustain stage at the sampled voltage -until the gate falls.

        -
      • -
      • -

        In HOLD mode, +until the gate falls.

      • In HOLD mode, the GATE signal acts as a trigger. When triggered, Hostage samples the IN signal, then generates a hold stage at the sampled voltage -for the specified duration.

        -
      • -
      -

      Controls

      -
        -
      • -

        SUSTAIN / HOLD: -Selects Hostage’s operating mode.

        -
      • -
      • -

        DURATION: +for the specified duration.

      Controls

      • SUSTAIN / HOLD: +Selects Hostage’s operating mode.

      • DURATION: The duration of the hold stage -(when Hostage is in HOLD mode).

        -

        The duration switch (1 / 10 / 100) +(when Hostage is in HOLD mode).

        The duration switch (1 / 10 / 100) sets the range of the DURATION knob. The switch labels indicate the maximum duration (seconds) for each range. -For each range:

        -
          -
        • The minimum duration +For each range:

          • The minimum duration is 1/1000 of the maximum: -1ms, 10ms, or 100ms.
          • -
          • Centering the knob gives a duration of +1ms, 10ms, or 100ms.
          • Centering the knob gives a duration of 1/10 of the maximum: -100ms, 1s, or 10s.
          • -
          -

          In GATE mode, -Hostage ignores the DURATION controls.

          -
        • -
        -

        Ports

        -
          -
        • -

          DEFER: +100ms, 1s, or 10s.

        In GATE mode, +Hostage ignores the DURATION controls.

      Ports

      • DEFER: When the DEFER gate is up, Hostage defers to its IN signal, forwarding the IN signal -directly to the OUT output.

        -

        While Hostage is deferring -it ignores incoming GATE signals.

        -

        When it begins deferring, +directly to the OUT output.

        While Hostage is deferring +it ignores incoming GATE signals.

        When it begins deferring, Hostage abandons any envelope stage -it may have been generating.

        -
      • -
      • -

        GATE: +it may have been generating.

      • GATE: Triggers a hold stage or sustains a sustain stage, -depending on the current operating mode.

        -

        While Hostage is deferring, -it ignores the incoming GATE signal.

        -

        In SUSTAIN mode, +depending on the current operating mode.

        While Hostage is deferring, +it ignores the incoming GATE signal.

        In SUSTAIN mode, if the GATE is up when Hostage stops deferring, it begins a new sustain stage. If the GATE is down when Hostage stops deferring, -it emits an EOC pulse.

        -
      • -
      • -

        IN: +it emits an EOC pulse.

      • IN: When Hostage generates a hold or sustain stage it emits the voltage that it sampled from the IN signal -at the start of the stage.

        -

        While Hostage is deferring, -it forwards the IN signal directly to its OUT output.

        -
      • -
      • -

        ACTIVE: +at the start of the stage.

        While Hostage is deferring, +it forwards the IN signal directly to its OUT output.

      • ACTIVE: A 10V gate signal indicating that Hostage is either actively generating a stage -or deferring to its IN signal.

        -
      • -
      • -

        EOC: +or deferring to its IN signal.

      • EOC: When Hostage completes a stage it emits a 1 millisecond 10V pulse -at its EOC output.

        -
      • -
      • -

        OUT: +at its EOC output.

      • OUT: The generated stage signal -or (when deferring) the IN signal.

        -
      • -
      • -

        CV: +or (when deferring) the IN signal.

      • CV: A control voltage -signal to modulate the duration.

        -
      • -
      -

      Notes

      -
        -
      • -

        While a stage is in progress, +signal to modulate the duration.

      Notes

      • While a stage is in progress, the DURATION knob, switch, and CV input are “live.” If the duration value changes, Hostage applies the new value -to the remainder of the stage.

        -
      • -
      • -

        Before Hostage becomes active for the first time +to the remainder of the stage.

      • Before Hostage becomes active for the first time (whether by a trigger, a gate, or a DEFER signal), -it outputs 0V.

        -
      • -
      • -

        Changing the mode abandons any stage in progress.

        -
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +it outputs 0V.

  • Changing the mode abandons any stage in progress.

  • © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/index.html b/modules/index.html index 78498b51..3eeecf59 100644 --- a/modules/index.html +++ b/modules/index.html @@ -1,25 +1,2 @@ - - - - - - -Modules - - - - - -
    -
    -

    Modules

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +Modules +

    Modules

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/ranger/index.html b/modules/ranger/index.html index ea9daf55..c1bae488 100644 --- a/modules/ranger/index.html +++ b/modules/ranger/index.html @@ -1,67 +1,14 @@ - - - - - - -The Ranger Module - - - - - -
    -
    -

    The Ranger Module

    -
    -
    The Ranger Faceplate -

    A modulatable knob with an adjustable, modulatable range.

    -

    Controls

    -
      -
    • -

      LEVEL: +The Ranger Module +

      The Ranger Module

      The Ranger Faceplate

      A modulatable knob with an adjustable, modulatable range.

      Controls

      • LEVEL: Interpolates between the values -set by the CCW and CW panels.

        -
      • -
      • -

        CCW: -Sets the counterclockwise (CCW) end of the LEVEL knob’s range.

        -
      • -
      • -

        CW: -Sets the clockwise (CW) end of the LEVEL knob’s range.

        -
      • -
      • -

        UNI / BI: +set by the CCW and CW panels.

      • CCW: +Sets the counterclockwise (CCW) end of the LEVEL knob’s range.

      • CW: +Sets the clockwise (CW) end of the LEVEL knob’s range.

      • UNI / BI: The voltage range of the associated knob. 0 to 10V (UNI) -or -5 to 5V (BI).

        -
      • -
      -

      Ports

      -
        -
      • -

        OUT: +or -5 to 5V (BI).

      Ports

      • OUT: The output voltage, selected by the LEVEL knob -within the range specified by the CCW and CW knobs.

        -
      • -
      • -

        CV: +within the range specified by the CCW and CW knobs.

      • CV: A control voltage signal -to modulate the associated parameter. Each CV input has an attenuverter.

        -

        Note that control voltage can drive any of Ranger’s knobs beyond its normal limit.

        -
      • -
      -

      Using Ranger

      -

      TBD

      -
      -
      -
      -

      © 2017–2022 Dale H. Emery

      -
      - - \ No newline at end of file +to modulate the associated parameter. Each CV input has an attenuverter.

      Note that control voltage can drive any of Ranger’s knobs beyond its normal limit.

    Using Ranger

    TBD

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/scannibal/index.html b/modules/scannibal/index.html index 56dd80fa..3669b79a 100644 --- a/modules/scannibal/index.html +++ b/modules/scannibal/index.html @@ -1,68 +1,16 @@ - - - - - - -The Scannibal Modules - - - - - -
    -
    -

    The Scannibal Modules

    -
    -
    The Scanibal 4 Faceplate -

    A scanned sequencer +The Scannibal Modules +

    The Scannibal Modules

    The Scanibal 4 Faceplate

    A scanned sequencer that offers flexible, precise control -over the individual steps.

    -

    DHE Modules includes three Scannibal modules:

    -
      -
    • Scannibal 4 (shown).
    • -
    • Scannibal 8.
    • -
    • Scannibal 16.
    • -
    -

    The three modules operate identically, except for the number of steps.

    -

    See:

    - -

    Controls

    - -

    Inputs

    -
      -
    • -

      The Φ input +over the individual steps.

      DHE Modules includes three Scannibal modules:

      • Scannibal 4 (shown).
      • Scannibal 8.
      • Scannibal 16.

      The three modules operate identically, except for the number of steps.

      See:

      Controls

      Inputs

      • The Φ input is the scanner phase signal that drives the module. Scannibal maps a 0–10V signal to the “phase” range: 0–1. Voltages outside of 0–10V -are “wrapped” into the phase range.

        -
      • -
      • -

        A, B, and C: +are “wrapped” into the phase range.

      • A, B, and C: Three input signals that each anchor -can sample or track.

        -
      • -
      -

      Step Controls

      -
        -
      • -

        Each step has two “anchors” +can sample or track.

      Step Controls

      • Each step has two “anchors” that determine the voltages between which the step interpolates. When the step phase is 0, @@ -73,131 +21,55 @@

        Step Controls

        reported by the Φ=1 anchor. When the step phase is between 0 and 1, the step interpolates between the anchor voltages -along a curve specified by the curve controls.

        -

        Each anchor has three controls:

        -
          -
        • -

          The MODE button (the top button) +along a curve specified by the curve controls.

          Each anchor has three controls:

          • The MODE button (the top button) determines whether the anchor reports -a sampled voltage or the current voltage.

            -
              -
            • -

              SAMPL: +a sampled voltage or the current voltage.

              • SAMPL: The anchor reports the voltage that it sampled from its source -when the step became active.

                -
              • -
              • -

                TRACK: +when the step became active.

              • TRACK: The anchor reports the current voltage -of its source.

                -
              • -
              -
            • -
            • -

              The SOURCE button (below the MODE button) +of its source.

          • The SOURCE button (below the MODE button) specifies where the anchor gets the voltage it reports. -The possible sources are:

            -
              -
            • The anchor’s LEVEL knob.
            • -
            • The A, B, or C input port.
            • -
            • The OUT port.
            • -
            -
          • -
          • -

            The anchor LEVEL knob +The possible sources are:

            • The anchor’s LEVEL knob.
            • The A, B, or C input port.
            • The OUT port.
          • The anchor LEVEL knob sets the voltage of the anchor’s level source. The range of the knob is determined by the global UNI / BI range switch. This knob is used only when LEVEL -is selected as the anchor’s SOURCE.

            -
          • -
          -
        • -
        • -

          The [ Φ ] “phase width” knob +is selected as the anchor’s SOURCE.

      • The [ Φ ] “phase width” knob increases or decreases the proportion of the scanner phase during which this step is active. Turning the knob clockwise makes the step active -during more of the scanner phase.

        -

        Setting a step’s phase width to 0 +during more of the scanner phase.

        Setting a step’s phase width to 0 disables the step. -Setting all steps' phase widths to 0 -pauses the sequence.

        -
      • -
      • -

        The SHAPE button +Setting all steps’ phase widths to 0 +pauses the sequence.

      • The SHAPE button selects the shape (J or S) -of the step’s interpolation curve.

        -
      • -
      • -

        The CURVE knob +of the step’s interpolation curve.

      • The CURVE knob sets the curvature -of the step’s interpolation curve.

        -
      • -
      -

      Global Controls

      -
        -
      • -

        The STEPS knob +of the step’s interpolation curve.

      Global Controls

      • The STEPS knob selects the steps that participate in the sequence. Bracket-shaped markers surround the PROGRESS lights -of the selected steps.

        -
      • -
      • -

        The UNI / BI switch -selects the range of the anchors' LEVEL knobs.

        -
      • -
      -

      Outputs

      -
        -
      • -

        PROGRESS lights +of the selected steps.

      • The UNI / BI switch +selects the range of the anchors’ LEVEL knobs.

      Outputs

      • PROGRESS lights at the top of the module show the step phase of the active step. The color of the light progresses from red at step phase 0 -to green at step phase 1.

        -
      • -
      • -

        STEP # +to green at step phase 1.

      • STEP # identifies the active step, represented as \(\frac{10s}{N}\) volts, -where

        -
          -
        • s is the number of the active step
        • -
        • N is the module’s largest step number
        • -
        -

        If every step’s phase width is 0, +where

        • s is the number of the active step
        • N is the module’s largest step number

        If every step’s phase width is 0, the sequencer is paused, -and the STEP # port emits 0V.

        -
      • -
      • -

        STEP Φ +and the STEP # port emits 0V.

      • STEP Φ emits a signal that represents the step phase of the active step, from 0V at phase 0 -to 10V at phase 1.

        -
      • -
      • -

        OUT -emits the voltage generated by the active step.

        -
      • -
      -

      Operation

      -

      TBD

      step and step phase -

      Phase width -–>

      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +to 10V at phase 1.

  • OUT +emits the voltage generated by the active step.

  • Operation

    TBD

    step and step phase

    Phase width +–>

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/sequencizer/index.html b/modules/sequencizer/index.html index 8abf97d5..079f6f4e 100644 --- a/modules/sequencizer/index.html +++ b/modules/sequencizer/index.html @@ -1,412 +1,160 @@ - - - - - - -The Sequencizer Modules - - - - - -
    -
    -

    The Sequencizer Modules

    -
    -
    The Sequencizer 4 Faceplate -

    A sequencer +The Sequencizer Modules +

    The Sequencizer Modules

    The Sequencizer 4 Faceplate

    A sequencer that offers flexible, precise control over the individual steps -and the overall sequence.

    -

    DHE Modules includes three Sequencizer modules:

    -
      -
    • Sequencizer 4 (shown).
    • -
    • Sequencizer 8.
    • -
    • Sequencizer 16.
    • -
    -

    The three modules operate identically, except for the number of steps.

    -

    See:

    - -

    Controls

    - -

    Sequence Controls

    -Sequence Controls -
      -
    • -

      RUN -specifies whether the sequencer is running.

      -

      If RUN falls +and the overall sequence.

      DHE Modules includes three Sequencizer modules:

      • Sequencizer 4 (shown).
      • Sequencizer 8.
      • Sequencizer 16.

      The three modules operate identically, except for the number of steps.

      See:

      Controls

      Sequence Controls

      Sequence Controls
      • RUN +specifies whether the sequencer is running.

        If RUN falls while a sequence is in progress, the sequencer pauses the sequence. If RUN rises while a sequence is paused, -the sequencer resumes the sequence.

        -
      • -
      • -

        LOOP: +the sequencer resumes the sequence.

      • LOOP: If LOOP is on when a sequence ends, -the sequencer immediately begins a new sequence.

        -

        If LOOP is off when a sequence ends, -the sequencer becomes idle.

        -
      • -
      • -

        START and LENGTH -select the steps of the sequence.

        -

        Bracket-shaped markers next to the PROGRESS lights -indicate the currently selected steps.

        -
      • -
      • -

        GATE +the sequencer immediately begins a new sequence.

        If LOOP is off when a sequence ends, +the sequencer becomes idle.

      • START and LENGTH +select the steps of the sequence.

        Bracket-shaped markers next to the PROGRESS lights +indicate the currently selected steps.

      • GATE controls when a sequence starts, -and may influence when the sequence advances.

        -

        If GATE rises +and may influence when the sequence advances.

        If GATE rises while the sequencer is idle, the sequencer starts the sequence, -activating the first selected, enabled step.

        -

        See the step advancement controls +activating the first selected, enabled step.

        See the step advancement controls for details of how an individual step -may react to GATE conditions.

        -
      • -
      • -

        RESET: +may react to GATE conditions.

      • RESET: When RESET rises, the sequencer abandons any paused or in-progress sequence, and either starts a new sequence or becomes idle, -depending on RUN.

        -
      • -
      -

      Step Controls

      -

      Advancement Controls

      -Advancement Controls -

      The advancement controls +depending on RUN.

    Step Controls

    Advancement Controls

    Advancement Controls

    The advancement controls determine when the sequencer advances -from this step to the next:

    -
      -
    • -

      TRIG +from this step to the next:

      • TRIG determines when the step generates an internal trigger. The INT and SUST settings (below) determine how the step -reacts to these internal triggers.

        -
          -
        • -

          RISE: -Triggers when the GATE rises.

          -
        • -
        • -

          FALL: -Triggers when the GATE falls.

          -
        • -
        • -

          EDGE: -Triggers when the GATE rises or falls.

          -
        • -
        • -

          HIGH: -Triggers when the GATE is high.

          -
        • -
        • -

          LOW: -Triggers when the GATE is low.

          -
        • -
        -
      • -
      • -

        INT +reacts to these internal triggers.

        • RISE: +Triggers when the GATE rises.

        • FALL: +Triggers when the GATE falls.

        • EDGE: +Triggers when the GATE rises or falls.

        • HIGH: +Triggers when the GATE is high.

        • LOW: +Triggers when the GATE is low.

      • INT determines whether triggers interrupt the step -while it is generating a curve.

        -
          -
        • -

          OFF: +while it is generating a curve.

          • OFF: The step ignores all triggers -while it is generating a curve.

            -
          • -
          • -

            ON: +while it is generating a curve.

          • ON: Triggers interrupt the curve. If a trigger occurs while the step is generating a curve, -the sequence advances to the next step.

            -
          • -
          -
        • -
        • -

          SUST +the sequence advances to the next step.

      • SUST determines whether the step sustains -when it completes its curve.

        -
          -
        • -

          OFF: +when it completes its curve.

          • OFF: The step does not sustain. When the step completes its curve, -the sequence automatically advances to the next step.

            -
          • -
          • -

            ON: +the sequence automatically advances to the next step.

          • ON: When the step completes its curve, it sustains until a trigger occurs. While a step sustains, -it emits the voltage reported by its END anchor.

            -
          • -
          -
        • -
        -

        Anchor Controls

        -Anchor Controls -

        The step generates a curve +it emits the voltage reported by its END anchor.

    Anchor Controls

    Anchor Controls

    The step generates a curve that interpolates between the voltages reported by the START and END anchors. -Each anchor has three controls:

    -
      -
    • -

      The MODE button (the top button in each section) +Each anchor has three controls:

      • The MODE button (the top button in each section) determines whether the anchor reports -a sampled voltage or the current voltage.

        -
          -
        • -

          SAMPL: +a sampled voltage or the current voltage.

          • SAMPL: The anchor reports the voltage that it sampled from its source -when the step started.

            -
          • -
          • -

            TRACK: +when the step started.

          • TRACK: The anchor reports the current voltage -of its source.

            -
          • -
          -
        • -
        • -

          The SOURCE button (just above the knob) +of its source.

      • The SOURCE button (just above the knob) specifies where the anchor gets the voltage it reports. -The possible sources are:

        -
          -
        • The anchor’s LEVEL knob.
        • -
        • The A, B, or C input port.
        • -
        • The OUT port.
        • -
        -
      • -
      • -

        The anchor LEVEL knob +The possible sources are:

        • The anchor’s LEVEL knob.
        • The A, B, or C input port.
        • The OUT port.
      • The anchor LEVEL knob sets the voltage of the anchor’s level source. The global LEVEL knob and range switch (below) affect the value of this knob. This knob is used only when LEVEL -is selected as the anchor’s SOURCE.

        -
      • -
      -Global Level Controls -
        -
      • -

        The global LEVEL knob +is selected as the anchor’s SOURCE.

      Global Level Controls
      • The global LEVEL knob sets a global multiplier (0–1) applied to every anchor’s LEVEL source. This knob is modulated -by the control voltage at the CV port.

        -
      • -
      • -

        UNI / BI +by the control voltage at the CV port.

      • UNI / BI selects the voltage range -for every anchor LEVEL source.

        -
      • -
      -

      Curve Controls

      -Curve Controls -
        -
      • -

        SHAPE +for every anchor LEVEL source.

      Curve Controls

      Curve Controls
      • SHAPE selects the shape of the curve -(J or S).

        -
      • -
      • -

        CURVE -sets the curvature of the curve.

        -
      • -
      • -

        The step DUR knob +(J or S).

      • CURVE +sets the curvature of the curve.

      • The step DUR knob sets the duration of the step’s curve. The global duration multiplier knob and range switch (below) -affect the value of this knob.

        -
      • -
      -Global Duration Controls -
        -
      • -

        The global DUR knob +affect the value of this knob.

      Global Duration Controls
      • The global DUR knob sets a global multiplier (0–2) applied to the duration of each step. This knob is modulated -by the control voltage at the CV port.

        -

        Note that though the multiplier +by the control voltage at the CV port.

        Note that though the multiplier may be as low as 0, the actual duration is never reduced below the minimum duration -of the selected range.

        -
      • -
      • -

        1 / 10 / 100 (the duration range switch) +of the selected range.

      • 1 / 10 / 100 (the duration range switch) selects the global duration range for every step duration knob. The switch labels indicate the maximum duration (seconds) for each range. -For each range:

        -
          -
        • The minimum duration is 1/1000 of the maximum: 1ms, 10ms, or 100ms.
        • -
        • Centering the step duration knob gives a duration of 1/10 of the maximum: 100ms, 1s, or 10s.
        • -
        -
      • -
      -

      Execution Controls

      -Progress Lights -
        -
      • -

        PROGRESS lights +For each range:

        • The minimum duration is 1/1000 of the maximum: 1ms, 10ms, or 100ms.
        • Centering the step duration knob gives a duration of 1/10 of the maximum: 100ms, 1s, or 10s.

      Execution Controls

      Progress Lights
      • PROGRESS lights indicate which step is active (if any), and how far the active step has progressed in generating its curve. The light progresses from red to green -over the curve’s duration.

        -

        Note that the light indicates progress, -not voltage.

        -
      • -
      -Enablement Controls -
        -
      • ON enables or disables the step. +over the curve’s duration.

        Note that the light indicates progress, +not voltage.

      Enablement Controls
      • ON enables or disables the step. If a step is disabled, -the sequencer bypasses the step when advancing.
      • -
      -

      Inputs

      -Inputs -
        -
      • A, B, and C: +the sequencer bypasses the step when advancing.

      Inputs

      Inputs
      • A, B, and C: Three input signals that each START and END anchor -can sample or track.
      • -
      -

      Outputs

      -Step State Outputs -
        -
      • -

        STEP # +can sample or track.

      Outputs

      Step State Outputs
      • STEP # identifies the current step, represented as 10s/N volts, -where

        -
          -
        • s is the number of the current step
        • -
        • N is the module’s largest step number
        • -
        -

        For example, if all steps of a Sequencer 4 +where

        • s is the number of the current step
        • N is the module’s largest step number

        For example, if all steps of a Sequencer 4 are selected and enabled, and the sequencer is looping, -the STEP # port will cycle through the values

        -
        -

        2.5V → 5.0V → 7.5V → 10.0V → 2.5V → …

        -
        -

        When the sequencer is idle, -the STEP# port emits 0V.

        -
      • -
      • -

        CURVE +the STEP # port will cycle through the values

        2.5V → 5.0V → 7.5V → 10.0V → 2.5V → …

        When the sequencer is idle, +the STEP# port emits 0V.

      • CURVE emits 10V if the current step is generating a curve, -and 0V otherwise.

        -
      • -
      • -

        SUST +and 0V otherwise.

      • SUST emits 10V if the current step is sustaining, -and 0V otherwise.

        -
      • -
      • -

        STEP ∆ +and 0V otherwise.

      • STEP ∆ Step Event Outputs emits a 10ms pulse -when a step completes.

        -
      • -
      • -

        SEQ ∆ +when a step completes.

      • SEQ ∆ emits a 10ms pulse -when the sequence starts or loops.

        -
      • -
      • -

        OUT -emits the voltage generated by the current step.

        -
      • -
      -

      Factory Presets

      -

      Sequencizer 4 +when the sequence starts or loops.

    • OUT +emits the voltage generated by the current step.

    Factory Presets

    Sequencizer 4 includes a suite of -envelope generator presets:

    -
      -
    • AD: -Attack Decay.
    • -
    • ADBDSR: +envelope generator presets:

      • AD: +Attack Decay.
      • ADBDSR: Attack Decay Break Decay Sustain Release. After the attack, the sequence decays to a “break” voltage, -then decays to the sustain voltage.
      • -
      • ADHR: -Attack Decay Hold Release.
      • -
      • ADSHR: -Attack Decay Sustain Hold Release.
      • -
      • ADSR: -Attack Decay Sustain Release.
      • -
      • AHDSR: -Attack Hold Decay Sustain Release.
      • -
      • AHR: -Attack Hold Release.
      • -
      • ASR: -Attack Sustain Release.
      • -
      • DAR: -Delay Attack Release.
      • -
      • DADSR: -Delay Attack Decay Sustain Release.
      • -
      • DAHR: -Delay Attack Hold Release.
      • -
      • DASR: -Delay Attack Sustain Release.
      • -
      -

      Each Sequencizer module +then decays to the sustain voltage.

    • ADHR: +Attack Decay Hold Release.
    • ADSHR: +Attack Decay Sustain Hold Release.
    • ADSR: +Attack Decay Sustain Release.
    • AHDSR: +Attack Hold Decay Sustain Release.
    • AHR: +Attack Hold Release.
    • ASR: +Attack Sustain Release.
    • DAR: +Delay Attack Release.
    • DADSR: +Delay Attack Decay Sustain Release.
    • DAHR: +Delay Attack Hold Release.
    • DASR: +Delay Attack Sustain Release.

    Each Sequencizer module includes these factory presets, which are primarily useful as starting points -for your own variations:

    -
      -
    • Sample and Hold 100ms: +for your own variations:

      • Sample and Hold 100ms: A timed sample-and-hold sequence. -Each step holds for 100ms.
      • -
      • Sample and Hold Gated: +Each step holds for 100ms.
      • Sample and Hold Gated: A gate-controlled sample-and-hold sequence. -Each step holds until the gate rises.
      • -
      • Steps 100ms: +Each step holds until the gate rises.
      • Steps 100ms: A step sequencer with durations controlled by internal timers. -Each step holds for 100ms.
      • -
      • Steps Gated: +Each step holds for 100ms.
      • Steps Gated: A traditional, gate-controlled step sequencer. -Each step holds until the gate rises.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +Each step holds until the gate rises.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/sequencizer/user-guide/anchors-constant.png b/modules/sequencizer/user-guide/anchors-constant.png index 70ce0d16b61fddd5f74f8fe48c6d61af880b300b..7285655374621cb6c8f6b600e2d80c4a9842bed6 100644 GIT binary patch delta 15018 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 Svvmgbe#l5DidTt30{<5eSxoo< diff --git a/modules/sequencizer/user-guide/index.html b/modules/sequencizer/user-guide/index.html new file mode 100644 index 00000000..71549f91 --- /dev/null +++ b/modules/sequencizer/user-guide/index.html @@ -0,0 +1,215 @@ +The Sequencizer User Guide +

    The Sequencizer User Guide

    Sequencizer may seem complex and daunting, +but it operates on a small number of powerful, flexible ideas: +Phases, anchors, and advancement.

    The power of Sequencizer +comes from the great flexibility it offers. +You can combine these simple ideas +to generate an enormous variety +of precisely defined control signals +to modulate the devices +in your VCV Rack patches.

    How Sequencizer Works

    Step Phases: Generate and Sustain

    1. Generate Phase. +Each step starts by generating a signal +that progresses +from the start anchor voltage +to the end anchor voltage. +The generate phase always occurs, +but may be interrupted +by a trigger, +depending on the INT control.
    2. Sustain Phase. +When a step finishes generating, +it optionally sustains +at the end anchor voltage +until a trigger occurs. +The SUST control +determines whether a step +executes its sustain phase.

    Step Anchors: Start and End Voltages

    A step generates +by interpolating +between the voltages +of its start and end anchor +over its duration. +At any moment during the generate phase, +the step emits a voltage +that is part-way between the voltages +reported by these anchors.

    An anchor’s voltage +is determined by its source and its mode.

    Anchor Sources. +An anchor can acquire its voltage from several sources, +selected by the SOURCE control +(the unnamed button above the anchor’s knob):

    • The A, B, or C input port
    • The LEVEL controls
    • The OUT port +(that is, Sequencizer’s previous output voltage)

    Anchor Modes. +The MODE control +(the unnamed button below the anchor’s knob) +determines when the anchor acquires its voltage.

    In SMPL mode, +the anchor samples its source +exactly once, +at the start of the step, +and always reports +this sampled voltage. +Any changes in the source voltage +are ignored by the anchor +while the step generates.

    In TRACK mode, +the anchor tracks its source, +and always reports +the source’s current voltage.

    Moving Targets. +Note that if an anchor is tracking its source, +the anchor’s voltage +can change while a step is active. +This means that the voltages +between which the step interpolates +can both be moving targets.

    Advancing from One Step to the Next

    The advancement controls +determine when the sequence advances +from one step to the next.

    Triggers. +While a step is active +(whether generating or sustaining), +it watches the state of the GATE, +and generates an internal trigger +whenever the GATE +satisfies the condition +specified by the TRIG setting. +(RISE, FALL, EDGE, HIGH, or LOW) +The INT and SUST controls +determine how the step responds +to these internal triggers.

    Interrupting the Generate Phase. +The INT control +specifies whether triggers interrupt the step. +If INT is ON, +a trigger that occurs while the step is generating:

    • interrupts the generate phase
    • bypasses the step’s sustain phase
    • advances to the next step

    If INT is OFF, +the step ignores triggers during its generate phase.

    Sustaining. +When a step finishes generating, +it optionally sustains +at the end anchor voltage +until a trigger occurs. +If SUST is ON +when a step finishes generating, +the step sustains until a trigger occurs. +While it sustains, +it emits its end anchor voltage. +If SUST is OFF, +the step skips its sustain phase, +and the sequence immediately advances to the next step.

    Techniques

    Controlling Advancement

    Sequencizer offers great flexibility and control +over how a sequence +advances from one step to the next.

    TechniqueTRIGINTSUSTImageNotes
    Externally ClockedanyONONAdvance when the GATE condition is satisfied, +regardless of what phase the step is executing. +Useful for creating +an externally-clocked step sequencer +or a sample-and-hold step.
    Uninterruptible: Fixed DurationN/AOFFOFFAdvance when the generate phase completes, +regardless of the condition of the GATE. +Useful for hold stages.
    Interruptible: Maximum DurationanyONOFFAdvance when the generate phase completes +or when the GATE condition is satisfied, +which ever happens first.
    Minimum DurationanyOFFONComplete the generate phase, +then sustain until the GATE condition is satisfied.
    SkippableLOWONOFFAdvance if the GATE is low at the start of the step +or becomes low while the step is active. +Useful for configuring +a sequence of attack, decay, and sustain stages +to jump immediately to the release stage +when the GATE falls.
    Generate + SustainLOWanyONUseful to combine decay and sustain in a single step.

    Controlling Voltages

    A step’s anchors +define the voltages between which +the step interpolates during its generate phase. +Each anchor has two possible modes and five possible sources. +This gives 100 possible combinations.

    Here are some of the more common configurations.

    TechniqueStart AnchorEnd AnchorImageNotes
    ConstantSMPL LEVELTRACK OUTEmit a specified constant voltage. +Useful to create a step sequencer.
    HoldSMPL OUTTRACK OUTHold at the the previous step's final voltage. +Useful for envelope sustain and hold stages.
    Sample and HoldSMPL any inputTRACK OUTHold at the voltage sampled from an input.
    Fixed Ramp or CurveSMPL LEVELSMPL LEVELProgress from one specified voltage to another. +Useful for an envelope attack stage (0V to 10V).
    Continuation Ramp or CurveSMPL OUTSMPL LEVELProgress from the previous step's final voltage +to a specified voltage. +Useful for an envelope decay stage (set LEVEL to sustain voltage) +or release stage (set LEVEL to 0V).
    PassthroughTRACK any inputTRACK same inputTrack and emit an input signal.
    Fade InSMPL any sourceTRACK any inputFade from the previous step's final voltage +to the selected input signal.
    Fade OutTRACK any inputSMPL any sourceFade from the selected input signal +to the specified voltage (or other source).
    CrossfadeTRACK an inputTRACK another inputFade from one input signal to another.

    NOTE: +If you’re surprised by +my advice to set the end anchor to TRACK OUT +for the constant, hold, and sample and hold techniques, +consider: +This advice makes it easier to experiment with different start sources. +Every time you select a new start source, +the end anchor will automatically follow along.

    NOTE: +If an anchor is set to TRACK its source, +the anchor’s voltage +can change while the step is active. +This means that the voltages +between which the step interpolates +can both be moving targets. +This can create some very surprising, very creative results. +Experiment!

    Controlling Sequences

    Pausing a Sequence. +To pause a sequence, +turn RUN off.

    Resuming a Sequence. +To resume a paused sequence, +turn RUN on.

    Retriggering Envelopes. +To retrigger an envelope +(that is, to interrupt an in-progress envelope and restart it from the beginning): +send a rising edge to both RESET and GATE simultaneously. +The rising RESET interrupts the current step, +even if it is ignoring the GATE. +Then the rising GATE immediately restarts the sequence.

    Note that a rising RESET signal +takes priority +over the steps’ INT settings. +As a result, +a rising RESET signal +interrupts even an “uninterruptible” step.

    Examples

    Envelope Generator Steps

    Attack Stage

    ParameterValueNotesImage
    TRIGLOWIf INT or SUST are ON, +experiment with other GATE conditions here. +If INT and SUST are both off, +this setting does not matter.
    INTONThis makes the step interruptible. +Set INT OFF to make it uninterruptible.
    SUSTOFFVariation: +To combine the step with a sustain stage, +turn SUST ON and set TRIG to LOW.
    Start AnchorSAMPL LEVELThe most common start voltage is 0V. +Alternatively, +use SAMPL OUT to start the attack at the previous step's final voltage.
    End AnchorSMPL LEVELThe most common start voltage is 10V.

    Hold Stage

    ParameterValueNotesImage
    TRIGLOWIf INT or SUST are ON, +experiment with other GATE conditions here. +If INT and SUST are both off, +this setting does not matter.
    INTONThis makes the step uninterruptible. +Set INT ON to make it interruptible.
    SUSTOFFVariation: +To combine the step with a sustain stage, +turn SUST ON and set TRIG to LOW. +This turns it into a "hold for at least the specified duration" stage.
    Start AnchorSAMPL OUTTo start the release at the previous step's final voltage.
    End AnchorTRACK OUTTo continue emitting the sampled voltage.

    Decay Stage

    ParameterValueNotesImage
    TRIGLOWIf INT or SUST are ON, +experiment with other GATE conditions here. +If INT and SUST are both off, +this setting does not matter.
    INTONThis makes the step interruptible. +Set INT OFF to make it uninterruptible.
    SUSTOFFVariation: +To combine the step with a sustain stage, +turn SUST ON and set TRIG to LOW.
    Start AnchorSAMPL OUTTo start the decay at the previous step's final voltage.
    End AnchorSMPL LEVELSet the LEVEL to the desired sustain voltage.

    Sustain Stage

    ParameterValueNotesImage
    TRIGLOWThe GATE condition that ends the sustain stage.
    INTONAdvance if the GATE is low +at any point during the generate phase.
    SUSTONIf the generate phase completes, +continue emitting the sampled voltage +until the GATE falls.
    Start AnchorSAMPL OUTSample the previous step's final voltage.
    End AnchorTRACK OUTTo continue emitting the sampled voltage.

    Release Stage

    ParameterValueNotesImage
    TRIGLOWIf INT or SUST are ON, +experiment with other GATE conditions here. +If INT and SUST are both off, +this setting does not matter.
    INTONThis makes the step interruptible. +Set INT OFF to make it uninterruptible.
    SUSTOFFVariation: +To combine the step with a sustain stage, +turn SUST ON and set TRIG to LOW.
    Start AnchorSAMPL OUTTo start the release at the previous step's final voltage.
    End AnchorSMPL LEVELThe most common end voltage is 0V.

    Step Sequencers

    Externally Clocked Step Sequencer

    To create a traditional, +externally-clocked step sequencer +that holds each level +until the GATE rises, +configure each step liks this:

    ParameterValueNotesImage
    TRIGRISERISE is the traditional GATE condition to use here, +but you can tune your step sequencer +by specifying any condition. +And you can use different conditions +for different steps.
    INTONAdvance if the GATE rises while generating.
    SUSTONIf the generate phase completes without interruption, +sustain until the GATE rises.
    Start AnchorSMPL LEVELSet the LEVEL to the desired voltage.
    End AnchorTRACK OUTTo continue emitting the same voltage.

    The INT and SUST settings +cause the step +to advance only when the GATE +satisfies the TRIG condition, +regardless of what phase (generate or sustain) +the step is executing. +This puts advancement +entirely under the control of the GATE.

    Timer-Controlled Step Sequencer

    To create a timer-controlled step sequencer +that holds each level for a specified duration, +configure each step like this:

    ParameterValueNotesImage
    INTOFFEmit the sampled voltage until the timer expires, +ignoring the GATE condition.
    SUSTOFFAdvance automatically when the timer expires.
    Start AnchorSMPL LEVELSet the LEVEL to the desired voltage.
    End AnchorTRACK OUTEmit a constant voltage.
    DURdesired durationThe duration of the step's timer.

    The INT and SUST settings +cause the step to ignore the GATE, +putting advancement entirely under the control +of the step’s DUR timer.

    Sample and Hold Sequencers

    Externally-Clocked Sample and Hold Sequencer

    To create a multi-step, externally-clocked +sample-and-hold sequencer +where each step advances on a different GATE condition, +configure each step liks this:

    ParameterValueNotesImage
    TRIGanyDifferent steps can advance on different GATE conditions.
    INTONAdvance if the GATE condition is satisfied while generating.
    SUSTONIf the generate phase completes without interruption, +sustain until the GATE condition is satisfied.
    Start AnchorSMPL any inputDifferent steps can sample different inputs.
    End AnchorTRACK OUTTo continue emitting the same voltage.

    The INT and SUST settings +cause the step +to advance only when the GATE +satisfies the TRIG condition, +regardless of what phase (generate or sustain) +the step is executing. +This puts advancement +entirely under the control of the GATE.

    Timer-Controlled Sample and Hold Sequencer

    To create a multi-step, timer-controlled sample-and-hold sequencer +where each step holds for a different duration, +configure each step liks this:

    ParameterValueNotesImage
    INTOFFEmit the sampled voltage until the timer expires, +ignoring the GATE condition.
    SUSTOFFAdvance automatically when the timer expires.
    Start AnchorSMPL any inputDifferent steps can sample different inputs
    End AnchorTRACK OUTEmit a constant voltage.
    DURdesired durationThe duration of the step's timer.

    The INT and SUST settings +cause the step to ignore the GATE, +putting advancement entirely under the control +of the step’s DUR timer.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/stage/index.html b/modules/stage/index.html index 2fe6404a..b00fd75a 100644 --- a/modules/stage/index.html +++ b/modules/stage/index.html @@ -1,178 +1,61 @@ - - - - - - -The Stage Module - - - - - -
    -
    -

    The Stage Module

    -
    -
    The Stage Faceplate -

    Generates a single envelope stage.

    -

    Combine +The Stage Module +

    The Stage Module

    The Stage Faceplate

    Generates a single envelope stage.

    Combine Stage, Booster Stage, Hostage, and Upstage modules to generate complex envelopes -with any number of stages.

    -

    See also:

    - -

    Controls

    -
      -
    • -

      LEVEL: +with any number of stages.

      See also:

      Controls

      • LEVEL: The voltage level at which each generated envelope stage ends. -The range is 0–10V.

        -
      • -
      • -

        CURVE: +The range is 0–10V.

      • CURVE: The curvature -of the envelope stage.

        -
      • -
      • -

        DURATION: +of the envelope stage.

      • DURATION: The duration of the envelope stage. The range is 10ms–10s, with the center position -giving a duration of 1s.

        -
      • -
      -

      Ports

      -
        -
      • -

        DEFER: +giving a duration of 1s.

      Ports

      • DEFER: When the DEFER gate signal is high, Stage defers to its IN signal, forwarding the IN signal -directly to the OUT output.

        -

        When it begins deferring, +directly to the OUT output.

        When it begins deferring, Stage abandons any envelope stage -it may have been generating.

        -
      • -
      • -

        TRIG: +it may have been generating.

      • TRIG: When triggered, Stage generates an envelope stage, -starting at the voltage sampled from the IN signal.

        -

        While Stage is deferring, -it ignores incoming triggers.

        -
      • -
      • -

        IN: +starting at the voltage sampled from the IN signal.

        While Stage is deferring, +it ignores incoming triggers.

      • IN: When Stage generates an envelope stage, the stage starts -at the voltage sampled from the IN signal.

        -

        While Stage is deferring, -it forwards the IN signal directly to its OUT output.

        -
      • -
      • -

        ACTIVE: +at the voltage sampled from the IN signal.

        While Stage is deferring, +it forwards the IN signal directly to its OUT output.

      • ACTIVE: A 10V gate signal indicating that Stage is either actively generating an envelope stage -or deferring to its IN signal.

        -
      • -
      • -

        EOC: +or deferring to its IN signal.

      • EOC: When Stage completes an envelope stage, it emits a 1 millisecond 10V pulse -at its EOC output.

        -
      • -
      • -

        OUT: +at its EOC output.

      • OUT: The generated envelope stage signal -or (when deferring) the IN signal.

        -
      • -
      -

      Notes

      -
        -
      • -

        While an envelope stage is in progress, +or (when deferring) the IN signal.

      Notes

      • While an envelope stage is in progress, all of the knobs are “live.” If you adjust a knob, Stage applies the new value -to the remainder of the stage.

        -
      • -
      • -

        Before Stage first becomes active +to the remainder of the stage.

      • Before Stage first becomes active (by either a trigger or a DEFER gate), it “tracks” its input by sending its IN voltage to its OUT port. Stage also enters this mode -when its DEFER gate falls (unless the TRIG port is high).

        -
      • -
      • -

        After Stage completes an envelope stage, +when its DEFER gate falls (unless the TRIG port is high).

      • After Stage completes an envelope stage, it “tracks” the LEVEL knob -by sending the LEVEL voltage to the OUT port.

        -
      • -
      -

      State Model

      -

      Stage State Model

      -

      TrackingInput Mode

      -

      Stage starts in TrackingInput mode. -While Stage is TrackingInput:

      -
        -
      • it is inactive
      • -
      • it “tracks” its input by sending its IN voltage to its OUT port
      • -
      • if DEFER rises, Stage enters Deferring mode
      • -
      • if TRIG rises, Stage enters Generating mode
      • -
      -

      Deferring Mode

      -

      Whatever mode Stage is in, +by sending the LEVEL voltage to the OUT port.

    State Model

    Stage State Model

    TrackingInput Mode

    Stage starts in TrackingInput mode. +While Stage is TrackingInput:

    • it is inactive
    • it “tracks” its input by sending its IN voltage to its OUT port
    • if DEFER rises, Stage enters Deferring mode
    • if TRIG rises, Stage enters Generating mode

    Deferring Mode

    Whatever mode Stage is in, whenever its DEFER gate rises, it enters Deferring mode. -While Stage is _Deferring:

    -
      -
    • it is active
    • -
    • it sends its IN voltage to its OUT port
    • -
    • it ignores its TRIG port
    • -
    -

    When the DEFER gate falls, -Stage resumes TrackingInput.

    -

    Generating Mode

    -

    If the TRIG port rises +While Stage is _Deferring:

    • it is active
    • it sends its IN voltage to its OUT port
    • it ignores its TRIG port

    When the DEFER gate falls, +Stage resumes TrackingInput.

    Generating Mode

    If the TRIG port rises while Stage is not Deferring, it begins Generating a stage. -While Stage is Generating:

    -
      -
    • it is active
    • -
    • it advances its phase and generates the appropriate voltage at its OUT port
    • -
    • if the stage completes, +While Stage is Generating:

      • it is active
      • it advances its phase and generates the appropriate voltage at its OUT port
      • if the stage completes, Stage initiates a short pulse on its EOC port -and enters TrackingLevel mode
      • -
      • if DEFER rises, Stage enters Deferring mode
      • -
      • if TRIG rises, Stage abandons the stage it is generating and begins a new one
      • -
      -

      TrackingLevel Mode

      -

      While Stage is TrackingLevel:

      -
        -
      • it is inactive
      • -
      • it sends the voltage of its LEVEL knob to its OUT port
      • -
      • if DEFER rises, Stage enters Deferring mode
      • -
      • if TRIG rises, Stage enters Generating mode
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +and enters TrackingLevel mode
  • if DEFER rises, Stage enters Deferring mode
  • if TRIG rises, Stage abandons the stage it is generating and begins a new one
  • TrackingLevel Mode

    While Stage is TrackingLevel:

    • it is inactive
    • it sends the voltage of its LEVEL knob to its OUT port
    • if DEFER rises, Stage enters Deferring mode
    • if TRIG rises, Stage enters Generating mode

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/swave/index.html b/modules/swave/index.html index ab4d4b83..0ff1507d 100644 --- a/modules/swave/index.html +++ b/modules/swave/index.html @@ -1,72 +1,18 @@ - - - - - - -The Swave Module - - - - - -
    -
    -

    The Swave Module

    -
    -
    The Swave Faceplate -

    A waveshaper with a unique sigmoid transfer function.

    -

    Note: -Swave does not apply anti-aliasing.

    -

    See also:

    -
      -
    • J and S Curves.
    • -
    • Normalized Tunable Sigmoid Function: +The Swave Module +

      The Swave Module

      The Swave Faceplate

      A waveshaper with a unique sigmoid transfer function.

      Note: +Swave does not apply anti-aliasing.

      See also:

      -

      Controls

      -
        -
      • -

        CURVE: +to shape its input signals.

      Controls

      • CURVE: The curvature of the transfer function. The shape switch (S / J) selects the shape -of the transfer function.

        -
      • -
      • -

        The range switch (UNI / BI) -selects the signal range on which Swave operates.

        -

        Swave clamps the input signal to the selected range -before shaping it.

        -
      • -
      -

      Ports

      -
        -
      • -

        IN: +of the transfer function.

      • The range switch (UNI / BI) +selects the signal range on which Swave operates.

        Swave clamps the input signal to the selected range +before shaping it.

      Ports

      • IN: The input signal to be shaped -by the transfer function.

        -
      • -
      • -

        OUT: -The shaped signal.

        -
      • -
      • -

        CV: +by the transfer function.

      • OUT: +The shaped signal.

      • CV: A control voltage signal -to modulate the CURVE parameter.

        -
      • -
      -
      -
      -
      -

      © 2017–2022 Dale H. Emery

      -
      - - \ No newline at end of file +to modulate the CURVE parameter.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/tapers/index.html b/modules/tapers/index.html index 041e91c3..ba263252 100644 --- a/modules/tapers/index.html +++ b/modules/tapers/index.html @@ -1,89 +1,35 @@ - - - - - - -The Tapers Module - - - - - -
    -
    -

    The Tapers Module

    -
    -
    The Tapers Faceplate -

    A pair of modulatable knobs with adjustable, modulatable tapers.

    -

    A +The Tapers Module +

    The Tapers Module

    The Tapers Faceplate

    A pair of modulatable knobs with adjustable, modulatable tapers.

    A taper is a transfer function that defines the relationship between the position of the knob -and the device’s output value.

    -

    Tapers can produce +and the device’s output value.

    Tapers can produce linear, J-shaped, or S-shaped tapers, -as well as inverted J and S tapers.

    -

    WARNING: +as well as inverted J and S tapers.

    WARNING: Modulating a LEVEL knob beyond its normal range can generate outputs far outside the knob’s normal range. This is especially true as the CURVE knob -approaches either extreme.

    -

    Controls

    -
      -
    • -

      LEVEL: +approaches either extreme.

      Controls

      • LEVEL: Selects a position along the transfer function -defined by the TAPER panel.

        -
      • -
      • -

        CURVE: +defined by the TAPER panel.

      • CURVE: The curvature of the transfer function -applied to the LEVEL knob.

        -

        The center position +applied to the LEVEL knob.

        The center position produces a linear taper. Rotation away from the center increases the the curvature of the transfer function. Counterclockwise rotation -inverts the shape of the curve.

        -

        The shape switch (S / J) +inverts the shape of the curve.

        The shape switch (S / J) selects the general shape -of the transfer function.

        -
      • -
      • -

        UNI / BI: +of the transfer function.

      • UNI / BI: The voltage range of the output signal. 0 to 10V (UNI) -or -5 to 5V (BI).

        -
      • -
      -

      Ports

      -
        -
      • -

        OUT: +or -5 to 5V (BI).

      Ports

      • OUT: The output voltage, determined by applying the transfer function -to the position of the LEVEL knob.

        -
      • -
      • -

        CV: +to the position of the LEVEL knob.

      • CV: A control voltage signal -to modulate the associated parameter. Each CV input has an attenuverter.

        -
      • -
      -

      Using Tapers

      -

      TBD

      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +to modulate the associated parameter. Each CV input has an attenuverter.

    Using Tapers

    TBD

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/truth/index.html b/modules/truth/index.html index 4a041d1b..411ecc81 100644 --- a/modules/truth/index.html +++ b/modules/truth/index.html @@ -1,146 +1,54 @@ - - - - - - -The Truth Modules - - - - - -
    -
    -

    The Truth Modules

    -
    -
    The Truth 3 Faceplate -

    Customizable truth tables with 2, 3, or 4 inputs.

    -

    Truth 3 is shown, and described below. +The Truth Modules +

    The Truth Modules

    The Truth 3 Faceplate

    Customizable truth tables with 2, 3, or 4 inputs.

    Truth 3 is shown, and described below. Truth 2 and Truth 4 offer similar functionality, -with 2 and 4 inputs, respectively.

    -

    Controls

    -

    Inputs

    -
      -
    • -

      A, B, and C/GATE: +with 2 and 4 inputs, respectively.

      Controls

      Inputs

      • A, B, and C/GATE: The input signals for the truth table. A voltage above 0.5V (half a volt) is considered high. A voltage of 0.5V or below -is considered low.

        -

        Beside each input is an override button -that sets the input signal high while pressed.

        -
      • -
      -

      The Truth Table

      -

      Columns

      -
        -
      • -

        The A and B columns +is considered low.

        Beside each input is an override button +that sets the input signal high while pressed.

      The Truth Table

      Columns

      • The A and B columns represent the A and B inputs. -The column is true if the input is high.

        -
      • -
      • -

        The third column represents the condition of the C/GATE input. +The column is true if the input is high.

      • The third column represents the condition of the C/GATE input. The button at the top of the column selects a condition to apply to the C/GATE signal. When the signal satisfies the condition, -the column is true.

        -

        The conditions are:

        -
          -
        • HIGH: The gate is high.
        • -
        • LOW: The gate is low.
        • -
        • RISE: The gate rises.
        • -
        • FALL: The gate falls.
        • -
        • EDGE: The gate changes (rises or falls).
        • -
        -

        See Usage Notes for ideas about how to use the conditions.

        -
      • -
      • -

        The Q column +the column is true.

        The conditions are:

        • HIGH: The gate is high.
        • LOW: The gate is low.
        • RISE: The gate rises.
        • FALL: The gate falls.
        • EDGE: The gate changes (rises or falls).

        See Usage Notes for ideas about how to use the conditions.

      • The Q column selects the result of the truth table -for each possible state of the inputs.

        -
      • -
      -

      Rows

      -
        -
      • -

        Below the dark header row, +for each possible state of the inputs.

      Rows

      • Below the dark header row, the truth table has eight more rows, -one for each possible state of the inputs.

        -
      • -
      • -

        In each row, +one for each possible state of the inputs.

      • In each row, the first three columns -represent a possible state of the three inputs.

        -
      • -
      • -

        The button in the Q column +represent a possible state of the three inputs.

      • The button in the Q column selects the result of the truth table when the inputs match the row’s state. -The possible results are:

        -
          -
        • T: Emit 10V.
        • -
        • F: Emit 0V.
        • -
        • Q: Leave the output unchanged.
        • -
        • ¬Q: Toggle the output.
        • -
        -
      • -
      -

      Outputs

      -
        -
      • -

        The Q output +The possible results are:

        • T: Emit 10V.
        • F: Emit 0V.
        • Q: Leave the output unchanged.
        • ¬Q: Toggle the output.

      Outputs

      • The Q output emits the result of the truth table for the given inputs. 10V represents true, -and 0V represents false.

        -
      • -
      • -

        ¬Q: emits the negation of Q.

        -
      • -
      • -

        Beside each output is a button +and 0V represents false.

      • ¬Q: emits the negation of Q.

      • Beside each output is a button that momentarily sets the output to true -and the other output to false.

        -
      • -
      -

      Usage Notes

      -

      Level-Triggered vs Edge-Triggered

      -

      Level-Sensitive. +and the other output to false.

    Usage Notes

    Level-Triggered vs Edge-Triggered

    Level-Sensitive. The HIGH and LOW conditions make the table sensitive to the level of the C/GATE input. This makes the C/GATE input useful as an enable signal, -such as for a D Latch.

    -

    Edge-Triggered. +such as for a D Latch.

    Edge-Triggered. The RISE, FALL, and EDGE conditions make the table edge-triggered. This makes the C/GATE input useful as a clock signal, allowing changes only at precise moments, -when the clock rises or falls.

    -

    Note that RISE, FALL, and EDGE -are single sample events.

    -

    Caution: Selecting the ¬Q Result

    -

    Because the ¬Q result +when the clock rises or falls.

    Note that RISE, FALL, and EDGE +are single sample events.

    Caution: Selecting the ¬Q Result

    Because the ¬Q result causes the table’s output to toggle, it tends to be useful only for edge-triggered rows. -That is, only when:

    -
      -
    • The C/GATE button +That is, only when:

      • The C/GATE button selects an edge-triggered condition -(RISE, FALL, or EDGE).
      • -
      • The row’s value for the gate column is T.
      • -
      -

      To see why, consider: +(RISE, FALL, or EDGE).

    • The row’s value for the gate column is T.

    To see why, consider: If the row is level-triggered, it might be selected for many samples in a row. @@ -148,11 +56,4 @@

    Caution: Selecting the ¬Q Result

    the output toggles, producing a square wave at the Nyquist frequency. -That’s probably not what you want.

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +That’s probably not what you want.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/upstage/index.html b/modules/upstage/index.html index b358acd9..ee55c67c 100644 --- a/modules/upstage/index.html +++ b/modules/upstage/index.html @@ -1,117 +1,43 @@ - - - - - - -The Upstage Module - - - - - -
    -
    -

    The Upstage Module

    -
    -
    The Upstage Faceplate -

    Adds special-purpose controls +The Upstage Module +

    The Upstage Module

    The Upstage Faceplate

    Adds special-purpose controls for envelopes generated by Stage, Booster Stage, and Hostage -modules.

    -

    Combine +modules.

    Combine Stage, Booster Stage, Hostage, and Upstage modules to generate complex envelopes -with any number of stages.

    -

    Use an Upstage module to:

    -
      -
    • Set the starting voltage for an envelope.
    • -
    • Manually trigger an envelope.
    • -
    • Configure an envelope that automatically retriggers when it completes.
    • -
    • Suppress incoming triggers while an envelope is in progress.
    • -
    -

    For details, see:

    - -

    Controls

    -
      -
    • -

      LEVEL: -The voltage sent to the OUT output.

      -

      The polarity switch (UNI / BI) +with any number of stages.

      Use an Upstage module to:

      • Set the starting voltage for an envelope.
      • Manually trigger an envelope.
      • Configure an envelope that automatically retriggers when it completes.
      • Suppress incoming triggers while an envelope is in progress.

      For details, see:

      Controls

      • LEVEL: +The voltage sent to the OUT output.

        The polarity switch (UNI / BI) selects the range of the LEVEL knob: Either unipolar control voltage (0 to 10V) -or bipolar control voltage (-5 to 5V).

        -
      • -
      • -

        WAIT button: +or bipolar control voltage (-5 to 5V).

      • WAIT button: Suppresses triggers -from both the TRIG input and the TRIG button.

        -
      • -
      • -

        TRIG button: +from both the TRIG input and the TRIG button.

      • TRIG button: While pressed, offers 10V to the TRIG output. -While not pressed, offers 0V.

        -

        This button is ignored +While not pressed, offers 0V.

        This button is ignored if the WAIT gate signal is high -or the WAIT button is pressed.

        -
      • -
      -

      Ports

      -
        -
      • -

        WAIT: +or the WAIT button is pressed.

      Ports

      • WAIT: A gate signal that, when high, suppresses incoming triggers -from both the TRIG input and the TRIG button.

        -
      • -
      • -

        TRIG (input): +from both the TRIG input and the TRIG button.

      • TRIG (input): The incoming trigger signal -offered to the TRIG output.

        -

        This signal is ignored +offered to the TRIG output.

        This signal is ignored if the WAIT gate signal is high -or the WAIT button is pressed.

        -
      • -
      • -

        TRIG (output): +or the WAIT button is pressed.

      • TRIG (output): Emits either the TRIG input signal or the TRIG button voltage, -whichever is greater.

        -

        If the WAIT gate signal is high +whichever is greater.

        If the WAIT gate signal is high or the WAIT button is pressed, this output emits 0V regardless of the value of -TRIG signal and the TRIG button.

        -
      • -
      • -

        OUT: -Sends the voltage set by the (CV-modulated) LEVEL knob.

        -
      • -
      • -

        CV: +TRIG signal and the TRIG button.

      • OUT: +Sends the voltage set by the (CV-modulated) LEVEL knob.

      • CV: A control voltage signal -to modulate the LEVEL parameter.

        -
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +to modulate the LEVEL parameter.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/xycloid/index.html b/modules/xycloid/index.html index 5826935a..278380cf 100644 --- a/modules/xycloid/index.html +++ b/modules/xycloid/index.html @@ -1,48 +1,15 @@ - - - - - - -The Xycloid Module - - - - - -
    -
    -

    The Xycloid Module

    -
    -
    The Xycloid Faceplate -

    Xycloid +The Xycloid Module +

    The Xycloid Module

    The Xycloid Faceplate

    Xycloid traces a fixed point on the edge a circle rolling along the inside or outside -of another circle.

    -

    The resulting two-dimensional shape -generates a pair of complex, evolving, pulsing LFO signals.

    -

    See:

    - -

    Controls

    -
      -
    • -

      SPEED: -The throb cycle frequency.

      -
    • -
    • -

      RATIO: +of another circle.

      The resulting two-dimensional shape +generates a pair of complex, evolving, pulsing LFO signals.

      See:

      Controls

      • SPEED: +The throb cycle frequency.

      • RATIO: The number of wobble cycles -per throb cycle.

        -

        Note: +per throb cycle.

        Note: With the IN / OUT switch in the center position, the RATIO knob @@ -54,114 +21,55 @@

        Controls

        as the throb angle. Counterclockwise rotation advances the wobble angle -in the opposite direction.

        -
      • -
      • -

        FREE / LOCK: +in the opposite direction.

      • FREE / LOCK: Determines whether to round the RATIO value -to the nearest integer.

        -

        LOCK rounds the RATIO value +to the nearest integer.

        LOCK rounds the RATIO value to the nearest integer, causing Xycloid’s pattern of accents -to repeat on every throb cycle.

        -

        FREE allows non-integer RATIO values, +to repeat on every throb cycle.

        FREE allows non-integer RATIO values, which lets the accents -vary from one throb cycle to the next.

        -
      • -
      • -

        DEPTH: -The dominance of the wobble cycle in the output signals.

        -
      • -
      • -

        IN / OUT: +vary from one throb cycle to the next.

      • DEPTH: +The dominance of the wobble cycle in the output signals.

      • IN / OUT: Determines the direction in which the wobble angle advances -compared to the throb angle.

        -

        IN advances the wobble angle +compared to the throb angle.

        IN advances the wobble angle in the same direction as the throb angle. This produces “inward” nodes when the X and Y signals -are plotted on an X/Y graph.

        -

        OUT advances the wobble angle +are plotted on an X/Y graph.

        OUT advances the wobble angle in the opposite direction from the throb angle. This produces “outward” nodes when the X and Y signals -are plotted on an X/Y graph.

        -

        With this switch in the center position +are plotted on an X/Y graph.

        With this switch in the center position the RATIO knob determines the direction -in which the wobble angle advances.

        -
      • -
      • -

        PHASE: -Offsets the phase of the wobble angle.

        -

        This has the effect +in which the wobble angle advances.

      • PHASE: +Offsets the phase of the wobble angle.

        This has the effect of shifting the accents produced when the wobble and throb cycles -peak.

        -
      • -
      -

      Ports

      -
        -
      • -

        X OUT and Y OUT: -The output signals.

        -

        The polarity switch (UNI / BI) +peak.

      Ports

      • X OUT and Y OUT: +The output signals.

        The polarity switch (UNI / BI) selects the voltage range of the associated output signal. 0 to 10V (UNI) -or -5 to 5V (BI).

        -

        The GAIN knob applies gain (from 0 to 2) -to the signal.

        -

        Xycloid selects the range before applying the gain.

        -
      • -
      • -

        CV: +or -5 to 5V (BI).

        The GAIN knob applies gain (from 0 to 2) +to the signal.

        Xycloid selects the range before applying the gain.

      • CV: A control voltage signal -to modulate the associated parameter. Some CV signals have attenuverters.

        -
      • -
      -

      Using Xycloid

      -
        -
      • Adjust the SPEED knob to control the frequency of the throb cycle, and -therefore the frequency of the overall pattern.
      • -
      • Adjust the RATIO knob to control the number of wobble cycles within each -throb cycle.
      • -
      • Adjust the DEPTH knob to control whether the throb cycle, the wobble cycle, -or neither cycle dominates the overall pattern
      • -
      • Adjust the PHASE knob to shift the position of the wobbles within the throb -cycle, which determines where the accents fall within each throb.
      • -
      • FIXED mode produces a whole number of wobbles for each throb. As a result, -the pattern of accents repeats exactly from one throb cycle to the next.
      • -
      • FREE mode allows the pattern of wobbles to drift over time. This can -create yet another, longer cycle in the pattern of accents.
      • -
      • For extra chaos, modulate Xycloid’s controls.
      • -
      • For extra, extra chaos, use Xycloid’s outputs to modulate its own controls.
      • -
      -

      Xycloid’s X and Y outputs are always similar, but never identical to +to modulate the associated parameter. Some CV signals have attenuverters.

    Using Xycloid

    • Adjust the SPEED knob to control the frequency of the throb cycle, and +therefore the frequency of the overall pattern.
    • Adjust the RATIO knob to control the number of wobble cycles within each +throb cycle.
    • Adjust the DEPTH knob to control whether the throb cycle, the wobble cycle, +or neither cycle dominates the overall pattern
    • Adjust the PHASE knob to shift the position of the wobbles within the throb +cycle, which determines where the accents fall within each throb.
    • FIXED mode produces a whole number of wobbles for each throb. As a result, +the pattern of accents repeats exactly from one throb cycle to the next.
    • FREE mode allows the pattern of wobbles to drift over time. This can +create yet another, longer cycle in the pattern of accents.
    • For extra chaos, modulate Xycloid’s controls.
    • For extra, extra chaos, use Xycloid’s outputs to modulate its own controls.

    Xycloid’s X and Y outputs are always similar, but never identical to each other. You can use relationship to create interesting interactions -between parameters:

    -
      -
    • Modulate two closely related parameters.
    • -
    • Modulate two parameters that have nothing to do with each other.
    • -
    • Modulate the same parameter on different modules.
    • -
    -

    Plotting Xycloid

    -

    When plotted on a two-dimensional graph, +between parameters:

    • Modulate two closely related parameters.
    • Modulate two parameters that have nothing to do with each other.
    • Modulate the same parameter on different modules.

    Plotting Xycloid

    When plotted on a two-dimensional graph, Xycloid’s X and Y signals produce a visually pleasing shape, which can be either a hypotrochoid or an -epitrochoid.

    -

    To view the shape that Xycloid produces, connect its X and Y outputs to a +epitrochoid.

    To view the shape that Xycloid produces, connect its X and Y outputs to a Scope’s X and Y inputs. Set the scope to X x Y mode. Note that the -scope’s X/Y mode can also be interesting.

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +scope’s X/Y mode can also be interesting.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/modules/xycloid/v0.6.1/index.html b/modules/xycloid/v0.6.1/index.html new file mode 100644 index 00000000..bcca54bf --- /dev/null +++ b/modules/xycloid/v0.6.1/index.html @@ -0,0 +1,82 @@ +Obsolete v0.6.1 Xycloid Module +

    Obsolete v0.6.1 Xycloid Module

    The Xycloid Panel

    Generates a cyclically related pair of compound LFO signals.

    Check the usage guide.

    Or better yet, just play with the knobs.

    Controls

    • RATIO: +Determines the number of “lobes” or “cusps” or “nodes” in the shape.

    • DEPTH: +How far the shape extends from its outer edge.

      Note that with the knob at either extreme, +the shape is a circle.

    • IN / OUT: +This “curl direction” switch +determines whether the lobes curl +toward the inside or the outside of the shape.

      It also determines the range of the RATIO knob. +With the switch set to IN or OUT, +the RATIO knob ranges from 0 to 16 lobes. +With the switch in the center, +the RATIO knob ranges from 16 inward lobes +(fully counterclockwise) +to 16 outward lobes +(fully clockwise).

    • SPEED: +The speed at which the shape is drawn. +Turn the knob counterclockwise to reverse the shape’s direction.

      Note that the RATIO knob +(and to some extent the DEPTH knob) +can also affect the speed +in counterintuitive ways.

    Ports

    • X OUT and Y OUT: +The output signals.

      The polarity switch (UNI / BI) +selects the nominal range of the signal: +Either 0 to 10V (UNI) +or -5 to 5V (BI).

      The GAIN knob applies gain (from 0 to 2) +to the signal.

      The range is selected before gain is applied.

    • CV: +Control voltage signal that modulates the associated knob. +The modulation is calibrated so that:

      • A 0V CV signal yields the value of the knob.
      • A 5V CV signal yields the value +as if the knob were rotated 50% +clockwise +of its actual position.
      • A -5V CV signal yields the value +as if the knob were rotated 50% +counterclockwise +of its actual position.

      Some of the CV ports +are accompanied by a small attenuverter (- +) knob. +This knob adjusts the strength and direction +of the the CV signal’s effect +on the modulated knob.

    Using Xycloid

    1. Choose one or two Rack modules that you want to modulate.
    2. Choose two parameters that have CV modulation.
    3. Connect Xycloid’s X output to one parameter’s CV input +and the Y output to the other’s.
    4. (Optional) +To view the shape that Xycloid produces, +connect its X and Y outputs to a Scope’s X and Y inputs. +Set the scope to XxY mode. +(X/Y mode can also be interesting.)
    5. Play with the knobs.
    6. For extra chaos, +modulate Xycloid’s controls.
    7. For extra, extra chaos, +use Xycloid’s outputs +to modulate its own controls.

    The Audible Instruments Macro Oscillator +is a fantastic choice for exploring what Xycloid can do. +Attach Xycloid’s X and Y outputs +to the Macro Oscillator’s TIMBRE and COLOR inputs. +Modulating V/OCT and FM is also fun.

    Then play with the knobs.

    More stuff to try:

    • Modulate two closely related parameters.
    • Modulate two parameters that have nothing to do with each other.
    • Modulate the same parameter on different modules. +For example, +modulate the PWM input on two Fundamental VCO-1s. +Or the FM inputs.

    Examples

    The Default Settings

    The default settings +draw a shape +with eight lobes that touch in the center:

    Xycloid Default Settings

    Adjusting the Ratio

    With the switch IN or OUT, +the center position on the ratio knob draws eight lobes:

    Xycloid Default Settings

    A lower ratio draws fewer lobes:

    Xycloid Default Settings

    A higher ratio draws more lobes:

    Xycloid Default Settings

    Adjusting the Depth

    With a lower depth, +the lobes never stray far +from the outer edge of the shape:

    Xycloid Default Settings

    As depth increases, +the lobes dip closer to the center of the shape:

    Xycloid Default Settings

    As the depth approaches the center position, +the lobes approach the center of the shape:

    Xycloid Default Settings

    With the depth in the center position, +each lobe touches the center of the shape:

    Xycloid Default Settings

    As depth increases, +each lobe loops around the center of the shape:

    Xycloid Default Settings

    Adjusting the Curl Direction (the IN / OUT Switch)

    With the switch OUT, +the lobes curl outward:

    Xycloid Default Settings

    With the switch IN, +the lobes curl inward:

    Xycloid Default Settings

    With the switch in the center, +the RATIO knob determines +which way the lobes curl.

    My Inspiration

    Okay, so remember when you were a kid, +and you had a toy +where you stuck a pen in a hole in a little plastic gear +and you rolled the gear around inside a plastic ring +to draw fun shapes?

    That’s what Xycloid does.

    If you want to know the math, +look up +epitrochoid +and +hypotrochoid.

    But, seriously, don’t worry about that.

    Just play with the knobs.

    The Name

    There is a kind of shape called a cycloid. +Technically, +Xycloid doesn’t draw those. +Well, +technically, +it does. +Sort of.

    But more preciesely, +Xycloid draws centered trochoids.

    So if the module draws centered trochoids, +why, oh, why +did I call Xycloid?

    Because would you load a module called Centered Trochoid?

    No.

    No, you would not.

    But don’t worry about that.

    Just play with the knobs.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/release-notes/index.html b/release-notes/index.html index 25058844..28d91b47 100644 --- a/release-notes/index.html +++ b/release-notes/index.html @@ -1,243 +1,29 @@ - - - - - - -Release Notes - - - - - -
    -
    -

    Release Notes

    -
    -

    Version 2.0.3

    -

    February 2022

    -
      -
    • Sequencizer +Release Notes +

      Release Notes

      Version 2.0.3

      February 2022

      • Sequencizer controls and panel elements are now properly positioned. -(This time I really mean it.)
      • -
      -

      Version 2.0.2

      -

      January 2022

      -

      Version 2.0.2

      January 2022

      • Sequencizer now correctly uses the global LEVEL knob -to attenuate the current step’s START and END levels.
      • -
      • Sequencizer +to attenuate the current step’s START and END levels.
      • Sequencizer and Scannibal controls and panel elements -are now properly aligned.
      • -
      -

      Version 2.0.1

      -

      December 2021

      -
        -
      • Added four new multiplier ranges to Func and Func 6: -0–5, ±5, 0–10, and ±10.
      • -
      • Added a signal level range to Swave, +are now properly aligned.

      Version 2.0.1

      December 2021

      • Added four new multiplier ranges to Func and Func 6: +0–5, ±5, 0–10, and ±10.
      • Added a signal level range to Swave, so it can now operate on unipolar signals -in addition to bipolar signals.
      • -
      -

      Version 2.0.0

      -

      November 2021

      -
        -
      • Updated all modules to be compatible with VCV Rack 2.
      • -
      • Hid the Curve Sequencer modules from the module browser. -Use Sequencizer instead.
      • -
      -

      Version 1.5.1

      -

      November 2020

      -
        -
      • Updated the Truth modules -
          -
        • Changed the mechanism for making a truth table depend on its previous state (Q). +in addition to bipolar signals.

        Version 2.0.0

        November 2021

        • Updated all modules to be compatible with VCV Rack 2.
        • Hid the Curve Sequencer modules from the module browser. +Use Sequencizer instead.

        Version 1.5.1

        November 2020

        • Updated the Truth modules
          • Changed the mechanism for making a truth table depend on its previous state (Q). This change removes the A/Q button from column 1 and gives each result button two additional options: Q and ¬Q. This allows creating a state-dependent truth table -with fewer columns.
          • -
          • Taught the modules how to upgrade existing presets -to use the new result options instead of the A/Q button.
          • -
          • Added override buttons to the Q and ¬Q outputs.
          • -
          • Moved each preset to the next lower-ranked Truth module.
          • -
          • Added a Truth 4 preset that implements a D latch with set and reset.
          • -
          -
        • -
        -

        Version 1.5.0

        -

        November 2020

        - -

        Version 1.4.0

        -

        November 2020

        -
          -
        • Added Scannibal 4.
        • -
        • Added Scannibal 8.
        • -
        • Added Scannibal 16.
        • -
        -

        Version 1.3.0

        -

        October 2020

        -
          -
        • Added Sequencizer 4.
        • -
        • Added Sequencizer 8.
        • -
        • Added Sequencizer 16.
        • -
        • Changed the presentation of “stepper” controls.
        • -
        -

        Version 1.2.0

        -

        December 2019

        -
          -
        • Added three new modes to the Curve Sequencer modules: -
            -
          • INPUT mode copies the IN signal to the OUT port.
          • -
          • LEVEL mode copies the LEVEL voltage to the OUT port.
          • -
          • CURVE mode generates a curve that gradually approaches the IN signal.
          • -
          -
        • -
        -

        Version 1.1.1

        -

        November 2019

        -
          -
        • Fixed an error in the Ranger GUI.
        • -
        -

        Version 1.1.0

        -

        November 2019

        - -

        Version 1.0.5

        -

        August 2019

        -
          -
        • Stage, Booster Stage, and Hostage. -
            -
          • Fixed a defect that prevented these modules from retriggering -while a stage was in progress.
          • -
          -
        • -
        -

        Version 1.0.4

        -

        July 2019

        -
          -
        • Fuzzy Logic H and Fuzzy Logic Z -
            -
          • Added a UNI / BI switch +with fewer columns.
          • Taught the modules how to upgrade existing presets +to use the new result options instead of the A/Q button.
          • Added override buttons to the Q and ¬Q outputs.
          • Moved each preset to the next lower-ranked Truth module.
          • Added a Truth 4 preset that implements a D latch with set and reset.

        Version 1.5.0

        November 2020

        Version 1.4.0

        November 2020

        • Added Scannibal 4.
        • Added Scannibal 8.
        • Added Scannibal 16.

        Version 1.3.0

        October 2020

        • Added Sequencizer 4.
        • Added Sequencizer 8.
        • Added Sequencizer 16.
        • Changed the presentation of “stepper” controls.

        Version 1.2.0

        December 2019

        • Added three new modes to the Curve Sequencer modules:
          • INPUT mode copies the IN signal to the OUT port.
          • LEVEL mode copies the LEVEL voltage to the OUT port.
          • CURVE mode generates a curve that gradually approaches the IN signal.

        Version 1.1.1

        November 2019

        • Fixed an error in the Ranger GUI.

        Version 1.1.0

        November 2019

        Version 1.0.5

        August 2019

        • Stage, Booster Stage, and Hostage.
          • Fixed a defect that prevented these modules from retriggering +while a stage was in progress.

        Version 1.0.4

        July 2019

        • Fuzzy Logic H and Fuzzy Logic Z
          • Added a UNI / BI switch to allow operating -on audio and other bipolar signals (-5V to 5V).
          • -
          • The OR and NOR output port widgets for inputs C and D -were incorrectly connected to the XOR and XNOR outputs.
          • -
          -
        • -
        -

        Version 1.0.3

        -

        June 2019

        - -

        Version 1.0.2

        -

        June 2019

        - -

        Version 1.0.1

        -

        June 2019

        -
          -
        • Xycloid -
            -
          • Added phase CV with attenuverter.
          • -
          • Reordered controls to match Blossom.
          • -
          -
        • -
        • Swave -
            -
          • Added a CV attenuverter.
          • -
          -
        • -
        -

        Version 1.0.0

        -

        May 2019

        -
          -
        • All modules -
            -
          • Added parameter tooltips.
          • -
          • Added the ability to specify parameter values via keyboard.
          • -
          -
        • -
        • Ranger -
            -
          • Renamed and reoriented the limit controls to better convey their effects on the LEVEL knob.
          • -
          -
        • -
        • Swave -
            -
          • Restored the shape switch.
          • -
          -
        • -
        -

        Release 0.6.5

        -

        March 2019

        -
          -
        • Added Blossom.
        • -
        • Fixed a defect that caused the envelope generator modules +on audio and other bipolar signals (-5V to 5V).
        • The OR and NOR output port widgets for inputs C and D +were incorrectly connected to the XOR and XNOR outputs.

      Version 1.0.3

      June 2019

      Version 1.0.2

      June 2019

      Version 1.0.1

      June 2019

      • Xycloid
        • Added phase CV with attenuverter.
        • Reordered controls to match Blossom.
      • Swave
        • Added a CV attenuverter.

      Version 1.0.0

      May 2019

      • All modules
        • Added parameter tooltips.
        • Added the ability to specify parameter values via keyboard.
      • Ranger
        • Renamed and reoriented the limit controls to better convey their effects on the LEVEL knob.
      • Swave
        • Restored the shape switch.

      Release 0.6.5

      March 2019

      • Added Blossom.
      • Fixed a defect that caused the envelope generator modules to sometimes generate a single sample of the wrong voltage. When used to modulate volume, the result was a very nasty click. A huge thank you -to Omri Cohen for finding and reporting this problem.
      • -
      -

      Release 0.6.4

      -

      January 2019

      -
        -
      • Added Func.
      • -
      • Added Func 6.
      • -
      • Significantly improved performance of the envelope generator modules.
      • -
      -

      Release 0.6.3

      -

      November 2018

      - -

      Release 0.6.2

      -

      October 2018

      -
        -
      • Added a PHASE knob and a RATIO quantizer switch -to Xycloid.
      • -
      -

      Release 0.6.1

      -

      July 2018

      - -

      Release 0.6.0

      -

      March 2018

      - -

      Release 0.5.0

      -

      February 2018

      - -
      -
      -
      -

      © 2017–2022 Dale H. Emery

      -
      - - \ No newline at end of file +to Omri Cohen for finding and reporting this problem.

    Release 0.6.4

    January 2019

    • Added Func.
    • Added Func 6.
    • Significantly improved performance of the envelope generator modules.

    Release 0.6.3

    November 2018

    Release 0.6.2

    October 2018

    • Added a PHASE knob and a RATIO quantizer switch +to Xycloid.

    Release 0.6.1

    July 2018

    Release 0.6.0

    March 2018

    Release 0.5.0

    February 2018

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/technical/curves/index.html b/technical/curves/index.html index f8ed7522..b3161568 100644 --- a/technical/curves/index.html +++ b/technical/curves/index.html @@ -1,44 +1,18 @@ - - - - - - -J and S Curves - - - - - -
    -
    -

    J and S Curves

    -
    -

    Several of the DHE Modules +J and S Curves +

    J and S Curves

    Several of the DHE Modules apply a curved transfer function to produce their output. -The transfer function comes in two shapes:

    - -

    Stage +The transfer function comes in two shapes:

    Stage and Booster Stage can generate J-shaped envelope stages. In addition, Booster Stage -can generate S-shaped stages.

    -

    Swave +can generate S-shaped stages.

    Swave can apply a J- or S-shaped transfer function -to shape its input.

    -

    Tapers +to shape its input.

    Tapers can apply a J- or S-shaped taper -to the position of its LEVEL knob.

    -

    Each module has a knob +to the position of its LEVEL knob.

    Each module has a knob that determines the sign (positive or negative) and magnitude of the curvature. @@ -46,170 +20,42 @@

    Negative curvature inverts the shape. Extreme curvature (positive or negative) creates a curve -so sharp as to be nearly square.

    -

    Each transfer function (J or S, positive or negative) +so sharp as to be nearly square.

    Each transfer function (J or S, positive or negative) is produced by Dino Dini’s beautiful -normalized tunable sigmoid function.

    -

    J Curves

    -

    Positive J Curves

    -

    Rotating the CURVE knob +normalized tunable sigmoid function.

    J Curves

    Positive J Curves

    Rotating the CURVE knob clockwise from the center -pushes the steep part of the curve to the right.

    - - - - - - - - - - - - - - - - - -
    - - - - - -
    -

    Note: +pushes the steep part of the curve to the right.

    Note: Extreme positive curvature makes the curve almost -square at the end.

    -

    Negative J Curves

    -

    Rotating the CURVE knob +square at the end.

    Negative J Curves

    Rotating the CURVE knob counterclockwise from the center -pushes the steep part of the curve to the left.

    - - - - - - - - - - - - - - - - - -
    - - - - - -
    -

    Notes:

    -
      -
    • Each curve +pushes the steep part of the curve to the left.

      Notes:

      • Each curve actually starts at the same voltage. But as the curvature becomes more negative, the rise is so fast that the Scope -can’t display the initial value.
      • -
      • With the knob fully counterclockwise, +can’t display the initial value.
      • With the knob fully counterclockwise, the rise is so fast that the Scope can’t show it at all. -That’s why there’s no image.
      • -
      • Extreme positive curvature +That’s why there’s no image.
      • Extreme positive curvature makes the curve almost square at the start. Given that there’s no image, you’ll have to trust me about this. -Or try it yourself.
      • -
      -

      S Curves

      -

      Positive S Curves

      -

      Rotating the CURVE knob +Or try it yourself.

    S Curves

    Positive S Curves

    Rotating the CURVE knob clockwise from the center -steepens the middle of the S curve.

    - - - - - - - - - - - - - - - - - -
    - - - - - -
    -

    Note: +steepens the middle of the S curve.

    Note: Extreme positive curvature makes the curve almost -square just before and after the middle.

    -

    Negative S Curves

    -

    Rotating the CURVE knob +square just before and after the middle.

    Negative S Curves

    Rotating the CURVE knob counterclockwise from the center -flattens the middle of the S curve.

    - - - - - - - - - - - - - - - - - -
    - - - - - -
    -

    Notes:

    -
      -
    • Extreme negative curvature +flattens the middle of the S curve.

      Notes:

      • Extreme negative curvature makes the curve almost -square at both ends.
      • -
      • Each curve +square at both ends.
      • Each curve actually starts at the same voltage. But as the curvature becomes more negative, the rise is so fast that the Scope -can’t display the initial value.
      • -
      • With the knob fully counterclockwise, +can’t display the initial value.
      • With the knob fully counterclockwise, the rise is so fast -that the Scope can’t show the initial rise at all.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +that the Scope can’t show the initial rise at all.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/technical/how-stages-work-together/index.html b/technical/how-stages-work-together/index.html index e6ba4544..9b86ce29 100644 --- a/technical/how-stages-work-together/index.html +++ b/technical/how-stages-work-together/index.html @@ -1,128 +1,70 @@ - - - - - - -How Stages Work Together - - - - - -
    -
    -

    How Stages Work Together

    -
    -

    The +How Stages Work Together +

    How Stages Work Together

    The Stage, Booster Stage, and Hostage modules can be chained together -to create multi-stage envelopes.

    -

    For a chain of individual modules +to create multi-stage envelopes.

    For a chain of individual modules to generate a sequence of stages, they must coordinate with each other in two ways: -Precedence and Sequence.

    -
      -
    1. -

      Precedence: +Precedence and Sequence.

      1. Precedence: Whenever an module is generating a stage, all successor modules must forward that signal all the way through the chain -to the final OUT output.

        -

        That is, each module has precedence +to the final OUT output.

        That is, each module has precedence over all successor modules. When a module wants control, each successor module must defer -to it.

        -
      2. -
      3. -

        Sequence: +to it.

      4. Sequence: As each module completes its stage, it must hand off control to its successor -to start the next stage.

        -
      5. -
      -

      Coordinating Precedence

      -

      Modules coordinate precedence -through their DEFER and ACTIVE ports.

      -

      In a typical configuration, +to start the next stage.

    Coordinating Precedence

    Modules coordinate precedence +through their DEFER and ACTIVE ports.

    In a typical configuration, each module’s ACTIVE output is connected to its successor’s DEFER input. And each module’s OUT output is connected -to its successor’s IN input.

    -

    When a module is generating a stage, +to its successor’s IN input.

    When a module is generating a stage, it holds its ACTIVE gate high -and sends the generated stage to its OUT output.

    -

    When the next module +and sends the generated stage to its OUT output.

    When the next module receives this high gate signal at its DEFER input, it defers to its predecessor. It forwards its IN signal (the output from the predecessor) -to its own OUT port.

    -

    In this way, +to its own OUT port.

    In this way, the first module’s OUT signal makes its way -to the second module’s OUT output.

    -

    In addition, +to the second module’s OUT output.

    In addition, while the second module is deferring, it holds its own ACTIVE gate high. This causes the next module to defer, and the next, and the next, -all the way to the end of the chain.

    -

    Through this chain of ACTIVE/DEFER signals, +all the way to the end of the chain.

    Through this chain of ACTIVE/DEFER signals, the highest precedence module assumes control -of the entire chain’s output.

    -

    Coordinating Sequence

    -

    Modules coordinate sequence -through their TRIG and EOC ports.

    -

    In a typical configuration, +of the entire chain’s output.

    Coordinating Sequence

    Modules coordinate sequence +through their TRIG and EOC ports.

    In a typical configuration, each module’s EOC output is connected -to its successor’s TRIG input.

    -

    As each module completes its stage, -it sends two important coordination signals:

    -
      -
    • It lowers its ACTIVE gate +to its successor’s TRIG input.

      As each module completes its stage, +it sends two important coordination signals:

      • It lowers its ACTIVE gate which relinquishes its control -over the successor modules.
      • -
      • It sends a short pulse on its EOC output, +over the successor modules.
      • It sends a short pulse on its EOC output, which hands off control -to its successor.
      • -
      -

      And the next module reacts:

      -
        -
      • Because its DEFER input is now low, -it stops deferring.
      • -
      • Because its TRIG input rose (because of the EOC pulse), -it begins generating its own stage.
      • -
      • Because it is actively generating a stage, +to its successor.

      And the next module reacts:

      • Because its DEFER input is now low, +it stops deferring.
      • Because its TRIG input rose (because of the EOC pulse), +it begins generating its own stage.
      • Because it is actively generating a stage, it raises its own ACTIVE gate, giving it the highest precedence in the chain. -And so all of the successor modules now defer to it.
      • -
      -

      In this way, +And so all of the successor modules now defer to it.

    In this way, the chain of modules creates a sequence of stages and sends each stage -through the final OUT output of the chain.

    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +through the final OUT output of the chain.

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/technical/index.html b/technical/index.html index bd984300..7a435ed2 100644 --- a/technical/index.html +++ b/technical/index.html @@ -1,32 +1,2 @@ - - - - - - -Technical Details - - - - - -
    -
    -

    Technical Details

    -
    -
    -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +Technical Details +

    Technical Details

    © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/technical/modulation/index.html b/technical/modulation/index.html index fdf71f5b..fab515b7 100644 --- a/technical/modulation/index.html +++ b/technical/modulation/index.html @@ -1,63 +1,16 @@ - - - - - - -Modulation - - - - - -
    -
    -

    Modulation

    -
    -

    Many modules' parameter knobs can be modulated by control voltage (CV) signals. -CV input ports may be accompanied by attenuverters.

    -

    Calibration

    -

    In DHE-Modules, modulation by CV is calibrated to expect a CV signal in the -range [-5V,5V].

    -
      -
    • A 0V CV signal yields the current value of the knob.
    • -
    • A 5V CV signal yields the value as if the knob were rotated 50% clockwise of -its actual position.
    • -
    • A -5V CV signal yields the value as if the knob were rotated 50% -counterclockwise of its actual position.
    • -
    -

    WARNING: -Modulation can yield values far outside a knob’s normal range.

    -

    For example:

    -
      -
    • With a knob in its center position, CV signals greater than 5V produce values -higher than the knob’s normal range.
    • -
    • With a knob fully clockwise, positive CV signals produce values higher than -the knob’s normal range.
    • -
    -

    Attenuverters

    -

    A CV input port may be accompanied by a small attenuverter (- +) knob. +Modulation +

    Modulation

    Many modules’ parameter knobs can be modulated by control voltage (CV) signals. +CV input ports may be accompanied by attenuverters.

    Calibration

    In DHE-Modules, modulation by CV is calibrated to expect a CV signal in the +range [-5V,5V].

    • A 0V CV signal yields the current value of the knob.
    • A 5V CV signal yields the value as if the knob were rotated 50% clockwise of +its actual position.
    • A -5V CV signal yields the value as if the knob were rotated 50% +counterclockwise of its actual position.

    WARNING: +Modulation can yield values far outside a knob’s normal range.

    For example:

    • With a knob in its center position, CV signals greater than 5V produce values +higher than the knob’s normal range.
    • With a knob fully clockwise, positive CV signals produce values higher than +the knob’s normal range.

    Attenuverters

    A CV input port may be accompanied by a small attenuverter (- +) knob. This knob can attenuate and invert the effect of the CV signal on the modulated -knob.

    -
      -
    • Full clockwise rotation results in the CV signal having its full effect on -the knob.
    • -
    • Values between the full clockwise position and the center position attenuate -the CV signal, lessening its effect.
    • -
    • The center position fully attenuates the CV signal so that it has no effect.
    • -
    • Fully counterclockwise inverts the CV signal, so that a positive voltage +knob.

      • Full clockwise rotation results in the CV signal having its full effect on +the knob.
      • Values between the full clockwise position and the center position attenuate +the CV signal, lessening its effect.
      • The center position fully attenuates the CV signal so that it has no effect.
      • Fully counterclockwise inverts the CV signal, so that a positive voltage reduces the value of the knob and a negative voltage increases the value of -the knob.
      • -
      • Values between the full counterclockwise position and the center position -both invert and attenuate the effect of the CV signal.
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +the knob.
  • Values between the full counterclockwise position and the center position +both invert and attenuate the effect of the CV signal.
  • © 2017–2022 Dale H. Emery

    \ No newline at end of file diff --git a/technical/sigmoid/index.html b/technical/sigmoid/index.html index b2fd45ea..797720c1 100644 --- a/technical/sigmoid/index.html +++ b/technical/sigmoid/index.html @@ -1,106 +1,47 @@ - - - - - - -Normalized Tunable Sigmoid Function - - - - - -
    -
    -

    Normalized Tunable Sigmoid Function

    -
    -
    -

    See also:

    -

    The Function

    As I looked for a way to shape envelope stages, I stumbled across Dino Dini’s beautiful -normalized tunable sigmoid function:

    - -
    -

    $$y = \frac{x - kx}{k - 2k|x| + 1}$$

    -
    -

    By beautiful, +normalized tunable sigmoid function:

    $$y = \frac{x - kx}{k - 2k|x| + 1}$$

    By beautiful, I don’t mean that the function looks nice (though it looks very nice). I mean that it has three features -that make it enormously useful for my purposes:

    -
      -
    • Normalized: +that make it enormously useful for my purposes:

      • Normalized: It applies in a particularly useful way to numbers in two particularly useful ranges: -[-1,1] and [0,1].
      • -
      • Tunable: +[-1,1] and [0,1].
      • Tunable: A single parameter (k or curvature) adjusts the curve -in particularly useful ways.
      • -
      • Sigmoid: +in particularly useful ways.
      • Sigmoid: It produces a particularly useful S-shaped curve. And because of the multiple ways it is normalized, it also produces a particularly useful -J-shaped curve.
      • -
      -

      Here is a graph +J-shaped curve.

    Here is a graph of the the normalized tunable sigmoid function for inputs from -1 to 1, with each line representing a different curvature, -from -0.95 (red) to 0.95 (violet):

    - -

    Normalized

    -

    The function is normalized in two interesting ways:

    -
      -
    • Given an input in the range [-1,1], +from -0.95 (red) to 0.95 (violet):

      Normalized

      The function is normalized in two interesting ways:

      • Given an input in the range [-1,1], it yields an output -in the range [-1,1].
      • -
      • Given an input in the range [0,1], +in the range [-1,1].
      • Given an input in the range [0,1], it yields an output -in the range [0,1].
      • -
      -

      Note also that for every value of k:

      -
        -
      • $$sigmoid(-1) = -1$$.
      • -
      • $$sigmoid(0) = 0$$.
      • -
      • $$sigmoid(1) = 1$$.
      • -
      -

      If I can map some linear signal +in the range [0,1].

    Note also that for every value of k:

    • $$sigmoid(-1) = -1$$.
    • $$sigmoid(0) = 0$$.
    • $$sigmoid(1) = 1$$.

    If I can map some linear signal onto one of those “normal” ranges, I can apply the sigmoid function -to shape the signal.

    -

    This is how the DHE Modules +to shape the signal.

    This is how the DHE Modules create curved envelope stages -and waveshaper transfer functions.

    -

    Tunable

    -

    The normalized tunable sigmoid function +and waveshaper transfer functions.

    Tunable

    The normalized tunable sigmoid function has a parameter, k, which tunes the curvature of the function. Each line in the graph -represents a different value of k.

    -

    Positive k +represents a different value of k.

    Positive k (from green to violet in the graph) gives a J shape over the range [0,1] @@ -111,123 +52,78 @@

    Tunable

    gives a shape that is nicely symmetrical to the positive ks -in either range.

    -

    And when $$k=0$$, +in either range.

    And when $$k=0$$, the function is linear: $$y=x$$. -The output is the same as the input.

    -

    By mapping each module’s CURVE knob +The output is the same as the input.

    By mapping each module’s CURVE knob to this function parameter k, I give users control over the curvature of envelope stages -and waveshaper transfer functions.

    -

    Note: +and waveshaper transfer functions.

    Note: For S-shaped curves, the DHE Modules negate the tuning parameter k so that turning the CURVE knob clockwise gives an S curve -instead of an inverted S curve.

    -

    Sigmoid

    -

    Originally I sought a function +instead of an inverted S curve.

    Sigmoid

    Originally I sought a function that could produce useful, symmetrical “logarithmic” curves for envelope stages. My initial attraction to this normalized tunable sigmoid function was that in the range [0,1] it produced exactly the kind of J curve -I was looking for.

    -

    But playing with this curve +I was looking for.

    But playing with this curve got me thinking: What if my modules could produce S shaped envelope stages? That would be a distinguishing feature! -And this function made S shaped envelope stages easy.

    -

    Then I wondered: +And this function made S shaped envelope stages easy.

    Then I wondered: Might this function work well as a waveshaper transfer function? And just like that, the idea for Swave -was born.

    -

    Curved Envelope Stages

    -

    Stage +was born.

    Curved Envelope Stages

    Stage and Booster Stage use the normalised tunable sigmoid function -to produce curved envelope stages.

    -

    To produce an envelope stage, -each module follows the same general procedure:

    -
      -
    1. Generate a ramp signal that progresses from 0 to 1 -over the duration of the stage
    2. -
    3. Apply a shaping function +to produce curved envelope stages.

      To produce an envelope stage, +each module follows the same general procedure:

      1. Generate a ramp signal that progresses from 0 to 1 +over the duration of the stage
      2. Apply a shaping function to shape the ramp signal -into a curve
      3. -
      4. Map the curved ramp signal -onto the desired output range
      5. -
      -

      For step 2, +into a curve

    4. Map the curved ramp signal +onto the desired output range

    For step 2, each module shapes the ramp signal by applying -the normalized tunable sigmoid function.

    -

    J-Curved Envelope Stages: +the normalized tunable sigmoid function.

    J-Curved Envelope Stages: Given that the ramp signal is already in the range [0,1], shaping the stage into a J curve is easy: -simply call the sigmoid function.

    -

    S-Curved Envelope Stages: +simply call the sigmoid function.

    S-Curved Envelope Stages: Booster Stage can produce S-shaped stages. To do this, -it applies the shaping function in three steps:

    -
      -
    1. Map the ramp signal from [0,1] to [-1,1]
    2. -
    3. Apply the sigmoid function
    4. -
    5. Map the shaped signal back to [0,1] -before scaling it to the desired output range
    6. -
    -

    Waveshaping

    -

    Swave +it applies the shaping function in three steps:

    1. Map the ramp signal from [0,1] to [-1,1]
    2. Apply the sigmoid function
    3. Map the shaped signal back to [0,1] +before scaling it to the desired output range

    Waveshaping

    Swave uses the normalized tunable sigmoid function -to shape its input signal.

    -

    Note: +to shape its input signal.

    Note: Swave assumes that its input signal is in the range [-5V,5V], the standard range for audio and bipolar CV signals -in VCV Rack.

    -

    To shape its input signal, -Swave:

    -
      -
    1. Maps the signal +in VCV Rack.

      To shape its input signal, +Swave:

      1. Maps the signal from [-5V,5V] to the range [0,1] (for J-curved waveshaping) -or [-1,1] (for S-curved waveshaping)
      2. -
      3. Applies the sigmoid function -to shape the signal
      4. -
      5. Maps the shaped signal +or [-1,1] (for S-curved waveshaping)
      6. Applies the sigmoid function +to shape the signal
      7. Maps the shaped signal back to the range [-5V,5V] -for output
      8. -
      -

      Other Uses

      -

      In addition to shaping signals and generating envelope stages, +for output

    Other Uses

    In addition to shaping signals and generating envelope stages, DHE Modules use the sigmoid function to give some knobs a taper, making the knobs more or less senstive -at different parts of their rotation:

    -
      -
    • Each DURATION knob has a J taper, +at different parts of their rotation:

      • Each DURATION knob has a J taper, making it less sensitive near the counterclockwise extreme -and more sensitive near the clockwise extreme
      • -
      • Each CURVE knob has an S taper, +and more sensitive near the clockwise extreme
      • Each CURVE knob has an S taper, making it more sensitive in the center -and less sensitive at the extremes
      • -
      -
    -
    -
    -

    © 2017–2022 Dale H. Emery

    -
    - - \ No newline at end of file +and less sensitive at the extremes \ No newline at end of file