Perfect emulation of the SID 6581: the C64 sound chip.
INSIDIOUS 6581: The definitive SID emulation.
This ensemble is a perfect emulation of the extraordinary Commodore 64 sound chip. Included are all features of the original hardware:
* Three channels with realistically saturated Triangle, Square/PWM, Sawtooth, Noise and combined oscillators.
* Ring modulation and hard sync.
* Polyphonic and monophonic play modes with "Live arp" mode.
* The unique SID saturating filter that is incredibly important but missing on most emulations.
* Filter cutoff curves matching various real SID chips.
* LFOs and envelopes for pulse width, pitch, amplitude and filter cutoff.
* Step table for that genuine 8-bit sound.
* Optional quantization clock to restrict modulation updates to 50Hz or 60Hz as used in most games, or 100Hz or 150Hz as used in modern SID tunes and by Martin Galway in the Wizball theme.
I have a blog about the creation of this ensemble at http://insidious6581.blogspot.co.uk
No attempt is made to create a better SID. No features are enhanced or improved. This is not the usual 'SID-like' or '8-bit style' synth. This is an attempt to recreate the real thing as closely as possible with the most user-friendly interface possible. I believe it to be the most accurate-sounding emulation available (even better than the reSID library). Included are multiple presets taken directly from Commodore 64 games by dumping out the hardware registers during playback.
The SID Filter emulates the very unusual saturation and distortion present in the real hardware, which is the main feature that distinguishes most emulations from the real thing. I spent a long time using an oscilloscope to view the output from multiple real SID chips alongside INSIDIOUS 6581 to ensure that the output is as close as possible. It can really roar in a very unique way when it gets too overloaded. Also included is the ability to choose from a selection of filter curves as the curve of each 6581 chip is slightly (and sometimes extremely) different.
The first example sound is entitled "For All It's Worth" and was created by me using multiple instances of only this plugin. All of the sounds are included in the ensemble. It was created for the free "Summer of SID" album, available at https://c64audio.com/pages/summer
The second example sound is a recreation of the title music of the game Delta. A MIDI file is included in the download.
The third example sound is a recreation of the title music of the game R-Type. A MIDI file is included in the download.
Also, check out Fabio Marinelli's YouTube channel (https://www.youtube.com/channel/UCclk8zg7XkGjuo8OHcRYrzg) where you can see his many recreations of classic C64 music using INSIDIOUS 6581.
As of v1.2.2, this ensemble uses a component of Simple Arp by salamanderanagram.
Changes v1.4 (2018/12/01):
* Re-built the entire oscillator section in Core. The new module has perfect combined waveforms, allows the correct PWM on the combined waveforms, and accurately emulates the Pulse+Tri wave with RingMod. It also uses a good amount less CPU than the previous version.
* Remade the filter again from scratch. Because of the improved oscillators, the filter balance is much better. I would say that it is now 99% accurate.
* Re-made the LFO handler in core.
* Added some new presets.
* Due to the remade oscillator section, the R/S input and output
is now just a frequency value instead of a square wave stream.
* The MIDI Mapper was accepting program changes, which shouldn't have been the case.
* Added an audio input that will route through the filter like the real SID.
Changes v1.3 (2018/08/23):
* Added the MIDI Router. In this mode, notes from a specific MIDI channel will trigger a Preset change on the specified SID channel. This makes creating 3-channel chip tunes or setting up a single SID channel drum kit much simpler.
* After some retesting with real SIDs, I've completely retuned the filter. It's now dirtier and really roars, and is extremely accurate to the real thing.
* Removed the DC offset correction from the PWM. The new filter makes it unnecessary.
* Replaced the noise sample with a noise generator that uses the SID's actual random algorithm. Noise is much more tonal now like the real thing.
* Added some more presets.
* Flipped the internal PWM polarity so that -1 to +1 matches 0 to 4095 respectively in the real SID.
* Fixed a bug where an LFO could be the wrong one when a snapshot is recalled.
Changes v1.2.6 (2018/08/02):
* Ring mod was allowed to operate using any carrier waveform, but the SID only uses a square wave. This has been fixed.
* Loop controls were not latching properly on Channel 1.
* Reduced CPU on muted channels.
Changes v1.2.5 (2018/05/29):
* Polyphonic mode added.
* The EQ on the noise output had only been applied to channel 1.
* A bug in Reaktor stops program recall to occur correctly. I've got around it at the expense of potentially getting the wrong patch if the DAW sends out the bank change CC after the program change.
* The Square LFO graphic had an incorrect phase.
* Added new presets.
* MIDI channels were getting saved with the preset. Tough to decide whether this is correct behaviour or not, but I've disabled it.
* Loop points were getting reset on Channel 1 when changing to polyphonic mode or changing preset.
Changes v1.2.4 (2018/05/21):
* Added filter curves to map the filter cutoff values to various SID types.
* Removed the filter oscilloscope to allow for the filter curve graphs.
* Added a final mix oscilloscope to the logo's SID chip.
* Changed the colour of the off colour of the PWM graph warning lights to match the channel background.
* Fixed a Clock bug where the modulation values would be smooth every other clock event.
* Fixed a potential bug when the Clock was set to Off.
* Renamed "Vol" in the Wheel menu to "Amp" to match the mod section it applies to.
* Got around a Reaktor bug where Live Arp wouldn't respond to MIDI in the Reaktor standalone app.
* Added an EQ to the noise output to more closely match the real SID output.
* Increased the stability of the oscilloscope displays.
* Fixed a bug in the filter where negative cutoff values would be treated as positive.
Changes v1.2.3 (2017/12/16):
* Added a PWM position display that shows the final combined PWM value.
* Remade the LFO Fade/Delay implementation to take into the account the starting phase of the waveform, making it more flexible and seamless.
Changes v1.2.2 (2017/12/10):
* Added new play mode options: Solo, Legato, and Live arp. With live arp you can note play those 8-bit bubbly chords live.
* Added new presets from my track 'For All It's Worth'.
* Simplified the top-most channel routing.
* The whole portamento section has been replaced. Portamento is now logarithmic instead of linear using the Smooth module from 2-OSC, but does not produce gate clicks like before.
* Fixed a bug in the table looping where an incorrect waveform could be set on a zero entry.
Changes v1.2.1 (2017/11/19):
* The waveforms are now output at the correct bit depth according to the hardware specs.
* The ADSR wave is now quantised to 8-bits.
* The Filter automation parameters had the same IDs as channel 3's parameters, so were being hidden.
* Removed the full channel switch if the waveform is set to nothing. Now only pressing mute button will completely stop processing. Fixes a potential problem with program changes.
Changes v1.2 (2017/11/11):
* More accurate root waveforms. The tone and saturation now perfectly match the real hardware.
* Much improved combined waveforms, especially at higher frequencies.
* Vastly more accurate filter, tweaked by matching waveforms using an oscilloscope connected to real SID chips. It is almost indistinguishable from the real thing.
* Root pulse width value now allows the full 0-100% rage instead of 0-50%.
* Pulse width is quantised to 4096 values like the real chip.
* Table loop start and end points. Tables can be simpler and have an attack phase.
* Increased pitch range.
* New custom graphics
* Control sensitivity adjustments
* Improved the modulation envelope graphs and added a graph to the main volume ADSR.
* Added a MIDI channel parameter to the filter to set the channel used for its LFO Key Follow and envelope triggering.
* Better CPU usage. Also, muting a channel will completely stop it from using any CPU.
* Added volume ADSR to the automatable parameters.
* Added support for Bank Select for better patch organisation.
* Fade time now matches the specified value correctly.
* Fixed a clicking that could occur on triggering a note.
* Switched from using custom MIDI data parsing to using Reaktor's built-in MIDI modules for reduced complexity.