Takafumi Horiuchi

Ein Metronom mit Puls

Überblick

Der Kreis in der Bildschirmmitte pulsiert im Takt jedes Klicks und spiegelt dessen Stärke wider. Ich habe ein iPhone-Metronom ohne Werbung, Benutzerkonten oder Einstellungsseite entwickelt.

Metronomansicht. In der Mitte des schwarzen Hintergrunds liegt ein weißer Kreis, darüber vier Taktpunkte und darunter 120 BPM sowie die Tasten −/+. Mit jedem Schlag dehnt sich der Kreis aus und kehrt zu seiner Ruhegröße zurück.
Diese interaktive Ansicht verwendet dieselben Gleichungen wie die App und läuft mit 120 BPM und vier Schlägen pro Takt. Durch Antippen des Kreises lässt sie sich anhalten.

Ich habe die App für mein eigenes Üben auf dem Tenorsaxofon entwickelt. Man öffnet sie und kann sofort beginnen; der Puls bleibt sichtbar, selbst wenn die Klicks schwer zu hören sind. Planung, Gestaltung, Implementierung in SwiftUI und Klangsynthese habe ich selbst übernommen.

Bedienung: Berühren, was sich ändern soll

Die Bedienelemente sind Taktpunkte, ein Kreis und ein Tempowert. Es gibt weder Menüs noch schriftliche Anweisungen: Man berührt, was man ändern möchte.

Die angehaltene App. Ein hellgrauer Kreis mit einem Wiedergabedreieck in der Mitte, darüber vier Taktpunkte, darunter 120 BPM und die Tasten −/+ sowie ein kleines Informationssymbol oben links.
ⓘ
Die Supportseite öffnen.
Taktpunkte
Antippen fügt einen Schlag hinzu, von einem bis zu sieben Schlägen pro Takt. Durch Wischen lassen sich Schläge hinzufügen oder entfernen.
Kreis
Antippen startet oder stoppt das Metronom. Gedrückt halten und anschließend zu einem Lied mittippen, um das Tempo festzulegen.
Tempo
Ziehen erhöht oder verringert das Tempo. Langsame Bewegungen ermöglichen feinere Anpassungen. Antippen von − oder + ändert es um 1 BPM.
Die angehaltene App. Ihr Text beschränkt sich auf Zahlen und „BPM“.

Pulsieren: Zeitpunkt und Stärke jedes Klicks sichtbar machen

Das Pulsieren des Kreises wird anhand der von iOS gemeldeten Ausgabelatenz auf den Klick abgestimmt. Bluetooth-Kopfhörer können eine Verzögerung von etwa 0,1–0,3 Sekunden verursachen. Die Ausdehnung ist proportional zur Lautstärke des Klicks: Der erste Schlag hat einen höheren, lauteren Klick und einen deutlich größeren Puls.

Diagramm der Klicks und der Kreisgröße über einen Takt mit vier Schlägen. Der Kreis dehnt sich mit jedem Klick aus: beim ersten Schlag auf das 1,25-Fache seiner Ruhegröße, bei den Schlägen 2–4 auf das 1,15-Fache. Anschließend wird er kurz kleiner als seine Ruhegröße, bevor er sich stabilisiert.
Klicks (gefüllte Flächen) und Kreisgröße (Linie) über einen Takt bei 120 BPM mit vier Schlägen. Der Kreis erreicht seine maximale Größe 0,02 Sekunden nach Beginn des Klicks, zieht sich anschließend kurz unter seine Ruhegröße zusammen und kommt wie Wackelpudding zur Ruhe.

Der Audio-Thread plant jeden Schlag mit samplegenauer Präzision. Die Zeitberechnung vermeidet kumulative Fehler und hält die Abweichung selbst nach einer Stunde kontinuierlicher Wiedergabe innerhalb von 0,5 Samples.

Der Geltungsbereich und die Berechnungsbedingungen der Angabe von 0,5 Samples müssen noch bestätigt werden. Sie ist weder als Maß dafür zu verstehen, wann der Schall die hörende Person erreicht, noch als Maß für die Synchronisation mit der Anzeige.

Tap-Tempo: Ruhe während des Tippens

Hält man den Kreis gedrückt, beginnt er wie Wackelpudding zu schwingen. Man tippt zu einem Lied oder zum Tempo im Kopf mit: Der Kreis wird an der Berührungsstelle eingedrückt, schwingt und federt zurück. Haptisches Feedback macht das Tempo fühlbar.

Sechs Bilder der Kreiskontur nach einmaligem Antippen am oberen Rand. Bei 0,03 Sekunden wird die Oberseite eingedrückt, bei 0,08 Sekunden beginnt sie zurückzufedern, bei 0,17 und 0,3 Sekunden verformt sich der Kreis leicht vertikal und horizontal, und bei 1,3 Sekunden ist er wieder rund.
Die Kontur des Kreises nach einmaligem Antippen am oberen Rand, gezeichnet mit denselben Gleichungen wie in der App. Die gepunktete Kontur ist ein idealer Kreis.
Eine Entwicklungsversion der App. Im Tap-Tempo-Modus ist der Kreis grau. Darunter befindet sich ein japanischsprachiges Bedienfeld zur Abstimmung des Nachschwingens mit Schiebereglern und Erklärungen, darunter „Elastizität (Schwingungsgeschwindigkeit): 3,6 Schwingungen pro Sekunde“ und „Viskosität (Abklingen der Schwingungen): 0,10“.
Das Nachschwingen habe ich über ein Bedienfeld abgestimmt, das nur in der Entwicklungsversion verfügbar ist. Mit Schiebereglern passte ich zehn Parameter an, darunter Elastizität und Viskosität, und tippte dabei auf den Kreis, um die Wirkung zu spüren. Ich verglich Voreinstellungen namens „Pudding“, „Warabi-Mochi“ und „flüssiger“ und wählte schließlich „Wackelpudding“ als Standard: ein lebhaftes Federn, das nach etwa 0,9 Sekunden abklingt.

Während des Tippens bleibt die App bewusst stumm. Ein Ton als Reaktion auf jedes Tippen wäre über Bluetooth hörbar verzögert und würde sich mit den Metronomklicks überlagern. Sobald man aufhört zu tippen, setzen die Klicks im gewählten Tempo fast unhörbar ein und werden über sechs Sekunden bis zur üblichen Lautstärke eingeblendet.

Nach fünf Tippereignissen werden die Vibrationspunkte allmählich kleiner, während die Klickbalken über sechs Sekunden von einem fast unhörbaren Pegel aus anwachsen.
Fünfmaliges Tippen bei 120 BPM, gefolgt von einer Pause. Von unten nach oben: Tippereignisse, Vibration (kleinere Markierungen bedeuten schwächere Vibration) und Klicks (höhere Markierungen bedeuten lautere Klicks). Der Pegel steigt in Dezibel gleichmäßig an, sodass kein abrupter Sprung von einem leisen Ton entsteht.

Klang: Eine Tonhöhe wählen, die sich gegen das Saxofon durchsetzt

Die Klicks werden aus Sinuswellen synthetisiert, ohne aufgezeichnete Audiodateien. Ich erstellte eine Vergleichsseite und verglich die Klänge dreimal über den iPhone-Lautsprecher, während ich Tenorsaxofon spielte. Ich wählte 1875 Hz und 1250 Hz, das 1,25-Fache der ursprünglichen Frequenzen. Sie liegen oberhalb des Bereichs, in dem die Energie des Saxofons am stärksten ist, und unterhalb des Bereichs, der häufig schrill klingt.

Frequenzachse von 100 Hz bis 10 kHz. Die Energie des Tenorsaxofons konzentriert sich im unteren Bereich; häufig schrill klingt der Bereich von 2,5–4 kHz. Klicks bei 1250 Hz und 1875 Hz liegen zwischen beiden Bändern. Die ursprünglichen 1000 Hz und 1500 Hz sind als gepunktete Linien dargestellt.
Das schattierte Band zeigt, wo sich die Energie des Tenorsaxofons konzentriert; sie nimmt nach rechts ab. Das schraffierte Band markiert den Bereich von 2,5–4 kHz, der häufig schrill klingt. Gepunktete Linien zeigen die ursprünglichen Frequenzen (1000 und 1500 Hz), durchgezogene Linien die gewählten Frequenzen. Die Linienhöhe stellt die Lautstärke dar.

Höhere, längere Klänge sowie Varianten mit zusätzlichen Obertönen waren leichter zu hören. Dennoch entschied ich mich für Klänge, die einen weichen, neutralen elektronischen Charakter bewahrten.

Einfach halten: Was ich weggelassen habe

Ich ließ Optionen weg, die Menschen bei der Bedienung zögern lassen könnten. Bei jeder Funktion prüfte ich vor dem Entfernen, ob die App auch ohne sie funktionieren würde.

Werbung, Tracking und Benutzerkonten
Diese schloss ich von Anfang an aus. Die App initiiert keine Netzwerkanfragen.
Einstellungsseite
Alles geschieht auf einer einzigen Bildschirmansicht.
Klangwahl
Zwei Klänge reichen aus: einer für betonte und einer für unbetonte Schläge. Mehr Optionen erschweren die Entscheidung.
Lautstärkeregler
Die Lautstärketasten des Geräts reichen aus.
Heller Modus
Eine einzige Bildschirmansicht mit schwarzem Hintergrund.
Acht oder mehr Schläge pro Takt
12/8 lässt sich in vier und 9/8 in drei Schlägen zählen.
Unterteilungen (Achtel, Triolen, Sechzehntel)
Sie sind für die Kernfunktion der App nicht unerlässlich, wären aber die erste Erweiterung, die ich in Betracht ziehen würde.
Tempo per Tastatur eingeben
Die Tasten −/+ und das Ziehen reichen aus.

Die App wurde in SwiftUI ohne externe Bibliotheken entwickelt und läuft auf iPhones ab iOS 17. Ihr englischer Name lautet No Ads Simplest Metronome. Eine vollständige Anleitung und die Datenschutzerklärung stehen auf der englischsprachigen Supportseite.