LIBSONARE
GS Sound ModuleSixteen parts, one insertion effect, and your own .mid through them
LOCAL
OSS DEMO

Everything runs locally on your device and nothing is sent anywhere. This is an open-source demo, not a service.

LOCAL
PART1EFX00 00
No SoundFont, no sample data

Every note here plays a built-in fallback voice, so the page ships no samples and nothing leaves the browser. Physical models other than piano have not yet been tuned; future patch releases will adjust their sound. Each audition assembles a Standard MIDI File from the panels, imports it and bounces it offline.

Read about the instruments
LIBSONAREGS MODULE16 PARTS · GM/GS TONE GENERATOR
Part1
SoundPGM 0BANK 0
Insertion effect00 00 · ThruUnchanged at defaults
Sound

Asking the engine for the sound set…

Insertion effect64 adjustable · 0 fixed · 1 unchanged at defaults

Modern mapping: targets below name the controls in the modern insert chain. Classic uses a dedicated whole-type model.

Unchanged at defaults

This build does not change this type in the default-state probe. Other settings may make controls active.

Parameters0 named · 0 move the sound

This type prints no parameters.

What the derivation cannot see
  • One unit is one unit. Every number here is what one individual machine answered, and no second one has been measured. Entries flagged unit_specific are the ones a second machine is most likely to disagree with; that a entry is not flagged is not a claim that it would agree.
  • A slot with no printed_values field is not reached, and nothing here says whether it carries a quantity at all. Five hundred and thirty of the unit's parameters are in that state.
  • Reach is a statement about the archive, not about libsonare. A (type, slot) pair reached here still has to have somewhere to go in the insert it maps to before anything is translated, and that count is taken elsewhere.
  • The class assignment is taken from the printed spelling a record carries and from the type list its inference claims. A slot whose spelling matches a class it is not on would be assigned to it, and nothing here would notice: what would notice is a reading of that slot.
  • Where a class is selected by the bare byte range rather than by a conversion column, the inference's address list is part of the selector. A slot of one of those types carrying the same quantity at another address is invisible here rather than reported.
  • The defaults are the bytes the unit powered up holding. The manual's own printed statement of each default is not transcribed anywhere in the archive, so nothing here compares the two.
  • A ladder or a table is checked against the records that admit a reading. A setting no record admitted is carried on the law alone, and an entry flagged approximate is one no reading placed at all.
  • Whether a slot that returns a constant fraction of its cited column is on a second law or on the same one read through something else. The fraction and the shortfall are both reported for a slot this derivation does not reach, and neither is acted on: separating them wants a reading the unit can be asked for and this cannot produce.
1 100
PAN
C
REV
40
CHO
0
2 100
PAN
C
REV
40
CHO
0
3 100
PAN
C
REV
40
CHO
0
4 100
PAN
C
REV
40
CHO
0
5 100
PAN
C
REV
40
CHO
0
6 100
PAN
C
REV
40
CHO
0
7 100
PAN
C
REV
40
CHO
0
8 100
PAN
C
REV
40
CHO
0
9 100
PAN
C
REV
40
CHO
0
10 RHY 100
PAN
C
REV
40
CHO
0
11 100
PAN
C
REV
40
CHO
0
12 100
PAN
C
REV
40
CHO
0
13 100
PAN
C
REV
40
CHO
0
14 100
PAN
C
REV
40
CHO
0
15 100
PAN
C
REV
40
CHO
0
16 100
PAN
C
REV
40
CHO
0
Press play to bounce and hear the module
Built-in phrase — drop a .mid to play your own

Nothing to send: every setting is at its power-on value.