SynthEdit ModulesYou'll find some of my SynthEdit modules on this page. I made them mostly for fun, or some of them are from my VST projects. They are provided 'as is', so please test them thoroughly before use. I cannot guarantee that I will provide updates and fixes, however, bug reports are welcome. Licensing: You're free to use these modules in any project, private, free or commercial. Please give credits, if you do so. Please make a small donation using the PayPal button, especially if you use them in commercial products. Thank you! Not frequently, but sometimes I make modules upon request. For more info, contact. Also feel free to visit my VST project page.
|
|
|
Installation
|
To install these modules, download, extract and copy the .sem files to your SynthEdit > modules folder, preferably under some sub-directory (for example: SynthEdit > modules > 3rd party > scoofster). Note: Recently I accidentally compiled some modules with a very small file size (10-15 KB). These include sc:Slewer and the 1p1z filter pack. These, small modules require the .NET framework to be installed. After a few users have pointed out to this, I recompiled these modules, which should run fine now on all computers. They should be about 60-90 KB big. Sorry for any inconvience. |
Forum
Quick navigator
| Analysis | Conversion | Flow control | Math | Logic |
| Beat Detector
Status | VUDriver
Volts2Freq Volts2Time | Autosleeper
Do-Nothing | Exp(x)
Pow(a,x) Sign Poly3 | Monostable |
| Effects | Filters | Modifiers | Waveform | Sub-controls | MIDI |
| RevAllpass
SoftDrive |
1p1z pack
Lowpass MovAvg SVF |
LevelAdjSt
LevelAdjX2 PeakFollow Rescaler Rescaler2 Quantizer Separator Slewer Slewer2 CascMulti CascLevAdj FloatQuantizer New | I-Train | GuiFloatSqrt GuiFloatAbs GuiFloatSign FloatTrigger New BmpQuantize New BmpQuantize2 New | MIDIChan
MIDI2CV |
History
- 11.22.2008. Added sc:VUDriver.
- 11.18.2008. Updated sc:MIDI2CV.
- 03.18.2008. Added sc:FloatQuantizer.
- 03.18.2008. Added sc:BmpQuantize.
- 03.18.2008. Added sc:FloatTrigger.
- 11.18.2007. Added sc:MIDI2CV.
- 10.14.2007. Updated sc:CascLevAdj and sc:CascMult to v1.2 (bugfix).
- 10.06.2007. Added sc:CascLevAdj.
- 10.06.2007. Added sc:CascMult.
- 09.06.2007. Added sc:GuiFloatSign.
- 09.06.2007. Added sc:GuiFloatAbs.
- 08.20.2007. Added sc:MIDIChan.
- 08.14.2007. Updated sc:GuiFloatSqrt (bugfix).
- 08.07.2007. Added sc:Poly3.
- 08.05.2007. Added sc:GuiFloatSqrt.
- 08.03.2007. Added sc:Slewer2.
- 07.25.2007. Added sc:Monostable.
- 07.23.2007. Updated sc:Slewer to v1.1 (bugfix).
- 07.12.2007. Added sc:Sign.
- 07.12.2007. Added sc:LevelAdjX2.
- 07.12.2007. Added sc:LevelAdjSt.
- 06.15.2007. Added sc:Volts2Time.
- 06.10.2007. Added sc:MovAvg.
- 06.08.2007. Added sc:PeakFollow.
- 05.03.2007. Added sc:I-Train.
- 04.21.2007. Added sc:Rescaler2.
- 04.20.2007. Updated sc:Slewer and 1p1z filter pack.
- 04.14.2007. Added Slewer.
- 04.14.2007. Added 1p1z filter pack.
- 12.08.2006. Added a Donation button.
- 12.08.2006. Added sc:Pow(a,x)
- 12.08.2006. Added sc:Exp(x)
- 12.08.2006. Added sc:Separator
- 12.08.2006. Added sc:Volts2Freq
- 09.15.2006. Added sc:RevAllpass
- 08.30.2006. Updated sc:Quantizer to v1.1
- 08.30.2006. Added sc:Quantizer
- 08.23.2006. Added sc:SoftDrive
- 08.23.2006. Added sc:Status
- 07.30.2006. Added sc:SVF
- 07.xx.2006. Added container version of Do-Nothing.
Analysis
|
Beat DetectorOutputs an impulse (10 Volts) whenever a beat is detected. CreditsBased on Beat Detector Class posted to musicdsp.org. |
|
StatusShows if input signal is active (ST_RUN) or in sleepmode (ST_STATIC). If signal is active then 'Active' = 10 Volts, if not, then 'Active' = 0 Volt. |
Conversion
|
Volts2TimeConverts volts to time in seconds or milliseconds using the standard SE timecent conversion rule: |
Flow Control
|
Do-NothingOriginally my first module only copied the input to the output, making organizing stuff easier. You can use this whenever you wan to mix signals together conveniently. However, copying buffers also uses CPU, so I decided to discontinue providing this machine. Instead, an emply container can be used for the same purpose, but being more economic. Containers are removed when you click Save as VST..., so this does not cause any CPU overhead. (On the other hand, whenever wires are connected, a hidden 'adder' module is inserted, which cannot be avoided.) You can download empty containers by clicking on the screenshot on the left. It comes in mono and stereo versions, usage should be straightforward. Installation: copy to SynthEdit > Prefabs folder. Note: If you need the original, module version for compatibility reasons, you can download it here. Testimonials ;-)"The coolest module in the world." Ok, I have tried all the filter coefficient modules, the waveshapers, the envelop generators, but my love goes out to scoofster with his "thru" module! Dear god you have saved me so many headaches! Thanx alot man. :) I use it because I change my mind alot when working on theories & it's much easier to control a mass of connections if they meet at a point right before input. It's a beautiful tool. :) twocircuits
|
Math
|
Exp(x)Calculates exp(x) = 2.7182^x. |
|
Pow(a,x)Calculates power for any given base (a^x). Base can be set in the properties window. |
|
SignGives the signum of a signal (positive, zero or negative). The output voltage for each can be set as float pins. |
|
Poly3Calculates 3rd order polynomial y = a + b*x + c*x^2 + d*x^3 efficiently.
|
Logic
Effects
|
SoftdriveSoft waveshaping function. Allows smooth transition from no distortion to heavy waveshaping. Warning: not alias-free. Parameters
CPU and ozone friendly. |
Filters
Modifiers
|
Level Adj StereoStereo level adjustment. More efficient than using two individual Level Adj modules. CPU Comparison on AMD2200+:
|
|
Level Adj X2Dual level adjustment. More efficient than using two individual Level Adj modules. CPU Comparison on AMD2200+:
DISCONTINUED - this module had caused rare crashes with multiple instances, and have been removed. |
|
PeakFollowTracks the envelope of the input signal. This module is simlar to the SE Peak Follower, with a few differences:
Possible uses:Compressors, dynamic processors, vocoders, modulation effects, etc.
Parameters:Attack and Release use timecent scale, which means
Usual range: about -4 V (0.6 ms) to 8 V (2500 ms). |
|
RescalerRescales an incoming signal in the In Low - In High range to the Out Low - Out High range.
Example
In Low = -5 This rescales the output of a basic Oscillator to the 0-10 Volt range. This module does basically the same as EVM Rescaler, but with a much greater efficiency (with less than 50% CPU use). Etric gave me permission to release this optimized version. |
|
Rescaler2Same as Rescaler, but the input/output boundaries are float pins, not parameters.
Using these modules is the fastest way of rescaling a signal. If you use a Multiply module plus add a fixed constant, SE will add a hidden adder module, thereby increasing CPU use. Comparison on AMD2200+: Multiply + add: ~0.120%
Requested by Loopingdude. |
|
QuantizerConstrains the input signal to discrete steps. Updated to v1.1, which fixes a possible rounding mode error. ExampleIf you set Step Size to 1, then it quantizes the input to whole volts. Parameters:The Resolution parameter controls whether the Step Size parameter is updated instantly (Samplerate) or at block rate (about 400 times a second). This module does the same as the Quantizer module, but with much better performance. Comparison on an AMD2200+:
|
|
SeparatorSeparates input signal to two signals, one containing only positive, the other containing only negative voltages. A possible use is asymmetrical waveshaping: overdrive the positive and negative parts differently, and add the two signals together. Example prefab included for creating an asymmetric soft drive (using sc:SoftDrive). |
|
SlewerLimits the maximum rate of change defined in Volts/s. Usable for smoothing control signals. Usable range: 1-100 V/s. For audio signals, it causes aliasing, so it is not suggested to use.
History
|
|
Slewer2Limits the maximum rate of change defined in Volts/s. Usable for smoothing control signals. Usable range: 1-100 V/s. For audio signals, it causes aliasing, so it is not suggested to use.
The difference between Slewer and Slewer2 is that Slewer2 has separate controls for up/downwards change rate. |
|
CascMultCascaded multiplier with auto-duplicating inputs. A lot faster than using multiple Multiply modules. Output = Input1 * Input2 * Input3 * ... * InputN Source code included. History
|
|
CascLevAdjCascaded level adjuster with auto-duplicating inputs. A lot faster than using multiple Level Adj modules. Output = (Input1/10) * (Input2*10) * (Input3/10) * ... * (InputN/10) Source code included. History
|
|
FloatQuantizerQuantizer for floats. Enabled if 'enabled' pin is nonzero. |
Waveform
|
I-TrainGenerates an impulse train consisting of one sample long impulses with given frequency. Usable for impulse response analysis of reverbs, filters, and other linear systems. |
Sub-Controls
|
GuiFloatSqrtBidirectional square/square root module for GUI floats. If Direction is ->, then left to right is square root, right to left is square.
History
|
|
GuiFloatAbsBidirectional absolute value for GUI floats. Rectifies negative numbers to positive. Both directions are calculating abs(x). |
|
GuiFloatSignBidirectional module for calculating signum function for GUI floats. Gives 1 if the input is positive, gives -1 if the input is negative, and gives 0 if the input is zero. |
|
FloatTriggerPasses input to output when triggered. I developed this module to be used together with DH_MouseDetector to output x/y position only when the the mouse is clicked. |
![]()
|
BmpQuantize, BmpQuantize2Quantizes animations. |
MIDI
|
sc:MIDIChanSimple MIDI filter. You can select which channels to pass. It passes either all MIDI channels or just a selected channel from 1-16. |
|
sc:MIDI2CVI found a problem with the Midi to CV in SE v1.015, namely that in mono mode the velocity is not instant, instead, it's smoothed/filtered. This prevented me to use the velocity as a trigger, since it's always too late because of the heavy smoothing. Jeff says this is to prevent clicks in mono mode, however I think it would be better not to include this filtering since it can be added later externally any time. I tried solving this problem by using poly mode and setting polyphony to 1, but then Retrigger doesn't work. So I had to make a MIDI to CV module to be able to use the velocity for triggering properly. Differences from SE v1.015 Midi to CV:
|





































