
by Yokemura(YMCK) http://www.ymck.net/
What is Magical 8bit Plug?
Magical 8bit Plug is a software-synthesizer developed by Yokemura@YMCK which generates primitive electronic sounds like the old 8bit game consoles. It can be used as a plug-in for the host applications that support Audio Units or VST.
In this version all the waveforms including the 8bit-specific pseudo triangle and low resolution noise are available as well, and on top of those more precisely emulated noise waveforms and more detailed controls over the sound are newly implemented.
This version is technically distinct from the previous one, so you can install both and keep using them separately.
Magical 8bit Plug 2 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 to coding you can contribute through a donation.
Features
- Basic 8bit-style waveforms
- As the new waveforms, 1bit noise is introduced, which can emulate the sound of original 8bit console more accurately
- Envelope forming with so-called ADSR.
- Pitch bend capability with depth control
- Auto Bending(a.k.a Frequency Sweep) which is suitable for making sound effects and drum sound etc.
- Vibrato to enrich your musical expression
- Custom envelopes, which gives you more precise control over volume, pitch and pulse duty values.
Installation
Basically put the plugin file to appropriate folder to start using. As the actual installation method will vary according to your system and host application, please refer to the instructions from them for the detail. If you have any questions please don't ask me but ask Google. I'm not going be your kindly technical assistant.
Here's the standard installation paths. The actual installation method may vary according to your environment. And again, please don't ask me about the installation because I don't know about your system.
Mac | AudioUnits | .component | /Library/Audio/Plug-ins/Components |
VST2 | .vst | /Library/Audio/Plug-ins/VST | |
VST3 | .vst3 | /Library/Audio/Plug-ins/VST3 | |
Windows | VST2 | .dll | C:\Program Files\VSTPlugins C:\Program Files\Steinberg\VSTPlugins C:\Program Files\Common Files\VST2 C:\Program Files\Common Files\Steinberg\VST2 |
VST3 | .vst3 | C:\Program Files\Common Files\VST3 |
About VST2 and VST3 : Steinberg, which defines the VST specifcation, encourages their new format VST3. But for now(as of 2020) it seems like not all of the host applications fully comply to VST3. With some hosts the layout may corrupt, with some others the sound may not played and so on. In that case please try using VST2.
Usage
Parameters
General Section
- Gain
- The volume. As the pulse wave tends to sound louder, it's a good idea to reduce the gain to match with other instruments.
- OSC Type
- Oscillator selection.
- Pulse
- Rectangular waveforms. The duty can be selected on Pulse Section below
- Triangle
- Pseudo triangle wave.
- Noise
- Noise. v2 has 3 different noise algorithms. You can choose one of them on Noise Section.
- Poly
- Number of poly. To go monophonic set it to 1.
- Show Advanced Options
- Some more controls will appear when checked.
- Color
- One of the advanced options. It just alters the color theme.
Pulse Section
This section appears only when you select "Pulse" as OSC.
- Duty
- The high/low ratio of the waveform. At 50%, the high and low voltage alternate at the same time duration. Smaller value gives you a sharper impression.
Noise Section
This section appears only when you select "Noise" as OSC.
- Noise Type
- v2 has 3 different noise waveforms. They come from different noise generating algorithm.
- 4bit Pure random
- Randomly generates 16 level(4bit) voltage, which is exactly same to v1's noise.
- 1bit Long Cycle
- The emulation of NES's long cycle noise. Generates high or low voltage according to a pseudo randomization.
- 1bit Short Cycle
- The emulation of NES's short cycle noise. Generates high or low voltage according to a pseudo randomization, but as the randomization cycle is pretty short (only 93 steps) the sound is rather tonal.
Envelope Section
You can specify time variance of the volume with 4 parameters below.
- Attack
- The duration until the volume reaches to the maximum. Once it reaches to max it goes to decay phase.
- Decay
- The duration until the volume goes down to Sustain level in decay phase.
- Sustain
- The volume it keeps until you release the keyboard.
- Release
- The duration until the volume hits zero after you released the key.
Bend Range Section
This section only has pitch bend range.
- Range
- The range. The actual pitch diviation when you twist the pitch bend wheel will vary according to this value. The unit is half tone and the value corresponds to the pitch diviation at the wheel's maximum position.
Auto Bend Section
Unlike Pitch Bend above Auto Bend automatically bends the pitch right after the note on regardless if you touch the wheel or not.
- Ini.Pitch
- Initial Pitch. At key on the pitch starts from higher(lower if the value is minus) than the note you played. This value specifies the amount of it.
- Time
- The pitch automatically approach to the note you played in the time you specified with this value.
Vibrato Section
You can apply a vibrato with the parameters below.
- Rate
- Frequency to modulate the pitch. The unit is in seconds
- Depth
- Pitch amount to modulate. Value 1 corresponds to half tone.
- Delay
- Time before vibrato starts. the unit is in seconds.
- Ignores Wheel
- When checked it literally ignores the modulation wheel. This is useful if you want always apply the vibrato.
Custom Envelopes Section
This section appears only when you checked "Show Advanced Options". You can specify the time variation of Volume, Pitch and Pulse Duty by typing the values by text. The detail is explained in the next section.
Custom Envelopes
Custom Envelope is a new functionality introduced in Magical 8bit Plug 2 to achieve the functionality of frame-wise control often seen in chiptunes with real consoles. It allows you to set a non linear time variance of volume, pitch and pulse duty, which can extend your musical expression. The time variance of Pulse Duty can be assigned only with this option.
Value range and semantics
Numeric values are used to set the volume, pitch and pulse duty in Custom Envelopes, and the meaning of the number differs according to the parameter you are setting.
Parameter | Range | Meaning |
Volume | 0`15 | 0 is silence, 15 is max. |
Pitch | -64`63 | The result changes according to Resolution combo box to the right.
|
Duty | 0`2 | 0: 12.5% , 1: 25%, 2: 50%. |
Grammar
As Custom Envelope is like a tiny programming language so you have to follow the grammar to specify what you'd like the plugin to perform. Basically it's just placing the numbers in row but it also has some specific notations to save your efforts.
Basic Sequence
You can specify the time variance by comma separated values. The time unit is 1/60 sec without depending to your song tempo. Spaces are ignored.
ex) 15, 13, 12, 5, 0
Slope
To specify 1 second sequence only with Basic Sequence youfll have to write a row of 60 numbers, which is cumbersome. If the sequence you want is a simple slope this Slope grammar will help. The format is:
startValue to EndValue in NumberOfFrames f
ex) 15 to 0 in 15f
Again, spaces are ignored.
Another example used with Basic Sequence
ex) 15, 14, 13, 12to3in30f, 2, 2, 1, 1, 0
The last f can be omitted.
ex) 15 to 0 in 15
Hold
You can hold the same value for specified frames. The format is:
value x NumberOfFrames f
The last f can also be omitted.
ex) 15 x 10
Another example used with Basic Sequence
ex) 15x10f, 9, 7, 5, 3, 1, 0
Repeat
Enclose the sequence you want to repeat with [ ]
ex) [0,1,2]
You can place the repeated sequence after basic sequence. Only infinite loop is supported. This means it's meaningless to put a sequence after [ ] unless you have a Release Sequence(see below)
ex) 15, 13, 12, 11 [10, 7, 4]
Release Sequence
To specify the value change after the key off place the sequence after |
ex) 15, 14, 12, 10 | 5, 3, 1, 0
If you use both Repeat and Release Sequence the repeat sequence is repeated until the key off and is switched to Release sequence after key off.
ex) 15, 13, 12, 11 [10, 7, 4] | 3, 2, 1, 0