studio-core · v1.0
StudioCore Manual
Standalone music-math calculator for macOS — delay times, note frequencies, overtones, tap tempo and sample math, all sharing one session.
Getting Started
StudioCore is a standalone macOS app — a fast music-math calculator that lives next to your DAW. It bundles five free tools (Delay Calculator, Note ↔ Frequency, Overtones, Tap Tempo, Sample Math) that all share one session: a global tempo, sample rate and tuning reference.
Requirements
- Apple Silicon Mac (M1 or newer)
- macOS 14 (Sonoma) or newer
First Use
- Launch StudioCore. Pick a tool from the sidebar on the left.
- The top bar shows the three shared session values — BPM · SR · A4. Click any of them to edit.
- Use the pin icon (top right) to keep the window floating above your DAW.
Session, not a DAW link. “Session” here means StudioCore’s own shared values (BPM, sample rate, A4) — it is not connected to any DAW. The Global badge next to a tempo just means: changing it here updates every tool and the top bar.
Session Values
The top bar holds three values shared by every tool — the single source of truth for the whole app:
| Value | Meaning |
|---|---|
| BPM | Global tempo (20–300). Used by Delay Calculator, Tap Tempo and Sample Math. |
| SR | Sample rate (44.1k … 192k). Used by Sample Math. |
| A4 | Tuning reference in Hz (400–500, presets 432/440/442/443). Used by Note ↔ Frequency and Overtones. |
Changing a value anywhere (e.g. the Global tempo in the Delay Calculator) updates the top bar and all tools at once. Values persist between launches.
Delay Calculator
Note-value delay and LFO times for the current session tempo, plus a reverse lookup.
| Quantity | Formula |
|---|---|
| Quarter-note duration | quarterMs = 60000 / BPM |
| Delay / note duration | delayMs = quarterMs × beats × modifier |
| Beats per note value | beats = 4 / denominator (1/1 = 4, 1/4 = 1, 1/8 = 0.5 …) |
| Modifier | straight ×1.0, dotted ×1.5, triplet ×2⁄3 |
| LFO rate | lfoHz = 1000 / delayMs |
| Compressor release hint | = note duration (delayMs) |
| Reverse | nearest note value to a target in ms (smallest |Δ|) |
The delay time doubles as a compressor-release hint (release ≈ note value). At 120 BPM: 1/4 = 500 ms · dotted 1/4 = 750 ms · 1/4 triplet = 333.33 ms · 1/1 = 2000 ms.
Note ↔ Frequency
Convert between MIDI notes and frequencies in equal temperament, against the session A4.
| Quantity | Formula |
|---|---|
| Frequency | f = A4 · 2^((MIDI − 69) / 12) |
| Pitch class | MIDI mod 12 → C, C#, …, B |
| Reverse | MIDI = 69 + 12·log₂(f / A4), rounded |
| Cents offset | (exact MIDI − rounded MIDI) × 100, range −50…+50 |
Octave conventions (the MIDI number is universal — only the label differs):
| Convention | Offset | Middle C | MIDI 21 |
|---|---|---|---|
| Yamaha (default) | −2 | C3 | A-1 |
| Scientific / Roland | −1 | C4 | A0 |
Overtones
The harmonic series above a fundamental, with each partial’s drift against equal temperament.
| Quantity | Formula |
|---|---|
| Partial n | f_n = f_0 · n (n = 1 … 16) |
| Nearest note | reverse lookup on f_n |
| Cents drift | cents offset against the nearest ET note |
Known drifts vs. ET: the 3rd partial (fifth) ≈ +1.96 ¢ · 5th (major third) ≈ −13.69 ¢ · 7th (natural seventh) ≈ −31.17 ¢. Colour coding: < 5 ¢ green · < 20 ¢ amber · ≥ 20 ¢ red.
Tap Tempo
Tap a tempo by clicking the pad (or pressing Space while the app is focused).
- Averages the last 4 tap intervals:
BPM = 60 / mean interval. - Hard-reset on a pause > 2 s (you re-started) or < 0.1 s (double-click / bounce). The 0.1 s floor is deliberate so 16th-note tapping at 120 BPM (125 ms) is not swallowed.
- Apply to Session writes the measured BPM to the global tempo.
Mouse-click is the reliable workflow. The space bar only works while StudioCore has keyboard focus — once your DAW is focused, space goes to its transport.
Sample Math
Convert between samples, time, beats and bars at the session sample rate and tempo, plus file-size estimates.
| Quantity | Formula |
|---|---|
| Samples ↔ time | samples = seconds × SR |
| Beat duration | 60 / BPM seconds |
| Bar duration (4/4) | 4 × 60 / BPM seconds |
| Samples per beat | (60 / BPM) × SR |
| Raw PCM | SR × bitDepth/8 × channels × seconds bytes |
| WAV / AIFF | raw + 44 / 54 bytes header |
| Nyquist | SR / 2 |
| Dynamic range | bitDepth × 6.0206 dB (≈ 6.02 dB/bit) |
The last field you edit is the anchor and stays fixed while you sweep the BPM; the other two recalculate. Reference: 44100 Hz × 2 s = 88200 samples; 48 kHz / 16-bit / stereo / 1 s = 192000 bytes (raw).
Hotkeys
| Key | Function |
|---|---|
| Space | Tap a beat in Tap Tempo (only while StudioCore has keyboard focus). |
Troubleshooting
The space bar doesn’t tap. Space only works while StudioCore has keyboard focus. If your DAW is in front, the space bar controls its transport instead — click StudioCore first, or just click the tap pad with the mouse.
I don’t understand the “Global” badge. It marks a value that belongs to the shared session and is reflected everywhere in StudioCore. It is not a DAW connection — StudioCore is fully standalone.
The Score Composer Pack tools are greyed out. Those are Pro features (coming soon) and are intentionally locked in v1.0.
Credits
StudioCore v1.0 Developed by Palmetshofer Audio — palmetshofer-audio.com