Skip to content

Commit

Permalink
adsr improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Charles Julian Knight authored and rabidaudio committed Feb 6, 2022
1 parent fa5ec7e commit 12dc7ef
Show file tree
Hide file tree
Showing 12 changed files with 5,664 additions and 3,756 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@

## Design goals

- "fully-modular with defaults"
- "semi-semi-modular"
- semi-modular-style sensible default paths connected under the hood
- all defaults overridden with patch cables
- separate modules, so can be completely reconfigured
- specifically targeting support for several modes:
- 4 totally separate, independent synths, each controlled with constant VCO or sequencer
- 1-voice, MIDI-,sequencer-, or constant-controlled synth with 4 oscillators, e.g. harmonizing intervals, mixing shapes/timbres
Expand Down Expand Up @@ -170,6 +171,8 @@ Otherwise, typically use 2N3904 / 2N3906 for BJTs and 2N2222 or similar for diod
- capable to expand to 8 voices?
- Arpeggiator
- up, down, play order, random, other patterns?
- MIDI thru - output unhandled notes on a midi out
- Ability to chose between velocity-leveled gate and constant gate
4. Filter
- 4P LP(/HP?)
- Cutoff frequency control has same range as oscillator
Expand Down
9 changes: 8 additions & 1 deletion adsr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,20 @@ capped at 2mA. Pot size effects dynamic range.

In practice, charge times less than 15ms are undetectable, and charge times above 2s are largely unnecessary.

A non-linear resistance would allow finer control at larger charge times. However linear seems to have plenty of expressiveness.


C=4.7u and a knob range of 1M gives a control range of 12ms to \~1.8s for a
0-5V change, i.e. a slew rate between 356 V/s and 2.4 V/s.

Could offer two caps, fast and slow, with a toggle switch. Switching to a 22u capacitor gives 58ms to 8.6s.
Could offer two caps, fast and slow, with a toggle switch. A 22u capacitor gives 58ms to 8.6s. A 1u capacitor gives \~5ms to \~55ms.

A current mirror isolates the 3 different reference voltages, without it they
interfere with each other.

Rates are dependant on the input level. This means if the input gate level is variable (for example it depends on MIDI note velocity), then the times will be slower for harder hits. We'd probably want constant rates regardless of velocity for example. However this seems difficult to achieve with the current design, as during release the input voltage is off, so without memory you don't have a reference to scale the output by.

![constant current means time depends on level](constant-current.png)


**TODO: power usage**
61 changes: 61 additions & 0 deletions adsr/adsr-cache.lib
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,41 @@ X V- 6 -100 -300 150 U 50 50 5 1 W
ENDDRAW
ENDDEF
#
# Amplifier_Operational_TL072
#
DEF Amplifier_Operational_TL072 U 0 5 Y Y 3 L N
F0 "U" 0 200 50 H V L CNN
F1 "Amplifier_Operational_TL072" 0 -200 50 H V L CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
ALIAS LM358 AD8620 LMC6062 LMC6082 TL062 TL072 TL082 NE5532 SA5532 RC4558 RC4560 RC4580 LMV358 TS912 TSV912IDT TSV912IST TLC272 TLC277 MCP602 OPA1678 OPA2134 OPA2340 OPA2376xxD OPA2376xxDGK MC33078 MC33178 LM4562 OP249 OP275 ADA4075-2 MCP6002-xP MCP6002-xSN MCP6002-xMS LM7332 OPA2333xxD OPA2333xxDGK LMC6482 LT1492 LTC6081xMS8 LM6172 MCP6L92 NJM2043 NJM2114 NJM4556A NJM4558 NJM4559 NJM4560 NJM4580 NJM5532 ADA4807-2ARM OPA2691 LT6234 OPA2356xxD OPA2356xxDGK OPA1612AxD MC33172 OPA1602 TLV2372 LT6237 OPA2277 MCP6022
$FPLIST
SOIC*3.9x4.9mm*P1.27mm*
DIP*W7.62mm*
TO*99*
OnSemi*Micro8*
TSSOP*3x3mm*P0.65mm*
TSSOP*4.4x3mm*P0.65mm*
MSOP*3x3mm*P0.65mm*
SSOP*3.9x4.9mm*P0.635mm*
LFCSP*2x2mm*P0.5mm*
*SIP*
SOIC*5.3x6.2mm*P1.27mm*
$ENDFPLIST
DRAW
P 4 1 1 10 -200 200 200 0 -200 -200 -200 200 f
P 4 2 1 10 -200 200 200 0 -200 -200 -200 200 f
X ~ 1 300 0 100 L 50 50 1 1 O
X - 2 -300 -100 100 R 50 50 1 1 I
X + 3 -300 100 100 R 50 50 1 1 I
X + 5 -300 100 100 R 50 50 2 1 I
X - 6 -300 -100 100 R 50 50 2 1 I
X ~ 7 300 0 100 L 50 50 2 1 O
X V- 4 -100 -300 150 U 50 50 3 1 W
X V+ 8 -100 300 150 D 50 50 3 1 W
ENDDRAW
ENDDEF
#
# Amplifier_Operational_TL074
#
DEF Amplifier_Operational_TL074 U 0 5 Y Y 5 L N
Expand Down Expand Up @@ -119,6 +154,32 @@ X ~ TN 200 -100 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_Conn_01x04_Female
#
DEF Connector_Conn_01x04_Female J 0 40 Y N 1 F N
F0 "J" 0 200 50 H V C CNN
F1 "Connector_Conn_01x04_Female" 0 -300 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_1x??_*
$ENDFPLIST
DRAW
A 0 -200 20 901 -901 1 1 6 N 0 -180 0 -220
A 0 -100 20 901 -901 1 1 6 N 0 -80 0 -120
A 0 0 20 901 -901 1 1 6 N 0 20 0 -20
A 0 100 20 901 -901 1 1 6 N 0 120 0 80
P 2 1 1 6 -50 -200 -20 -200 N
P 2 1 1 6 -50 -100 -20 -100 N
P 2 1 1 6 -50 0 -20 0 N
P 2 1 1 6 -50 100 -20 100 N
X Pin_1 1 -200 100 150 R 50 50 1 1 P
X Pin_2 2 -200 0 150 R 50 50 1 1 P
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
X Pin_4 4 -200 -200 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_Conn_01x04_Male
#
DEF Connector_Conn_01x04_Male J 0 40 Y N 1 F N
Expand Down
Binary file added adsr/adsr-relative.asc
Binary file not shown.
Binary file modified adsr/adsr.asc
Binary file not shown.
Loading

0 comments on commit 12dc7ef

Please sign in to comment.