Keep time, find note durations
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.
Use this when the user wants bpm to ms, a delay time calculator, tempo calculator, note cycle hertz, milliseconds to beats per minute, bar length or song length. Accepts BPM or a note duration and returns whole to sixty-fourth values, dotted and triplet, pre-delay suggestions and approximate Italian marking ranges. BPM is quarter notes per minute, 20 to 400; up to 100000 song bars. Hertz is rhythmic repetition, not pitch. Does not record audio or detect pitch.
Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120.
Optional song bar count at this tempo and time signature. Example: 32.
Modifier for milliseconds: straight (default), dotted, or triplet. Example: dotted.
Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8.
Note represented by milliseconds; default quarter. Only use with milliseconds. Example: eighth.
Duration of the selected note, instead of bpm; resulting BPM must be 20 to 400. Up to three decimal places. Example: 500.
Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8.
Use this when the user wants bpm to ms, a delay time calculator, tempo calculator, note cycle hertz, milliseconds to beats per minute, bar length or song length. Accepts BPM or a note duration and returns whole to sixty-fourth values, dotted and triplet, pre-delay suggestions and approximate Italian marking ranges. BPM is quarter notes per minute, 20 to 400; up to 100000 song bars. Hertz is rhythmic repetition, not pitch. Does not record audio or detect pitch.
| Argument | Type | Description |
|---|---|---|
| bpm | number | Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120. |
| bars | integer | Optional song bar count at this tempo and time signature. Example: 32. |
| modifier | string | Modifier for milliseconds: straight (default), dotted, or triplet. Example: dotted. |
| beat_unit | any | Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8. |
| note_value | string | Note represented by milliseconds; default quarter. Only use with milliseconds. Example: eighth. |
| milliseconds | number | Duration of the selected note, instead of bpm; resulting BPM must be 20 to 400. Up to three decimal places. Example: 500. |
| beats_per_bar | integer | Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"bars": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Optional song bar count at this tempo and time signature. Example: 32."
},
"modifier": {
"enum": [
"straight",
"dotted",
"triplet"
],
"type": "string",
"description": "Modifier for milliseconds: straight (default), dotted, or triplet. Example: dotted."
},
"beat_unit": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 16
}
],
"description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8."
},
"note_value": {
"enum": [
"whole",
"half",
"quarter",
"eighth",
"sixteenth",
"thirty_second",
"sixty_fourth"
],
"type": "string",
"description": "Note represented by milliseconds; default quarter. Only use with milliseconds. Example: eighth."
},
"milliseconds": {
"type": "number",
"maximum": 18000,
"minimum": 0.001,
"description": "Duration of the selected note, instead of bpm; resulting BPM must be 20 to 400. Up to three decimal places. Example: 500."
},
"beats_per_bar": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8."
}
}
}Use this when the user wants a metronome for practice with a tempo ladder from start to target BPM, a BPM or percent step and minutes per stage. Returns the ladder table, total time and CSV download. Supports ascending or descending 20 to 400 BPM with up to 200 stages; percent steps round to 0.001 BPM and target gets the full stage time. Does not track sessions or record audio.
| Argument | Type | Description |
|---|---|---|
| step* | number | Positive change per stage, in BPM or percent; percent is limited to 100. Up to three decimal places. Example: 5. |
| start_bpm* | number | Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80. |
| step_type | string | Step units, default bpm. Percent uses the previous stage with a 0.001 BPM rounding. Example: percent. |
| target_bpm* | number | Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120. |
| minutes_per_step* | number | Minutes spent at each stage, including the target, up to three decimal places. Example: 2. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start_bpm",
"target_bpm",
"step",
"minutes_per_step"
],
"properties": {
"step": {
"type": "number",
"maximum": 380,
"minimum": 0.001,
"description": "Positive change per stage, in BPM or percent; percent is limited to 100. Up to three decimal places. Example: 5."
},
"start_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
},
"step_type": {
"enum": [
"bpm",
"percent"
],
"type": "string",
"description": "Step units, default bpm. Percent uses the previous stage with a 0.001 BPM rounding. Example: percent."
},
"target_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"minutes_per_step": {
"type": "number",
"maximum": 120,
"minimum": 0.001,
"description": "Minutes spent at each stage, including the target, up to three decimal places. Example: 2."
}
}
}Use this when the user wants a metronome, online metronome, 120 bpm metronome, tap tempo or a metronome for practice. Opens a live beat widget with 20 to 400 quarter-note BPM, 1 to 16 beats per bar, accents, subdivisions and an optional ramp with up to 1000 tempo stages. Reports milliseconds per beat and subdivision. The widget runs only while on screen; audio timing depends on the device. Does not record audio or detect pitch.
| Argument | Type | Description |
|---|---|---|
| bpm* | number | Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120. |
| ramp | object | Optional bar-based ramp; start must match bpm. The target then holds. Example: {start_bpm:80,end_bpm:120,bars_per_step:4,bpm_per_step:5}. |
| beat_unit | any | Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8. |
| subdivision | string | Clicks per signature beat: none=1, eighths=2, triplets=3, sixteenths=4. Default none. Example: eighths. |
| beats_per_bar | integer | Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8. |
| accent_pattern | array | One level per beat: 0 silent (including its subdivisions), 1 normal, 2 accented. Defaults to an accented first beat. Example: [2,1,1,1]. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"bpm"
],
"properties": {
"bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"ramp": {
"type": "object",
"required": [
"start_bpm",
"end_bpm",
"bars_per_step",
"bpm_per_step"
],
"properties": {
"end_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"start_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
},
"bpm_per_step": {
"type": "number",
"maximum": 380,
"minimum": 0.001,
"description": "Positive BPM change; direction follows start and end. Up to three decimal places. Example: 5."
},
"bars_per_step": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Completed bars before changing tempo. Example: 4."
}
},
"description": "Optional bar-based ramp; start must match bpm. The target then holds. Example: {start_bpm:80,end_bpm:120,bars_per_step:4,bpm_per_step:5}."
},
"beat_unit": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 16
}
],
"description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8."
},
"subdivision": {
"enum": [
"none",
"eighths",
"triplets",
"sixteenths"
],
"type": "string",
"description": "Clicks per signature beat: none=1, eighths=2, triplets=3, sixteenths=4. Default none. Example: eighths."
},
"beats_per_bar": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8."
},
"accent_pattern": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2,
"minimum": 0
},
"maxItems": 16,
"minItems": 1,
"description": "One level per beat: 0 silent (including its subdivisions), 1 normal, 2 accented. Defaults to an accented first beat. Example: [2,1,1,1]."
}
}
}