Metric Modulation Calculator

Metric Modulation Calculator

Whole Note Half Note Dotted Half Note Quarter Note Dotted Eighth Note Triplet Quarter Note Eighth Note Dotted Sixteenth Note Triplet Eighth Note Sixteenth Note
=
Whole Note Half Note Dotted Half Note Quarter Note Dotted Eighth Note Triplet Quarter Note Eighth Note Dotted Sixteenth Note Triplet Eighth Note Sixteenth Note

Resulting Tempo

0 BPM

Understanding Metric Modulation

Metric modulation, also known as tempo modulation, is a technique in music composition and performance where a proportional change in tempo occurs by equating a rhythmic value in the current tempo to a different rhythmic value in the new tempo. This creates a seamless but mathematically precise shift in pulse.

How to Use This Calculator

To calculate a tempo shift using metric modulation, follow these steps:

  1. Original Tempo: Enter your starting BPM (Beats Per Minute).
  2. Old Note Value: Select the rhythmic subdivision from the current tempo that will become the "pivot." For example, if you are playing eighth note triplets and want them to become the new eighth notes, select "Triplet Eighth Note."
  3. New Note Value: Select what that specific duration will be interpreted as in the new tempo. Using the previous example, you would select "Eighth Note."
  4. Result: The calculator will output the exact BPM required for that mathematical relationship to hold true.

Real-World Examples

Scenario Initial BPM Resulting BPM
Old Quarter = New Dotted Quarter 120 180
Old Triplet Eighth = New Sixteenth 100 75
Old Dotted Eighth = New Quarter 160 120

The Physics of the Pulse

This technique was pioneered and popularized by composers like Elliott Carter and is a staple in progressive rock and modern jazz. Mathematically, the formula is New BPM = Old BPM × (New Note Value / Old Note Value). This ensures that the absolute duration in milliseconds of the "pivot" note remains identical across the transition, providing a logical bridge for the listener's ear even as the tempo changes significantly.

function calculateModulation() { var oldBpm = parseFloat(document.getElementById('currentBpm').value); var oldVal = parseFloat(document.getElementById('oldNote').value); var newVal = parseFloat(document.getElementById('newNote').value); if (isNaN(oldBpm) || oldBpm <= 0) { alert("Please enter a valid tempo above 0."); return; } // Metric modulation formula: // The time of the old unit is (oldVal / oldBpm) minutes. // In the new tempo, that same time represents newVal. // So: (oldVal / oldBpm) = (newVal / newBpm) // newBpm = (newVal * oldBpm) / oldVal var resultBpm = (newVal * oldBpm) / oldVal; var resultDisplay = document.getElementById('newBpmDisplay'); var resultArea = document.getElementById('resultArea'); var explanation = document.getElementById('formulaExplanation'); resultDisplay.innerHTML = resultBpm.toFixed(2) + " BPM"; resultArea.style.display = "block"; var oldText = document.getElementById('oldNote').options[document.getElementById('oldNote').selectedIndex].text; var newText = document.getElementById('newNote').options[document.getElementById('newNote').selectedIndex].text; explanation.innerHTML = "Based on " + oldText + " becoming " + newText + "."; }

Leave a Reply

Your email address will not be published. Required fields are marked *