Imminence
Composed by K. Jose
May 31, 2021
Another track modeled after Game Boy Advance audio specifications,
hopefully a little bit more accurate this time.
2 pulse tones
1 single cycle 32- or 64-sample 4-bit waveform
1 pseudorandom noise
2 8-bit direct sound PCM channels controlled by software (i.e. for software
mixing), sample rate also controlled by software
mixing to stereo 32768Hz 9-bit by default
In my previous track "Enemy Forces" I attenuated the master channel volume
of the PSG channels much softer than they should be.
The volume envelope thing on the 25% pulse wave here, however, fades out
more smoothly than it should. A more accurate representation of the GB
volume envelope would take more tracker envelope points than supported. And
even with volume ramping completely off, it will not go through each point
in sharp steps, rather it would go smoothly.
In "Enemy Forces" I used an "MPT hack" to set per-instrument resampling
method, which I set at None. Here, I did not use the hack. It's for
compatibility with other players and trackers (including the original
Impulse Tracker). However, like in "Enemy Forces", I resampled the samples
themselves (except PSG) so that at their highest note they max at 16384Hz
(or in the case of the Astro Vox sample, 8192 Hz), then resampled all of
the samples including PSG without interpolation so that they never play at
rates below 44100Hz to maintain the crisp, intentional aliasing effect
regardless of the resampling method. To properly conform to A440 tuning,
the PSG square, pulse, and single-cycle waveforms have their C5 frequency
set to produce a note of A, then the associated tracker instruments are
shifted 3 semitones up (C on the instrument will play sample at Eb or D#)
to compensate.
On the PSG samples, to ensure proper hard right panning, a separate tracker
instrument had to be made with a panning envelope set to hard right.
I could not use the p64 volume column command because v(number) volume
parameters had to be used. The set panning command at XFF does not do
proper hard right panning, as there is still output in the left channel.
Another set panning command at S8F seems to do the trick on OpenMPT (and
apparently IT), but not on some players.
All samples except the bass and snare drums, square, 25% pulse, and PSG
noise are from KIArchive. Bass and snaredrum samples are from freesound.org
users, available under Creative Commons Zero Public Domain Dedication.
The Wave PSG sample used on channel 3 of this module is a distorted
electric guitar sample converted to a 32-sample-point single cycle waveform
and then bitcrushed to 4-bit by attenuating to 25% volume twice, converting
to 8-bit (effectively 4-bit due to the low amplitude), and then amplifying
by 1600% (16x). Square and pulse drawn by me using OpenMPT's sample editor.
PSGNoise samples prepared using the DefleMask chiptune tracker.
Recommended playback settings (if your module player or tracker allows):
32000, 32768, or 44100Hz stereo
8- or 9-bit precision via bit crusher effect or output bit depth
No volume ramping
No interpolation