share_preset
Share something the user made on a device with every SynthHub user, under CC BY-SA 4.0: a sound, a sequence or pattern, a kit, a project, a bank of their own sounds, or a MIDI clip any device can play. Its content: the device's own data (SysEx, e.g. from backup_presets), settings by driver address (from list_routes, e.g. {'/filter/cutoff': [90]}, which also works for devices without dumps), and/or a standard MIDI file. Only what the user made: never factory presets, nor sounds or sequences bought or downloaded from others — set own_sound only after asking the user. Made from someone else's shared preset? Pass derived_from: it credits them, as the licence requires. Describe it well (category, genres, tags, tempo, key, tips): that is how people find it. The same content shared twice returns the existing id; the author publishes new versions with update_preset and can withdraw it (withdraw_preset). Through a relay, the device data can be captured from the device itself: pass code and start the dump from the device's menu during the call, or give request_hex (the device's dump-request message, which the user accepts at the relay). An audio preview is added by its author with PUT /u//v1/presets//audio (MP3, Ogg, M4A or WebM, 1 MB at most).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"device": "<device>",
"name": "<name>",
"own_sound": "<own_sound>"
},
"name": "share_preset"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hex | No | The device data as SysEx, in hex (64 KB at most). | |
| key | No | Musical key, e.g. 'A minor'. | |
| code | No | A relay's pairing code: capture the device data from the device instead of hex. | |
| kind | No | What it is (default sound). | |
| name | Yes | Its name (80 characters at most). | |
| port | No | With code: the device's port name (or part of it), when the relay has several. | |
| tags | No | Character and free words: 'warm', 'dark', 'evolving'… (8 at most). | |
| tips | No | How to play it: mod wheel, aftertouch, register… (500 characters at most). | |
| tempo | No | BPM, for sequences and clips. | |
| device | Yes | Driver id (e.g. 'korg/minilogue') or slug. | |
| genres | No | Musical styles: 'techno', 'ambient'… (8 at most). | |
| seconds | No | With code: how long to wait for the dump (default 5). | |
| user_id | No | Your anonymous SynthHub id, if you kept it from an earlier session (see the server instructions). Optional. | |
| category | No | The kind of sound or part. | |
| firmware | No | Firmware version of the device it was made on. | |
| settings | No | Settings by driver address: {'/filter/cutoff': [90], '/amp/attack': [12]} (512 at most). | |
| librarian | No | The synth the librarian took it from (take_sound's librarian): loading it then goes through the same exchange, fitted to the receiving synth. | |
| own_sound | Yes | Must be true: the user made it (not a factory preset, not someone else's). | |
| description | No | What it sounds like (500 characters at most). | |
| midi_base64 | No | A standard MIDI file, base64 (64 KB at most). | |
| request_hex | No | With code: the device's dump-request SysEx, sent first (e.g. 'F0 42 30 00 01 2C 10 F7'). | |
| derived_from | No | Id of the shared preset it was made from. |