Fork me on GitHub

gion

8-bit sound effects and chiptune music for games, running in the browser.

Click a preset in the list to hear it. Roll gives you another sound from that family, Mutate nudges the one you have, and the sliders reshape it while the 3D spectrum follows along. Sound starts on your first click, which is the browser rule, not ours.

Touch works, so a tablet in landscape is fine. A phone runs it too, at a size that will not do you any favours.

Sound effects

Seven families to start from: pickup, laser, explosion, powerup, hit, jump, blip. Every sound is fifteen numbers, so rolling a new one costs nothing and a good one costs nothing to keep. Name it, press Add FX, and it joins the list.

Music

Six moods write perfectly-looping chiptune: upbeat, heroic, dark, chill, battle, boss. Each roll picks its own tempo, key, timbre, chord progression and grooves. The mixer sets lead, bass and drums, and the switches under it silence an instrument for good: a track often sounds better without its lead, and that choice is saved with the track.

The 3D view

The panel on the right is a spectral waterfall: time recedes into the screen, frequency runs across, amplitude rises. Drag it to spin. A laser shows up as a crest sliding down the relief; an explosion is a mountain that dissolves.

Files

A browser tab has no file dialog, so the two ends work differently here. To load a set, drag a .gion file onto the workbench. To keep what you made, press Save and the browser downloads the document. There is no Save As, because the browser picks the destination. Save WAV downloads the current sound as audio.

Using it in a game

The .gion file you download is the same file the library reads. Nothing is baked: your game renders the audio from those numbers at startup or on demand, so a whole soundtrack ships as a few hundred bytes of text.

doc, err := effects.Load("sounds.gion")
samples := doc.Effects[0].Params.Render(gion.DefaultRate)

There is also gion.Mutate, which derives a sibling of a sound. Mutate an explosion with a varying seed and repeated explosions stop sounding identical, at no cost in assets.

The desktop version

This page is the whole workbench. The desktop build adds real open and save dialogs, and it opens .gion files passed to it. Download a build for macOS, Windows or Linux, or on a Mac:

brew install --cask crgimenes/tap/gion