{"openapi":"3.1.0","info":{"title":"Music Production Calc","version":"1.0.0","description":"Studio arithmetic: tempo grids, song length, tap tempo, key shifts and capo, Camelot mixing, diatonic chords, fretboard notes, pitch-speed and delay tails. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Music Production Calc: Studio arithmetic: tempo grids, song length, tap tempo, key shifts and capo, Camelot mixing, diatonic chords, fretboard notes, pitch-speed and delay tails. Use /tempo-grid for note-value times in ms, Hz, samples and MIDI ticks, /song-length for bars to seconds, /tap-timestamps for tap tempo, /key-shift for transposing a key with relative key and capo, /camelot-key for harmonic mixing, /diatonic-chords for the chords of a key, /fret-note for fretboard notes, /pitch-speed for semitone, cent and speed conversion and /delay-tail for feedback decay. Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://music-production-calc.x402tookit.com"}],"paths":{"/camelot-key":{"get":{"operationId":"camelot_key","summary":"Camelot wheel code for a musical key and its harmonic-mixing matches; optionally test if two keys mix.","description":"Camelot wheel code for a musical key and its harmonic-mixing matches; optionally test if two keys mix.","tags":["dj","camelot","harmonic-mixing","key","circle-of-fifths"],"parameters":[{"name":"key","in":"query","required":true,"description":"Key: C, F#, Bb, Am, C#m or 'A minor' (no mode means major)","schema":{"type":"string"}},{"name":"mixWith","in":"query","required":false,"description":"A second key to test for compatibility (optional)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"camelotCode":{"type":["null","string"]},"camelotNumber":{"type":["null","number"]},"camelotLetter":{"type":["null","string"]},"standardKeyName":{"type":["null","string"]},"compatibleKeys":{"type":["array","null"],"items":{"type":"object","properties":{"code":{"type":["null","string"]},"key":{"type":["null","string"]},"relation":{"type":["null","string"]}}}},"mixWithCode":{"type":["null","string"]},"mixWithKey":{"type":["null","string"]},"wheelSteps":{"type":["null","number"]},"compatible":{"type":["boolean","null"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPATIBLE","summary":"A minor is 8A on the Camelot wheel; it mixes with 9A, 7A, 8B. C major is 8B: compatible (1 step).","reasons":["Adjacent numbers on the same letter are a fifth apart; the same number on the other letter is the relative key.","Number 1 follows 12, so the wheel wraps.","…1 more"],"camelotCode":"8A","camelotNumber":8,"camelotLetter":"A","standardKeyName":"A minor","compatibleKeys":[{"code":"8A","key":"A minor","relation":"same key"},{"code":"9A","key":"E minor","relation":"one step up the wheel (a fifth above)"}],"mixWithCode":"8B","mixWithKey":"C major","wheelSteps":1,"compatible":true,"degraded":false,"notChecked":["tempo difference and energy, which matter as much as key when mixing","tracks whose detected key is wrong or that change key partway","…1 more"],"source":"computed locally (Camelot numbering: 8B = C major, 8A = A minor; one step round the wheel = one fifth)","asOf":"2026-10-12T01:46:27.551Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/camelot-key"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/camelot-key"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/camelot-key"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/camelot-key"}}]}}},"/delay-tail":{"get":{"operationId":"delay_tail","summary":"Feedback delay decay: dB lost per repeat, repeats to fall 60 dB and total tail time in ms from delay and feedback.","description":"Feedback delay decay: dB lost per repeat, repeats to fall 60 dB and total tail time in ms from delay and feedback.","tags":["delay","feedback","decay","mixing","dsp"],"parameters":[{"name":"delayMs","in":"query","required":true,"description":"Delay time in milliseconds","schema":{"type":"number"}},{"name":"feedbackPercent","in":"query","required":true,"description":"Feedback as a percent of the previous repeat, above 0 and below 100","schema":{"type":"number"}},{"name":"decayDb","in":"query","required":false,"description":"How far the tail must fall to count as finished, in dB (default 60)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"delayMs":{"type":["null","number"]},"feedbackPercent":{"type":["null","number"]},"feedbackRatio":{"type":["null","number"]},"dbPerRepeat":{"type":["null","number"]},"decayTargetDb":{"type":["null","number"]},"repeatsToTarget":{"type":["null","number"]},"tailMs":{"type":["null","number"]},"tailSeconds":{"type":["null","number"]},"firstRepeatLevels":{"type":["array","null"],"items":{"type":"object","properties":{"repeat":{"type":["null","number"]},"levelDb":{"type":["null","number"]},"timeMs":{"type":["null","number"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"50% feedback loses 6.021 dB per repeat: 10 repeats (5000 ms) to fall 60 dB.","reasons":["Each repeat is feedback x the previous one, so after n repeats the level is f^n, or n x 20 x log10(f) dB.","Repeats are rounded up to the first one at or below the target."],"delayMs":500,"feedbackPercent":50,"feedbackRatio":0.5,"dbPerRepeat":-6.0206,"decayTargetDb":60,"repeatsToTarget":10,"tailMs":5000,"tailSeconds":5,"firstRepeatLevels":[{"repeat":1,"levelDb":-6.02,"timeMs":500},{"repeat":2,"levelDb":-12.04,"timeMs":1000}],"degraded":false,"notChecked":["filters, saturation or ducking in the feedback path, which change the decay","the very first (dry plus first repeat) level, which depends on the wet/dry mix","…1 more"],"source":"computed locally (each repeat is scaled by f: dB per repeat = 20 x log10 f; repeats = decay dB / dB per repeat, rounded up)","asOf":"2026-10-12T01:46:27.817Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/delay-tail"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/delay-tail"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/delay-tail"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/delay-tail"}}]}}},"/diatonic-chords":{"get":{"operationId":"diatonic_chords","summary":"The 7 triads and 7th chords of a key (major, natural or harmonic minor) with spelled notes and Roman numerals.","description":"The 7 triads and 7th chords of a key (major, natural or harmonic minor) with spelled notes and Roman numerals.","tags":["chords","key","harmony","roman-numerals","songwriting"],"parameters":[{"name":"key","in":"query","required":true,"description":"Key: C, F#, Bb, Am, F#m or 'Bb minor' (no mode means major)","schema":{"type":"string"}},{"name":"scale","in":"query","required":false,"description":"major, minor (natural) or harmonic-minor; default follows the key's mode","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"key":{"type":["null","string"]},"scaleUsed":{"type":["null","string"]},"signature":{"type":["null","string"]},"scaleNotes":{"type":["array","null"],"items":{"type":"string"}},"chords":{"type":["array","null"],"items":{"type":"object","properties":{"degree":{"type":["null","number"]},"roman":{"type":["null","string"]},"triad":{"type":["null","string"]},"triadNotes":{"type":["array","null"],"items":{"type":"string"}},"triadQuality":{"type":["null","string"]},"seventh":{"type":["null","string"]},"seventhNotes":{"type":["array","null"],"items":{"type":"string"}}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"C major, major scale: C Dm Em F G Am Bdim.","reasons":["Each chord stacks the scale degrees a third apart (1-3-5, then 7), so the spelling follows the scale and never uses an enharmonic respelling.","Lower-case numerals are minor or diminished, upper-case are major."],"key":"C major","scaleUsed":"major","signature":"no sharps or flats","scaleNotes":["C","D","…5 more"],"chords":[{"degree":1,"roman":"I","triad":"C","triadNotes":["C","E","…1 more"],"triadQuality":"major","seventh":"Cmaj7","seventhNotes":["C","E","…2 more"]},{"degree":2,"roman":"ii","triad":"Dm","triadNotes":["D","F","…1 more"],"triadQuality":"minor","seventh":"Dm7","seventhNotes":["D","F","…2 more"]}],"degraded":false,"notChecked":["chords borrowed from other keys or modes, and secondary dominants","modes beyond major, natural minor and harmonic minor (melodic minor and church modes)","…1 more"],"source":"computed locally (stacked thirds on each scale degree; each note keeps its own letter name)","asOf":"2026-10-12T01:46:28.079Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/diatonic-chords"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/diatonic-chords"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/diatonic-chords"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/diatonic-chords"}}]}}},"/fret-note":{"get":{"operationId":"fret_note","summary":"Note name, MIDI number and Hz at a fret on guitar, bass, ukulele or violin strings, with alternate tunings.","description":"Note name, MIDI number and Hz at a fret on guitar, bass, ukulele or violin strings, with alternate tunings.","tags":["guitar","fretboard","midi","frequency","tuning"],"parameters":[{"name":"instrument","in":"query","required":true,"description":"guitar, bass, ukulele or violin","schema":{"type":"string"}},{"name":"string","in":"query","required":true,"description":"String number, 1 = highest-pitched in normal numbering (guitar 6 = low E)","schema":{"type":"integer"}},{"name":"fret","in":"query","required":true,"description":"Fret 0 (open) to 24","schema":{"type":"integer"}},{"name":"tuningOffset","in":"query","required":false,"description":"Tune the whole instrument by semitones, -12 to 12 (-2 = whole step down); default 0","schema":{"type":"integer"}},{"name":"a4","in":"query","required":false,"description":"Reference pitch for A4 in Hz, 400 to 480 (default 440)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"instrument":{"type":["null","string"]},"stringNumber":{"type":["null","number"]},"fretNumber":{"type":["null","number"]},"tuningOffsetSemitones":{"type":["null","number"]},"openStringNote":{"type":["null","string"]},"openStringMidi":{"type":["null","number"]},"noteSharp":{"type":["null","string"]},"noteFlat":{"type":["null","string"]},"midiNumber":{"type":["null","number"]},"frequencyHz":{"type":["null","number"]},"a4Used":{"type":["null","number"]},"octaveUp12thFretNote":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"guitar string 6, fret 5: A2, MIDI 45, 110 Hz.","reasons":["Open strings (standard EADGBE, string 1 = high E4, string 6 = low E2); each fret adds one semitone.","Frequency uses equal temperament with MIDI 69 = A4."],"instrument":"guitar","stringNumber":6,"fretNumber":5,"tuningOffsetSemitones":0,"openStringNote":"E2","openStringMidi":40,"noteSharp":"A2","noteFlat":"A2","midiNumber":45,"frequencyHz":110,"a4Used":440,"octaveUp12thFretNote":"A3","degraded":false,"notChecked":["intonation, string gauge and capo-induced pitch drift on a real instrument","alternate tunings where strings move by different amounts (use the tuningOffset only for whole-instrument shifts)","…1 more"],"source":"computed locally (open-string MIDI note + fret semitones; Hz = A4 x 2^((midi - 69) / 12))","asOf":"2026-10-12T01:46:28.342Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/fret-note"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/fret-note"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/fret-note"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/fret-note"}}]}}},"/key-shift":{"get":{"operationId":"key_shift","summary":"Shift a key by semitones with the right sharp or flat spelling, its relative major or minor, signature and capo shapes.","description":"Shift a key by semitones with the right sharp or flat spelling, its relative major or minor, signature and capo shapes.","tags":["key","transpose","relative-key","capo","guitar"],"parameters":[{"name":"key","in":"query","required":true,"description":"Starting key: C, F#, Bb, Am, F#m or 'Bb minor' (no mode means major)","schema":{"type":"string"}},{"name":"semitones","in":"query","required":true,"description":"Shift in semitones, -24 to 24 (positive is up)","schema":{"type":"integer"}},{"name":"prefer","in":"query","required":false,"description":"sharps or flats, used only when two spellings are equally simple (for example F# or Gb major)","schema":{"type":"string"}},{"name":"capo","in":"query","required":false,"description":"Capo fret 1 to 11 to get the chord-shape key to play (optional)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"fromKey":{"type":["null","string"]},"fromSignature":{"type":["null","string"]},"fromRelativeKey":{"type":["null","string"]},"semitonesShifted":{"type":["null","number"]},"toKey":{"type":["null","string"]},"toMode":{"type":["null","string"]},"toSignature":{"type":["null","string"]},"toFifthsPosition":{"type":["null","number"]},"relativeKey":{"type":["null","string"]},"capoChoice":{},"capoOptions":{"type":["array","null"],"items":{"type":"object","properties":{"capo":{"type":["null","number"]},"shapeKey":{"type":["null","string"]},"signature":{"type":["null","string"]},"openFriendly":{"type":["boolean","null"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Eb major up 4 semitone(s) is G major (1 sharp); relative E minor.","reasons":["The new tonic is the old pitch class plus the shift; the spelling with the fewest sharps or flats is used, and a tie follows the direction of the shift (or your prefer).","The relative key shares the key signature: relative minor is a minor third below a major tonic, relative major a minor third above a minor tonic."],"fromKey":"Eb major","fromSignature":"3 flats","fromRelativeKey":"C minor","semitonesShifted":4,"toKey":"G major","toMode":"major","toSignature":"1 sharp","toFifthsPosition":1,"relativeKey":"E minor","capoChoice":null,"capoOptions":[{"capo":0,"shapeKey":"G major","signature":"1 sharp","openFriendly":true},{"capo":1,"shapeKey":"F# major","signature":"6 sharps","openFriendly":false}],"degraded":false,"notChecked":["modulation style: a key change can also be a pivot chord or truck-driver lift, not just a straight shift","the vocal or instrument range in the new key","…1 more"],"source":"computed locally (pitch class + semitones; spelling with the fewest accidentals in the key signature)","asOf":"2026-10-12T01:46:28.605Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/key-shift"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/key-shift"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/key-shift"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/key-shift"}}]}}},"/pitch-speed":{"get":{"operationId":"pitch_speed","summary":"Convert semitones, cents, speed percent, two frequencies or two BPMs into one varispeed ratio with all equivalents.","description":"Convert semitones, cents, speed percent, two frequencies or two BPMs into one varispeed ratio with all equivalents.","tags":["pitch","cents","varispeed","sampler","dj"],"parameters":[{"name":"semitones","in":"query","required":false,"description":"Pitch shift in semitones (give exactly one input group)","schema":{"type":"number"}},{"name":"cents","in":"query","required":false,"description":"Pitch shift in cents (100 cents = 1 semitone)","schema":{"type":"number"}},{"name":"speedPercent","in":"query","required":false,"description":"Speed change in percent, for example 8 for +8 percent (more than -100)","schema":{"type":"number"}},{"name":"fromHz","in":"query","required":false,"description":"Starting frequency in Hz (use with toHz)","schema":{"type":"number"}},{"name":"toHz","in":"query","required":false,"description":"Ending frequency in Hz (use with fromHz)","schema":{"type":"number"}},{"name":"fromBpm","in":"query","required":false,"description":"Starting tempo (use with toBpm)","schema":{"type":"number"}},{"name":"toBpm","in":"query","required":false,"description":"Ending tempo (use with fromBpm)","schema":{"type":"number"}},{"name":"bpm","in":"query","required":false,"description":"Optional tempo to show after the change","schema":{"type":"number"}},{"name":"hz","in":"query","required":false,"description":"Optional frequency to show after the change","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"inputMode":{"type":["null","string"]},"ratio":{"type":["null","number"]},"semitones":{"type":["null","number"]},"cents":{"type":["null","number"]},"speedPercent":{"type":["null","number"]},"octaves":{"type":["null","number"]},"isSpeedUp":{"type":["boolean","null"]},"bpmAfter":{"type":["null","number"]},"hzAfter":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Ratio 1.059463 = 1 semitone(s) = 100 cents = 5.946% speed; 120 BPM becomes 127.14.","reasons":["Varispeed changes pitch and tempo together by the same ratio: one semitone is a factor of 2^(1/12), about 5.946 percent.","Cents = 1200 x log2(ratio), so 1200 cents is one octave (ratio 2)."],"inputMode":"semitones","ratio":1.05946309,"semitones":1,"cents":100,"speedPercent":5.94631,"octaves":0.083333,"isSpeedUp":true,"bpmAfter":127.1356,"hzAfter":466.1638,"degraded":false,"notChecked":["time-stretch and pitch-shift algorithms, which change pitch without speed and add artefacts","the useful range of your sampler, turntable or plugin","…1 more"],"source":"computed locally (ratio r = 2^(semitones / 12); cents = 1200 x log2 r; speed percent = (r - 1) x 100)","asOf":"2026-10-12T01:46:28.869Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/pitch-speed"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/pitch-speed"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/pitch-speed"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/pitch-speed"}}]}}},"/song-length":{"get":{"operationId":"song_length","summary":"Song length in seconds and m:ss from bars, BPM and time signature, plus bars or BPM needed for a target length.","description":"Song length in seconds and m:ss from bars, BPM and time signature, plus bars or BPM needed for a target length.","tags":["tempo","bars","song-length","time-signature"],"parameters":[{"name":"bars","in":"query","required":true,"description":"Number of bars (partial bars allowed)","schema":{"type":"number"}},{"name":"bpm","in":"query","required":true,"description":"Tempo in BPM, 20 to 400","schema":{"type":"number"}},{"name":"beatsPerBar","in":"query","required":false,"description":"Time signature numerator (default 4)","schema":{"type":"integer"}},{"name":"beatUnit","in":"query","required":false,"description":"Time signature denominator: 1, 2, 4, 8 or 16 (default 4)","schema":{"type":"integer"}},{"name":"bpmUnit","in":"query","required":false,"description":"quarter (default): BPM counts quarter notes; beat: BPM counts the denominator note (6/8 at 120 = 120 eighths a minute)","schema":{"type":"string"}},{"name":"targetSeconds","in":"query","required":false,"description":"A target length in seconds, to get bars needed and the BPM that fits your bars","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"bars":{"type":["null","number"]},"bpm":{"type":["null","number"]},"timeSignature":{"type":["null","string"]},"bpmCounts":{"type":["null","string"]},"barSeconds":{"type":["null","number"]},"totalSeconds":{"type":["null","number"]},"clock":{"type":["null","string"]},"totalBeats":{"type":["null","number"]},"secondsPerCountedBeat":{"type":["null","number"]},"barsPerMinute":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"64 bars of 4/4 at 120 BPM last 128 s (2:08).","reasons":["A 4/4 bar holds 4 quarter notes; seconds = quarters x 60 / BPM."],"bars":64,"bpm":120,"timeSignature":"4/4","bpmCounts":"quarter notes","barSeconds":2,"totalSeconds":128,"clock":"2:08","totalBeats":256,"secondsPerCountedBeat":0.5,"barsPerMinute":30,"degraded":false,"notChecked":["intros, fades, tempo changes and time-signature changes inside the song","tail time after the last bar (reverb, delay or silence)","…1 more"],"source":"computed locally (bar = beats x (4 / unit) quarter notes; seconds = quarters x 60 / BPM)","asOf":"2026-10-12T01:46:29.133Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/song-length"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/song-length"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/song-length"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/song-length"}}]}}},"/tap-timestamps":{"get":{"operationId":"tap_timestamps","summary":"Tap tempo from tap timestamps in ms: mean and median BPM, interval spread and jitter percent.","description":"Tap tempo from tap timestamps in ms: mean and median BPM, interval spread and jitter percent.","tags":["tempo","tap-tempo","bpm","timing"],"parameters":[{"name":"taps","in":"query","required":true,"description":"Tap times in milliseconds, increasing, comma separated: 0,500,1010,1490,2000 (3 to 200 taps)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"tapCount":{"type":["null","number"]},"intervalsMs":{"type":["array","null"],"items":{"type":"number"}},"meanIntervalMs":{"type":["null","number"]},"medianIntervalMs":{"type":["null","number"]},"minIntervalMs":{"type":["null","number"]},"maxIntervalMs":{"type":["null","number"]},"stdevIntervalMs":{"type":["null","number"]},"jitterPercent":{"type":["null","number"]},"bpmFromMean":{"type":["null","number"]},"bpmFromMedian":{"type":["null","number"]},"bpmRounded":{"type":["null","number"]},"bpmFromFirstToLastTap":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"5 taps give 120 BPM by mean interval (118.81 by median), jitter 2.83%.","reasons":["Intervals are the gaps between consecutive taps; BPM = 60000 / interval in ms.","The median is steadier than the mean when one tap was badly early or late.","…1 more"],"tapCount":5,"intervalsMs":[500,510],"meanIntervalMs":500,"medianIntervalMs":505,"minIntervalMs":480,"maxIntervalMs":510,"stdevIntervalMs":14.142,"jitterPercent":2.828,"bpmFromMean":120,"bpmFromMedian":118.812,"bpmRounded":120,"bpmFromFirstToLastTap":120,"degraded":false,"notChecked":["whether the first taps were warm-up taps (drop them if the tempo was still settling)","tempo drift over a long passage (a steady click is not a human performance)","…1 more"],"source":"computed locally (intervals between taps; BPM = 60000 / interval; sample standard deviation)","asOf":"2026-10-12T01:46:29.397Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tap-timestamps"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tap-timestamps"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tap-timestamps"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tap-timestamps"}}]}}},"/tempo-grid":{"get":{"operationId":"tempo_grid","summary":"Note values 1/1 to 1/32 (straight, dotted, triplet) at a BPM as ms, LFO Hz, samples and MIDI ticks.","description":"Note values 1/1 to 1/32 (straight, dotted, triplet) at a BPM as ms, LFO Hz, samples and MIDI ticks.","tags":["tempo","bpm","delay","lfo","midi"],"parameters":[{"name":"bpm","in":"query","required":true,"description":"Tempo in quarter-note beats per minute, 20 to 400","schema":{"type":"number"}},{"name":"sampleRate","in":"query","required":false,"description":"Sample rate in Hz for sample counts (default 44100)","schema":{"type":"number"}},{"name":"ppq","in":"query","required":false,"description":"MIDI resolution in ticks per quarter note (default 480)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"bpm":{"type":["null","number"]},"quarterNoteMs":{"type":["null","number"]},"barMs4over4":{"type":["null","number"]},"samplesPerBeat":{"type":["null","number"]},"sampleRateUsed":{"type":["null","number"]},"ticksPerQuarter":{"type":["null","number"]},"midiClockPulseMs":{"type":["null","number"]},"midiClockPulsesPerQuarter":{"type":["null","number"]},"grid":{"type":["array","null"],"items":{"type":"object","properties":{"note":{"type":["null","string"]},"straight":{"type":["null","object"],"properties":{"ms":{"type":["null","number"]},"hz":{"type":["null","number"]},"samples":{"type":["null","number"]},"ticks":{"type":["null","number"]},"ticksAreWhole":{"type":["boolean","null"]}}},"dotted":{"type":["null","object"],"properties":{"ms":{"type":["null","number"]},"hz":{"type":["null","number"]},"samples":{"type":["null","number"]},"ticks":{"type":["null","number"]},"ticksAreWhole":{"type":["boolean","null"]}}},"triplet":{"type":["null","object"],"properties":{"ms":{"type":["null","number"]},"hz":{"type":["null","number"]},"samples":{"type":["null","number"]},"ticks":{"type":["null","number"]},"ticksAreWhole":{"type":["boolean","null"]}}}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"At 120 BPM a quarter note is 500 ms (22050 samples at 44100 Hz, 480 ticks).","reasons":["Quarter = 60000 / BPM ms. Other values scale from it: dotted is 1.5 times, triplet is 2/3 times the straight value.","Hz is the LFO or modulation rate that repeats once per note value (1000 / ms)."],"bpm":120,"quarterNoteMs":500,"barMs4over4":2000,"samplesPerBeat":22050,"sampleRateUsed":44100,"ticksPerQuarter":480,"midiClockPulseMs":20.8333,"midiClockPulsesPerQuarter":24,"grid":[{"note":"1/1","straight":{"ms":2000,"hz":0.5,"samples":88200,"ticks":1920,"ticksAreWhole":true},"dotted":{"ms":3000,"hz":0.3333,"samples":132300,"ticks":2880,"ticksAreWhole":true},"triplet":{"ms":1333.333,"hz":0.75,"samples":58800,"ticks":1280,"ticksAreWhole":true}},{"note":"1/2","straight":{"ms":1000,"hz":1,"samples":44100,"ticks":960,"ticksAreWhole":true},"dotted":{"ms":1500,"hz":0.6667,"samples":66150,"ticks":1440,"ticksAreWhole":true},"triplet":{"ms":666.667,"hz":1.5,"samples":29400,"ticks":640,"ticksAreWhole":true}}],"degraded":false,"notChecked":["how your plugin or DAW rounds delay times (some round to whole ms or whole samples)","swing and groove templates, which move notes off this grid","…1 more"],"source":"computed locally (quarter note = 60000 / BPM ms; whole = 4 quarters; dotted x 1.5; triplet x 2/3)","asOf":"2026-10-12T01:46:29.660Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tempo-grid"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tempo-grid"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tempo-grid"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://music-production-calc.x402tookit.com/tempo-grid"}}]}}}}}