An LV2 and CLAP synthesizer plugin that emulates the Game Boy's APU and converts Midi events into Game Boy APU register writes.
The goal of this plugin is to provide an intuitive way to create music that is accurate to the sound of the Game Boy.
The plugin currently does not expose any parameters directly to the user. Instead, the user can manipulate the plugin's internal parameters using specific Midi events, including undefined Midi CC and SysEx.
F0
0F 0F 0F 0F 0F 0D 0B 08 05 03 01 00 00 00 00 00 00 00 00 00 00 01 03 05 08 0B 0D 0F 0F 0F 0F 0F
00 00 00 00 00 00 00 00 00 00 00 00 0F 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0F 0F 00 00
F7
The plugin doesn't have a user interface, so I recommend using Furnace's wavetable editor to create waves, then copy and paste the hexadecimal representation of the wave data into a midi sysex message.
Nelly doesn't have a user interface, it relies on Midi messages to set all of its settings. Because of this, it is important to disable any Midi Reset features in a DAW so that the midi messages sent to Nelly match up with the Midi messages you are sending.
If you want to smoothly play many notes in succession, without resetting the envelope, as if all of the notes were a single note with pitch bend, this tip will be helpful.
Set the velocity of all but the first note in the legato sequence to less than half (velocity < 64); this disables re-triggering the Game Boy channel on a note on. Then, select the note ends of every note in the legato sequence and extend them slightly so that the notes overlap each other; this plugin usually silences the Game Boy channel during a Midi Note Off event, overlapping the notes will disable that silencing, the overlapping notes will not play two notes at once because each channel of the Game Boy is monophonic.
Because this plugin converts midi events to Game Boy APU register writes, understanding how the Game Boy APU functions will be very helpful for making music using this plugin. Please read Pan Docs' section on Game Boy Audio.
After a midi note off event, the plugin will silence that channel; however, if you seek to a large gap in between two notes, the plugin may "forget" that the channel should be silent right now and play a very loud note.
To work around this, it is recommended to manually silence the channel for long gaps in notes. You can manually silence a channel by setting volume (CC07) to 0; for all channels except wave, you will also need to set envelope direction (CC12) to 127 (to prevent an audio pop) and insert a short note (to trigger the channel so that the volume change is read).
(This may no longer be an issue in v3.0.0)
This happens because this plugin resets its internal emulated APU whenever playback is paused. This is necessary in order to make sure that loud sounds do not continously play when playback is paused, but it also clears wave data from the APU's memory (though the wave data is still stored in the plugin's memory, and the correct wave will be played when resuming the song).
I work around this by placing my notes on channel 1 or 2, then moving those notes to channel 3. This workaround works best if you also have each midi channel on a separate track in your DAW.
I've noticed that the CLAP version of the plugin does not properly end the note when the note off message has a velocity of 0 or undefined. To fix this, please edit your midi to set all note off velocity values to 127.
Please do not attempt to use this plugin in FL Studio.
This plugin uses Furnace's Game Boy APU emulation core, which is itself derived from SameBoy's APU emulation code.