Resonant Blocks and Resonators

NeroNotes' first in-world instruments: seven Resonant Blocks — matte-black blocks each tuned to one voice family — and the Resonator, a disk player that performs a whole composition on a resonance channel, in sync for every listener.

Placeholder art: the block textures in this release are generated placeholders (a matte near-black base with a neon accent per voice family), not final art. All sounds are aliases of vanilla sound events — no custom audio ships yet.

In creative mode, every NeroNotes block and item lives in the dedicated NeroNotes creative tab.

Resonant Blocks

One block per voice family, each with that family's neon accent:

BlockVoice family
Deep Bass Resonant BlockDeep Bass
Sub Pad Resonant BlockSub Pad
Low Drone Resonant BlockLow Drone
High Lead Resonant BlockHigh Lead
Glassy Pluck Resonant BlockGlassy Pluck
Percussion Resonant BlockPercussion
Synth Texture Resonant BlockSynth Texture

Using them

  • Tap (right-click) — the block plays its current note as a live, local sound heard by anyone in range, and its neon edge-light flares for a moment. No channel and no permission involved — it is exactly as public as tapping a vanilla note block.
  • Sneak-tap — tune the block one step higher within its family's pitch band (wrapping back to the bottom), previewing the new note as you go.
  • Incoming resonance — when a channel note of the block's own family plays nearby, the block adopts that note's pitch and flares along with the music. Your walls light up with the track.

The flare is a blockstate (lit), so it also emits a little real light while it burns.

The Resonator

The Resonator is a disk player: a matte-black unit with a neon ring that stays lit while it is playing and pulses on each burst of notes.

  • Placement — whoever places a Resonator becomes its owner, recorded server-side. It binds to the owner's base resonance channel (created automatically if it does not exist yet).
  • Use with a pressed disk in hand — loads the disk's composition onto the Resonator. The disk is read, not consumed — it stays in your hand, so one disk can seed as many Resonators as you like.
  • Use (right-click, otherwise) — toggles play/stop of the composition it holds.
  • Sneak-use (empty hand) — clears the stored composition and stops playback.
  • All of the above follow the channel's rules: the owner, players on the channel's trust list, or an operator. Anyone else gets a quiet refusal message — and machines get no shortcuts: a Resonator emits with exactly its owner's authority, and it keeps playing while its owner is offline.
  • The audio-spam cap applies: if too many channels are already playing nearby, pressing play answers with a polite "too busy" message.

Pressed custom disks are how compositions travel between machines; the Resonator stores the loaded composition on the block itself, so it survives restarts and chunk reloads (resuming at the position it left off — a reload is a seek, not a restart). One honest limitation: note lengths are stored in every score, but this release voices notes as one-shots only — sustained note-off pairs are a later release.

Synchronised playback

Two Resonators on the same channel stay audibly in step, and so do two listeners with different connection speeds. How:

  • The server owns the timeline — a single anchor (position + game tick) per channel.
  • Each client schedules its audio against that anchor, compensating by half its measured round-trip time, clamped to sync.max_latency_compensation_ms (default 500 ms).
  • If a client's playback drifts beyond sync.drift_threshold_ms (default 100 ms), it performs a hard seek to the correct position. Playback speed is never adjusted to catch up — a brief seek is far less audible than warped music.
  • Late joiners and players whose chunks reload simply seek to the current position and fall in step.

Client configuration

These keys in config/neronotes.properties are yours locally — the server never overrides them:

KeyDefaultMeaning
client.volume.deep_bass1.0 (0–1)Volume multiplier for the Deep Bass family
client.volume.sub_pad1.0 (0–1)Volume multiplier for the Sub Pad family
client.volume.low_drone1.0 (0–1)Volume multiplier for the Low Drone family
client.volume.high_lead1.0 (0–1)Volume multiplier for the High Lead family
client.volume.glassy_pluck1.0 (0–1)Volume multiplier for the Glassy Pluck family
client.volume.percussion1.0 (0–1)Volume multiplier for the Percussion family
client.volume.synth_texture1.0 (0–1)Volume multiplier for the Synth Texture family
client.glow_intensity1.0 (0–1)Intensity of the neon flare particles
client.mute_other_basesfalseMute playback from channels owned by other players

client.mute_other_bases is the comfort switch for shared servers: enable it and other players' synced base audio goes silent for you, while your own channels keep playing. It is a local audio preference only — it grants and removes no permissions.

The fourth and last client-local key, client.telemetry_opt_out, is covered in Privacy and your data; every key is listed on the Configuration page.

Two related server-authoritative keys tune the sync engine for everyone:

KeyDefaultMeaning
sync.drift_threshold_ms100 (20–1000)Drift beyond which a client hard-seeks
sync.max_latency_compensation_ms500 (0–2000)Clamp on round-trip latency compensation

Search across every Nero mod wiki.