promotional bannermobile promotional banner

SoundSystem Studio

SoundSystem addon that add a simple FL Studio block.

SoundSystem Studio

Make music inside Minecraft, then play it on the DJ tables of SoundSystem. SoundSystem Studio adds a workstation block in the style of FL Studio: a step sequencer, a piano roll, a mixer with effects, and a playlist with tempo changes and automation. The song you make becomes a track you can play on a DJ computer, like any SoundCloud track.

SoundSystem Studio is an addon: it needs SoundSystem and SoundSystem Lib. Put the three jars in mods/, all made for the same loader, Fabric or NeoForge, on the server and on every player's client. Details in Installation below.

First release: 0.1.0. It works, but it is young: Status below says what has not been verified yet.


What it brings

The workstation — A studio desk: a keyboard and a pad controller on the top, a wide screen between two monitor speakers, and a rack with lit modules underneath. It faces you when you place it. It is in the SoundSystem creative tab, under the Studio banner.

Channel rack — A step sequencer: a click places a step, a drag paints several. Each channel is one of three kinds:

  • Synth — two oscillators, a filter, envelopes
  • Drum — kick, snare, hat, clap or tom, made by the studio itself, with no file
  • Sampler — your own sounds, WAV or OGG

Piano roll — Velocity, snap, ghost notes from the other channels, notes moved and stretched with the mouse.

Mixer — 17 inserts, up to 4 effects on each, channel routing, mute and pan. Six effects: echo, filter, reverb, distortion, compressor and a 3-band equalizer.

Playlist — 16 tracks, patterns you place, move and stretch, tempo changes (up to 64) and automation (an insert's volume and pan, the main knob of an effect: 16 curves of 128 points).

Editing together — Up to 4 players (configurable) on the same project at once. What one does shows up for the others straight away.

Files — .ssproj projects (the project and its samples in one file), WAV export, MIDI import.

Built-in help — The ? button of the editor sums it all up on one page.


On the DJ tables

A project becomes a track on the DJ computer:

  1. In the editor, build a song in the playlist.
  2. On a DJ computer, the source switch (next to the link field) cycles from SoundCloud to Studio.
  3. The list shows the world's projects that have a song, with their tempo and length. + (or a double click) adds one to the library.
  4. Load it on a deck: pitch, loops, effects, speakers and acoustics work as they do for a normal track.

The audio is never sent. The server shares only the notes (a few kilobytes); every player in range renders the sound themselves, and the render is identical on every machine.

A track is one revision of a project: if the producer keeps editing while a DJ plays the song, the decks keep the revision they loaded. Adding the project again gives a new track.


Installation

  • Minecraft 1.21.1
  • Fabric (Loader 0.16.14+ and Fabric API) or NeoForge 21.1+
  • SoundSystem 2.2.1 or newer
  • SoundSystem Lib 0.2.0 or newer
  • Java 21

Drop the jars in the mods folder. The same mods are needed on the server and for the players.

Getting started

  1. Open the SoundSystem creative tab, go to the Studio banner and take the Studio Workstation. It has no crafting recipe for now.
  2. Place it and right-click: the editor opens.
  3. Paint steps in the rack, open the Roll to write notes, press Play (or space).
  4. In the Playlist, place your patterns on the bars to build the song.
  5. Go to a DJ computer, pick the Studio source, add your project and play it.

The Loop / Song button decides what Play plays: the selected pattern in a loop, or the whole song. The full guide is in docs/STUDIO.md.

Samples

The studio ships none: a sample is a file that you put in <game folder>/soundsystem-studio/library (WAV in 8 to 32 bits, or OGG, 20 seconds at most). In the editor, + Sample lists them; you can also pick a file elsewhere (Browse…) or drop it on the window.

The sample is sent to the server once, which keeps it; the other players get it by themselves when they open or hear a project that uses it. Only send what you may redistribute.

Files

Everything lives in <game folder>/soundsystem-studio/: projects (.ssproj), exports (.wav), midi (.mid) and library (samples). A name that is taken is never overwritten (name (2).ssproj).

  • Opening a .ssproj replaces the project for everybody: the editor asks first.
  • Exporting a WAV: 16-bit, stereo, 44.1 kHz, through the same engine as the DJ tables. At most 30 minutes of song.
  • Importing a MIDI file: the notes go to a new pattern on the selected channel. A file with more than 4096 notes or more than 64 bars is refused, not cut.

For the server's owner

config/soundsystemstudio.json is written with its defaults the first time the game starts.

Option Default Meaning
editPermission everyone Who may open a workstation: everyone, creative or op
maxEditors 4 How many players may have one project open (1 to 16)
uploadPermission creative Who may send samples: off, creative, op, everyone
maxSamplesPerPlayer 64 Samples per player
maxBytesPerPlayerMb 64 MB per player
maxStoreMb 2048 Total size of the samples folder
maxConcurrentUploads 4 Uploads at the same time
unusedDays 30 Age after which an unused sample may be purged

Commands

For operators:

  • /soundsystemstudio samples list — lists the server's samples
  • /soundsystemstudio samples remove <hash> — removes a sample
  • /soundsystemstudio samples purge-unused — deletes the samples no project uses any more
  • /soundsystemstudio snapshots — shows how many revisions the world keeps for its DJ tables
  • /soundsystemstudio snapshots purge <keep> — forgets all but the newest <keep> revisions of each project

A track made from a forgotten revision can no longer be played.


Limits

Inserts 17 (master included)
Effects 4 per insert, 6 kinds
Playlist 16 tracks
Tempo 64 changes per song
Automation 16 curves of 128 points
Sample 20 seconds, 4 MB
.ssproj project 48 MB
Long-tailed effect refused if it rings for more than 4 seconds

The last one is on purpose: it lets a DJ table start anywhere in a song and hear exactly the same thing. An echo at low tempo with a lot of feedback, or a big reverb on an insert and the master, is the usual cause.

Status

Version 0.1.0 is out, for Fabric and NeoForge. Phases 0 to 8 of the plan are done in the code and tested in the game with a development client. The engine's tests cover rendering, projects, samples and robustness (fuzzing of every reader).

Not done or not verified yet:

  • key-locked tempo on the decks (it needs a change in the lib)
  • a test with two real players and on a dedicated server
  • what it sounds like: the tests check that the render is identical from one machine to another, not that it sounds good

Documentation


Samples are files the players bring; the addon ships and hosts no audio itself.

SoundSystem Studio Team

profile avatar
  • 1
    Followers
  • 3
    Projects
  • 786
    Downloads

More from Devolaux