
Design notification sounds from layered tones and get an editor link to play and download.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Build a notification sound from your own layer design and get an editor link for it. The link opens the sound in the editor, where the user plays, tweaks and downloads it. Returns the link, the stored sound and warnings for any value that was out of range, rounded or ignored. Read get_sound_guide first.
Layers play together, each from its own Start after. Leave out any field at its default. Up to 16 layers.
Name. Sound name, up to 32 characters.
One effect over the whole sound.
Note length. How long each note is held, shared by every layer and every repeat. Unit: s. Range 0.003 to 5, step 0.001, default 0.1.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Build a notification sound from your own layer design and get an editor link for it. The link opens the sound in the editor, where the user plays, tweaks and downloads it. Returns the link, the stored sound and warnings for any value that was out of range, rounded or ignored. Read get_sound_guide first.
| Argument | Type | Description |
|---|---|---|
| name | string | Name. Sound name, up to 32 characters. |
| effect | object | One effect over the whole sound. |
| layers* | array | Layers play together, each from its own Start after. Leave out any field at its default. Up to 16 layers. |
| duration | number | Note length. How long each note is held, shared by every layer and every repeat. Unit: s. Range 0.003 to 5, step 0.001, default 0.1. |
{
"type": "object",
"required": [
"layers"
],
"properties": {
"name": {
"type": "string",
"maxLength": 32,
"description": "Name. Sound name, up to 32 characters."
},
"effect": {
"type": "object",
"properties": {
"type": {
"enum": [
"none",
"reverb",
"chamber",
"echo",
"pingpong",
"chorus",
"phone",
"crunch"
],
"type": "string",
"default": "none",
"description": "Effect. One effect over the whole sound. Options: None: dry, no effect; Reverb: soft room, a gentle space; Chamber: big hall, long airy tail; Echo: repeats that fade away; Ping-Pong: echo that bounces left and right; Chorus: wider and shimmery; Phone: tiny speaker sound; Crunch: rough 8-bit edge."
},
"amount": {
"type": "number",
"default": 0.3,
"maximum": 1,
"minimum": 0,
"description": "Amount. Effect mix. 0 is dry, 1 is fully wet. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0.3."
}
},
"description": "One effect over the whole sound.",
"additionalProperties": false
},
"layers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pan": {
"type": "number",
"default": 0,
"maximum": 1,
"minimum": -1,
"description": "Balance. Stereo position. -1 is left, 1 is right. Unit: -1 to 1. Range -1 to 1, step 0.01, default 0."
},
"freq": {
"type": "number",
"default": 880,
"maximum": 4000,
"minimum": 40,
"description": "Pitch. Note pitch. On a noise layer it is the centre of the hiss band. Unit: Hz. Range 40 to 4000, step 1, default 880."
},
"gain": {
"type": "number",
"default": 1,
"maximum": 1,
"minimum": 0,
"description": "Level. Layer loudness. Unit: 0 to 1. Range 0 to 1, step 0.01, default 1."
},
"seed": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Noise seed. Fixes the noise pattern so the sound is the same every play. Set one on every noise layer. Noise layers only."
},
"wave": {
"enum": [
"sine",
"triangle",
"sawtooth",
"square",
"noise"
],
"type": "string",
"default": "sine",
"description": "Wave. Wave shape. Options: Sine: smooth and pure; Triangle: soft and woody; Saw: bright and buzzy; Square: sharp and electronic; Noise: hiss, wind and rumble."
},
"decay": {
"type": "number",
"default": 0.3,
"maximum": 2,
"minimum": 0.003,
"description": "Decay. Time from full level down to the Hold level while the note is held. Unit: s. Range 0.003 to 2, step 0.001, default 0.3."
},
"delay": {
"type": "number",
"default": 0,
"maximum": 5,
"minimum": 0,
"description": "Start after. When this layer starts, counted from the start of the sound. Spaces the notes of a melody. Unit: s. Range 0 to 5, step 0.01, default 0."
},
"amRate": {
"type": "number",
"default": 8,
"maximum": 50,
"minimum": 0.5,
"description": "Flutter speed. Tremolo speed. Unit: Hz. Range 0.5 to 50, step 0.1, default 8."
},
"attack": {
"type": "number",
"default": 0.005,
"maximum": 1,
"minimum": 0.0005,
"description": "Attack. Time from silence to full level. Under 0.005 s gives a hard click at the start. Unit: s. Range 0.0005 to 1, step 0.0005, default 0.005."
},
"fmRate": {
"type": "number",
"default": 6,
"maximum": 50,
"minimum": 0.5,
"description": "Wobble speed. Vibrato speed. Unit: Hz. Range 0.5 to 50, step 0.1, default 6."
},
"repeat": {
"type": "number",
"default": 1,
"maximum": 5,
"minimum": 1,
"description": "Times. How many times the layer plays its note. Unit: count. Range 1 to 5, step 1, default 1."
},
"enabled": {
"type": "boolean",
"default": true,
"description": "On. A layer that is off stays in the sound but is silent."
},
"release": {
"type": "number",
"default": 0.4,
"maximum": 5,
"minimum": 0.003,
"description": "Ring out. Fade after the note ends. The main tail control. Unit: s. Range 0.003 to 5, step 0.001, default 0.4."
},
"sustain": {
"type": "number",
"default": 0,
"maximum": 1,
"minimum": 0,
"description": "Hold. Level kept after Decay while the note is held. 0 is a struck or plucked note, 1 an organ-like note. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
},
"amAmount": {
"type": "number",
"default": 0,
"maximum": 1,
"minimum": 0,
"description": "Flutter. Tremolo depth: how far the level dips. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
},
"fmAmount": {
"type": "number",
"default": 0,
"maximum": 1,
"minimum": 0,
"description": "Wobble. Vibrato depth. 1 swings the pitch 4 semitones each way. Unit: 0 to 1. Range 0 to 1, step 0.01, default 0."
},
"repeatGap": {
"type": "number",
"default": 0.1,
"maximum": 1,
"minimum": 0.02,
"description": "Gap. Silence between one repeat ending and the next starting. Unit: s. Range 0.02 to 1, step 0.01, default 0.1."
},
"sharpness": {
"type": "number",
"default": 1.2,
"maximum": 20,
"minimum": 0.5,
"description": "Sharpness. Width of the hiss band. Low is a wide hiss, high is close to a pitched whistle. Range 0.5 to 20, step 0.1, default 1.2. Noise layers only."
},
"noiseColor": {
"enum": [
"white",
"pink",
"brown"
],
"type": "string",
"default": "white",
"description": "Noise type. Noise colour. Options: White: bright, even hiss; Pink: softer, like wind; Brown: deep rumble. Noise layers only."
},
"pitchSlide": {
"type": "number",
"default": 0,
"maximum": 24,
"minimum": -24,
"description": "Slide. Pitch glide over the Note length, up when positive, down when negative. Unit: semitones. Range -24 to 24, step 1, default 0."
},
"randomNoise": {
"type": "boolean",
"default": false,
"description": "Random. New noise on every play. Keep false. Noise layers only."
}
},
"additionalProperties": false
},
"maxItems": 16,
"minItems": 1,
"description": "Layers play together, each from its own Start after. Leave out any field at its default. Up to 16 layers."
},
"duration": {
"type": "number",
"default": 0.1,
"maximum": 5,
"minimum": 0.003,
"description": "Note length. How long each note is held, shared by every layer and every repeat. Unit: s. Range 0.003 to 5, step 0.001, default 0.1."
}
},
"additionalProperties": false
}Get the full design of a built-in sound and its editor link, to use as a starting point for create_sound.
| Argument | Type | Description |
|---|---|---|
| name* | string | Sound name, e.g. "Tri-Tone". |
| group | string | Group to look in, when a name is in more than one. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Sound name, e.g. \"Tri-Tone\"."
},
"group": {
"enum": [
"featured",
"classics",
"chords",
"messages",
"alerts",
"arcade",
"chiptune",
"chiptunes",
"scifi",
"nature",
"spooky",
"motion"
],
"type": "string",
"description": "Group to look in, when a name is in more than one."
}
},
"additionalProperties": false
}How sounds are built: layers, envelope, pitch, timing, noise, levels and effects, with example designs. Read it once before designing.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List the built-in sounds by group, or search them by name. Without arguments it lists every group with its sound names. Use a close built-in sound as a starting point.
| Argument | Type | Description |
|---|---|---|
| group | string | Only this group, with each sound described. |
| query | string | Search sound names, e.g. "bell" or "coin". |
{
"type": "object",
"properties": {
"group": {
"enum": [
"featured",
"classics",
"chords",
"messages",
"alerts",
"arcade",
"chiptune",
"chiptunes",
"scifi",
"nature",
"spooky",
"motion"
],
"type": "string",
"description": "Only this group, with each sound described."
},
"query": {
"type": "string",
"description": "Search sound names, e.g. \"bell\" or \"coin\"."
}
},
"additionalProperties": false
}Turn a share link (or the code after #s=) back into the sound design, to change it and call create_sound again.
| Argument | Type | Description |
|---|---|---|
| link* | string | A share link, "#s=..." or the bare code. |
{
"type": "object",
"required": [
"link"
],
"properties": {
"link": {
"type": "string",
"description": "A share link, \"#s=...\" or the bare code."
}
},
"additionalProperties": false
}