Magical FDS Plug Operation Manual
by Yokemura(YMCK) http://ymck.net/

What is Magical FDS Plug?

Magical FDS Plug is a software synthesizer that reproduces the sound of the so-called "Disk System sound source" (FDS sound source). It runs as a plug-in in host applications that support Audio Units (Mac) or VST3 (Mac / Windows).

The FDS sound source has a unique mechanism: a 64-sample wavetable (the carrier) is modulated by a separate 32-step command sequence (the modulator). Because it offers extremely high freedom, it is difficult to configure; this plug-in keeps that freedom while providing a logical interface to build waveforms — additive synthesis, preset morphing, and more.

Features

Carrier and modulator

Carrier The basic waveform you actually hear A 64-sample, 6-bit wavetable. Built with additive drawbars, preset morph, pulse shape, or free draw
Modulator The waveform that modulates the carrier A 32-step opcode sequence. Choose from six presets and adjust rate/depth for LFO-like or FM-like effects

Open source

Magical FDS Plug is an open source software, so you can modify or enhance the functionality as you want and contribute it to share your improvement. The GitHub repository is here.

If you want to support the development but are not familiar with coding you can contribute through a donation.

Installation

Basically put the plug-in file in the folder specified by your OS or host application to start using. Typical installation paths are listed below. The actual location varies by environment; please refer to your OS or DAW documentation.

Host applications including DAWs have become increasingly diverse, and it is practically impossible for me to know how each one handles plug-ins. If you have questions, please search for answers or ask your software's user community rather than contacting me. I will not respond to inquiries about basic installation methods.

Platform Plug-in format Extension Typical installation path
Mac AudioUnits .component /Library/Audio/Plug-ins/Components
VST3 .vst3 /Library/Audio/Plug-ins/VST3
Windows VST3 .vst3 C:\Program Files\Common Files\VST3

Usage

Magical FDS Plug has three sections in its UI: Global, Carrier, and Modulator. Global is on top; Carrier and Modulator sit side by side below (width ratio 3:2). Visible controls depend on Carrier Wave Mode and Mod Rate Use (LFO/FM/OFF). If you don't see the control you want, check those selections first.

(1) Global Section
General settings: master gain, polyphony, bend range, theme, low-pass filter, preset load/save.
(2) Carrier Section
Carrier ADSR and wavetable editing. Control contents vary according to Carrier Wave Mode.
(3) Modulator Section
Modulator waveform, rate/depth, and ADSR. Rate and Depth visibility depends on the Use setting.

Global Section

The Global section at the top contains plug-in-wide settings (see (1) in the screenshot above).

Gain
Master output level (0–1). Default 0.5. Useful for balancing against other instruments.
Polyphony
Number of voices (1–32). Default 1.
Bend
Pitch bend range in semitones (0–24). Default 2. This is the deviation when the bend wheel is at maximum.
Load / Save
Save or restore all parameters as an XML preset file.
Theme
UI color: FDS, YMCK, YMCK Dark, Japan, Worldwide, Monotone, Mono Dark.
LPF
Toggle the ~2 kHz low-pass filter. Default ON. Cutoff and Q are not adjustable.

Carrier Section

The carrier is a 64-sample, 6-bit (64-level) wavetable — what you actually hear (see (2) above).

Envelope

Volume envelope with four parameters.

Carrier Attack
Time until volume reaches maximum after key on (seconds, 0–5).
Carrier Decay
Time until volume reaches the sustain level (seconds, 0–5).
Carrier Sustain
Level held until key off (0–1).
Carrier Release
Time until volume reaches zero after key off (seconds, 0–5).

Carrier Wave Mode

Select how the wavetable is built. The control panel below switches accordingly.

Additive Mix harmonics with 8 drawbars
Preset Morph Morph triangle, saw, or sine
Pulse Shape Adjust rectangular pulse width
Free Draw Draw 64 samples directly

Wave display

64 vertical bars show the table. Read-only except in Free Draw, where each bar is editable (0–63).

Additive

Eight Hammond-style drawbars:

8', 4', 2 2/3', 2', 1 3/5', 1 1/3', 1 1/7', 1'

Sliders (0–1) mix sine partials; the result is quantized to 64 samples. Levels are normalized if they would exceed full scale.

Preset Morph

Preset
Triangle, Sawtooth, or Sine.
Morph
Center = no change. Move right to compress (emphasize smaller amplitudes); left to expand (attenuate them further).

Pulse Shape

Pulse width
High segment length from 1 to 63 steps (of 64). Default 32. Levels are 63 (high) and 0 (low).

Free Draw

No control panel — edit the 64 bars in the wave display directly.

Modulator Section

The modulator runs as a 32-step sequence of 3-bit opcodes (see below), as on real FDS hardware. It modulates how the carrier wavetable is scanned, changing timbre (see (3) above).

Wave preview and wave type

32-step cumulative shape (read-only). Choose Triangle, Saw, Sine, Square, Rise, Fall, or Custom. When Custom is selected, an opcode text field is shown.

Use / Rate / Depth

Switch modulation behavior with Use:

LFO Slow modulation (vibrato-like). Rate 1–30, Depth 1–5
FM Timbral FM. Rate 30–4095, Depth 0–63
OFF No modulation. Rate and Depth are hidden
Rate
Modulation speed. Not a simple Hz readout; higher values = faster / more FM-like. Default 256 in FM mode.
Depth
Modulation amount, scaled by the modulator envelope, mapped to FDS mod gain (0–63).

Modulator envelope

Envelope on modulation depth. Same units as the carrier ADSR.

Mod Attack
Time until modulation reaches maximum after key on.
Mod Decay
Time until modulation reaches the sustain level.
Mod Sustain
Level held until key off.
Mod Release
Time until modulation reaches zero after key off.

Custom opcodes

Unlike the carrier wavetable, the modulator shape is specified by placing value-manipulation commands (opcodes) at each step. Commands basically only raise or lower the value, so you cannot create waveforms that jump up and down abruptly. (The sole exception is the reset command, which instantly resets the value to 0.)

Opcodes are digits 0–7. When Custom is selected, enter 32 of them in one line. Spaces are ignored. Full-width digits are not allowed. Once valid input is committed, the timbre is updated.

Meaning of each digit (opcode) (FDS hardware)

Digit Action
0 Hold
1 Counter +1
2 Counter +2
3 Counter +4
4 Reset counter to 0
5 Counter −4
6 Counter −2
7 Counter −1

The counter wraps between −64 and 63. The 32 steps loop each cycle.

Example

Opcode sequence equivalent to the triangle preset:

0505050303030303030303030305050505

About the demo song

The attached demo song (demo.mp3) was created with Magical 8bit Plug 2 and this plug-in, Magical FDS Plug. The FDS sounds can be reproduced with the attached preset files.

lead1.xml Lead sound at the opening
tublarBell1.xml Bell-like tone that follows; on its own it can sound like a chord
tublarBell2.xml Another bell-like tone used for an obbligato-like phrase afterward
celesta.xml Music-box-like tone when the mood shifts in the middle section
flute.xml Ocarina-like tone

License

This plug-in is released under the GPL v3 License. The source code is open on GitHub; you can duplicate, distribute, or modify it under the conditions of GPL.

Donation

You can support developing Magical FDS Plug not only by contributing source code but by a donation as well. We really appreciate your support.

You can make a donation from this page.