Dicey Table

Item Editors

Audio Editor

Trim, fade, normalize, loop-crossfade and re-encode a sound file from its lossless original, with a waveform, draggable trim handles and a looping preview.

On this page9 sections

Double-click a sound in the asset explorer's Sounds folder — or press Edit audio under a sound emitter's Sound picker — and it opens as a tab: a waveform, a preview transport and file details on the left, and on the right the Trim, Fades, Level, Loop and Output panels.

It is the tool for the things you would otherwise leave the editor to do: cut the silence off the start of a recording, give a one-shot a short fade-out, bring a quiet file up to level, and make a recording that was never meant to loop loop without a seam.

See the tab strip conventions — dirty dots, closing, cycling and mounted-but-hidden tabs apply here too.

How a sound gets into the project#

Import audio the way you import anything else: Upload in the asset explorer, drop the file on the explorer, or Import sound… under an emitter's Sound picker. It lands in sounds/ and shows up in the Sounds folder.

The importer takes MP3, WAV, OGG, FLAC, M4A/AAC, AIFF, Opus and WebM, and converts on the way in:

You import What is stored
An MP3 The file, as-is. It is already the format players get, and re-encoding a lossy file only loses quality.
Anything else An MP3 at the Balanced quality preset — mixed to mono when both channels are identical — plus a lossless copy of the source at originals/<name>.wav.

Whether a given format decodes is up to your browser. FLAC, AIFF, M4A and Opus depend on it, and a file it cannot read is refused by name. Convert that one to WAV or MP3 and import that instead.

Why MP3#

A mod may only publish .mp3, .ogg and .wav audio (see Assets). WAV is uncompressed and far too large to download, and Ogg Vorbis does not decode reliably in every browser. MP3 is the only compressed format of the three that every browser plays, so it is what every sound becomes.

Downloaded, then played#

Players download each sound whole, then play it. Nothing streams, and nothing is served from DiceyTable's servers — the file comes from your mod's repository like every other asset. That is why file size matters: a smaller file starts sooner for everyone at the table.

The waveform and preview#

The metadata row shows the Length (with the untrimmed length beside it once you trim), Channels (Mono or Stereo), Format, Size, and the Original it is rendered from, when there is one.

  • Trim handles. The two white handles on the waveform are the start and end of the part that is kept. Drag either one. Clicking anywhere else on the waveform moves the nearer handle to that point, which is the quickest way to trim.
  • Play / Stop plays the edited result — trim, fades, level and crossfade included — so what you hear is what you will save.
  • Loop preview repeats it. Turn it on whenever the sound is going to loop in the room: it is the only way to hear the seam.

Trim#

Start (s) and End (s), the same two points the handles drag. Anything outside them is dropped from the saved file.

Fades#

Fade in (s) and Fade out (s). A bed that loops wants neither — a fade at a loop point is an audible dip. A one-shot that plays on a delay usually wants a short fade-out, so it does not end on a click.

Level#

  • Normalize — scales the sound so its loudest peak sits at -1 dBFS. Use it on a quiet recording before you touch the emitter's Volume.
  • Gain (dB) — -40 to +24, applied after normalizing.

Leave some headroom. Every player also applies their own Environment and Master volume, and an emitter's own Volume can only turn a sound down.

Loop#

Crossfade (s) blends the end of the sound into its start, so a recording that was never made to loop — a minute of rain, a fire — loops without a seam. The saved file is shorter by the crossfade length, because its last sample now leads straight into its first. Listen with Loop preview on while you set it.

You do not need a crossfade just to make a loop gapless. An MP3 normally carries a few milliseconds of silence at each end, which clicks at a loop point. DiceyTable writes a loop tag into every MP3 it saves. The tag records exactly where the sound starts and ends, so an emitter on Loop plays the file with no gap in any browser. The crossfade is for recordings whose end and start simply do not match.

Output#

  • Quality — Small (about 64 kbps, mono — fine for background beds and distant sounds), Balanced (about 96–130 kbps — transparent for almost every ambient sound; what imports use) or High (about 170–190 kbps — for music and sounds heard up close).
  • Mono — mix to one channel, which roughly halves the file. A 3D positional emitter is heard as a single point anyway, so stereo only matters for a sound with 3D positional off. Small is always mono.

Saving#

  • Save & optimize re-encodes the file with your settings and replaces it in place. Its path does not change, so every emitter that plays it keeps working and picks up the new file. The status line reports the new size, quality and length.
  • Discard changes puts the sliders back to what was last saved.
  • Reset all returns every setting to its default. It does not save until you press Save & optimize.

While the settings differ from what was saved, the tab shows Unsaved and a dirty dot, and the project's own Save flushes it too.

Nothing degrades, however often you save#

Editing is non-destructive. Every save renders from the lossless original under originals/, never from the previous MP3, and your settings are stored inside the MP3 itself. Reopen a sound and every slider is where you left it. Save it ten times and it has still been encoded exactly once.

A sound imported as an MP3 has no lossless original yet. On its first save the editor decodes it and keeps that decode as originals/<name>.wav, so later saves never re-encode the first save's output.

⚠ Only MP3 files are edited in place. An .ogg or .wav that reached the project some other way — an older upload, or a file you committed to the repository yourself — opens with its waveform and preview, but the panels are disabled. Import it again: it is converted to MP3 automatically. Then point your emitters at the new file.

See also#

Did this page answer your question?