scene.org File Archive

File download

<root>­/­demos­/­artists­/­shiru/system_beeps.zip

File size:
86 538 bytes (84.51K)
File date:
2019-02-01 07:58:13
Download count:
all-time: 183

Preview

  • sb.com 41.12K
  • sb.txt 7.58K
  • sbx.com 40.67K

file_id.diz

System Beeps - A PC Speaker Music Album by Shiru 2017-01'2019



Overview

Introduced with IBM PC model 5150 in 1981, designed to produce very
basic system beeps, the humble PC Speaker never really had a chance
to shine bright as a music device. Overshadowed by much more advanced
sound chips of popular home game systems, quickly replaced with
powerful sound cards, it mostly was used as a fallback option, playing
severely downgraded content of better sound hardware. The best it got
were a few nice tunes, and some software trickery to multichannel play
software-synthesized or digitized music with heavy involvement of CPU.
However, with careful composing and proper use of advanced chiptune
techniques, it can do much more than one would normally expect from
such a basic sound device that is only capable to play single square
wave voice without volume control.

System Beeps is a music album in form of an MS-DOS program that
features my original music composed for PC Speaker. You can run it on
any MS-DOS compatible machine with 8088 or better, and listen to some
music in the glorious monophonic square wave. All that you hear here
was perfectly possible back in the day on the early XT class machines.

The compilation is confirmed to work on lower end XT-compatibles with
Intel 8088 @ 4.77 MHz, 256K RAM, CGA video, under DOS 3.3 or better.
Faster CPU is needed for smoother visuals.

As the original CGA card has the infamous 'snow' issue, the program
comes in two flavours, sb.com and sbx.com. The latter intended to be
used with original CGA cards, and does not do much display in order to
avoid snow artifacting. The former works on clone cards that is free
from the issue, and features better visuals.

Please note that DosBox or other contemporary emulation does not do
justice due to limited precision of PC Speaker support. Timings may
be a little bit off; also it renders an idealized version of a square
wave, while actual hardware smooths it out, and always has very strong
punchy resonant frequencies that were considered during composing.
This does not mean DosBox will sound any bad, just needs to be noted
that it really has a noticeable difference from the actual thing.

There is two hidden keys in the program. F1 cycles play modes between
single song, linear order, and random mode (shuffle). F2 sets number
of repeats before one song changes to another, from 1 to 5, or infinite
repeats. You can see current mode in the top left corner of the screen
after pressing either of these keys.



Technology

The technology here is just like the one old MS-DOS games employed, 
nothing special such as software sound synthesis, or mixing, or sample 
playback, or PWM tricks. Just plain classic square wave generated by the 
sound channel of the 8253 system timer, albeit updated at slightly faster
rate than the usual (120 Hz instead of 18-70 Hz). The main difference
is the way the music has been arranged. Various techniques were used to
make impression of multichannel sound - some of the latest MS-DOS games
used many of these, but now the idea has been pushed a lot more.

Variety of arranging tricks includes:

- The perception trick when a presumably louder sound, such as kick or
  snare drum, or a note in primary melody, mutes all other 'channels',
  but the brain does not pay much attention to a brief lack of other
  sound elements.

- Arrangement that allows enough pauses between sounds in general,
  especially in intro parts. This allows to separate entities to be heard
  better, so once the arangement gets more intense, the brain still
  considers those elements to be there, even though they're barely heard.
  
- Playing notes slightly off beat, or composing melodies that puts most
  of its notes to the weak beats or off-beat, as these places tend to have
  gaps, thus melody notes won't interfere with the bass or other sounds.
  This makes melodies and backings highly syncopated, adding some special
  funky feel to the music.

- The usual chiptune arpeggios at different speeds, including blazing
  fast 120 Hz ones.

- Gaps in continuous sounds to allow other 'channels' to cut through,
  or series of gaps of increasing durations to imitate volume decays.

- Variation in note durations, including extremely short ones, to imitate
  difference in volume, used for bass pulsations and echoing effects.
  

  
To create the music, a modern apporach has been used. First, I made a 
custom VST plugin called PCSPE. It emulates PC Speaker hardware, plays
some chiptune-like instruments via kind of 'macros', and handles virtual
sound channels by overlaying a few MIDI inputs with required priorities.
This allowed to compose music in a modern DAW, namely Reaper, then export
it to be played through actual PC Speaker.

Another plugin, ChipArp, has been developed to work alongside PCSPE and
automatically generate the typical chiptune arpeggios of desired kind and
speed by playing regular chords in the piano roll. This helped to work with
a multichannel arrangement much more conviniently than the old fashioned
way with hand-programmed arpeggios.

If you would like to create something similar, or perhaps make music for
your MS-DOS game or demo, you can get both VSTs for free from my website.

  

Contents

The original idea started as sound track for an MS-DOS styled game. PCSPE
VST has been created for this purpose, and a number of test songs has
been sketched, following the classic forumula of NES era games that had
looped songs about a minute long each. At some point it was decided that
this kind of sound not really fits the game, and I thought it would be
good to just use the material to make a quick prod that would demonstrate
PCSPE capabilities. Nevertheless, it took almost 1.5 years to finish the
project, starting from PCSPE development in July 2017 till early
January 2019.


Side A of the album contains original songs that were mostly composed
from scratch specifically for PC Speaker, or based on some old unused
material that fit well for this kind of rearrangement.

Side B contains either cover versions of some of my older chiptunes for 
other platforms, such as ZX Spectrum 48K and Sega Master System, or new 
songs developed from backlog of old half-finsihed stuff that wasn't
originally intended for PC Speaker, ranging from an XM module to a
pop punk guitar track. It also includes Square Wave song that originally
has been composed for this compilation, but a version of it became part
of the Planet X3 game by 8-Bit Guy a bit earlier.

Side X is a bonus track that comes from my demo for an obscure Z80-powered
phone hardware that also happen to have 8253 powered sound hardware very
much like PC Speaker. The song has been adapted with minor changes.



License

This production released under Creative Commons Attribution (CC-BY 3.0)
license terms. This includes not only code and data of the music program,
but the songs itself. You are free to use them in your programs, games,
videos, or make other kinds of derivative works, without asking me for an
explict permission, as long as you give me some kind of credit somewhere
alongside your production, in arbitrary form.



Greets to

utz
Tomy
Tufty
garvalf
castpixel
Jim Leonard
David Murray
Peter Sovietov
Pinball Wizzard
The 1-Bit Forum guys



Bandcamp  : https://shiru8bit.bandcamp.com/album/system-beeps
Soundcloud: https://soundcloud.com/shiru1bit/sets/system-beeps
YouTube   : https://www.youtube.com/watch?v=tUy1MEpqbvk

Mail      :	shiru@mail.ru
Web       : http://shiru.untergrund.net
Donate    : http://shiru.untergrund.net/donate.shtml