Takafumi Horiuchi

Metronom yang Berdenyut

Gambaran umum

Lingkaran di tengah layar berdenyut pada saat dan dengan kekuatan yang sama dengan setiap klik. Saya membuat metronom untuk iPhone tanpa iklan, akun, atau layar pengaturan.

Layar metronom. Lingkaran putih di tengah layar hitam, empat titik ketukan di atas, serta 120 BPM dan −/+ di bawah. Lingkaran membesar lalu kembali pada setiap ketukan.
Layar ini bergerak di dalam halaman dengan persamaan yang sama seperti aplikasi (120 BPM, empat ketukan per birama). Ketuk lingkaran untuk menghentikannya.

Saya membuatnya untuk latihan saksofon tenor saya sendiri. Buka dan langsung mulai; ketukan tetap terlihat saat bunyinya sulit terdengar. Semuanya saya kerjakan sendiri, dari konsep dan desain hingga implementasi dengan SwiftUI dan sintesis bunyi klik.

Kontrol — sentuh yang ingin diubah

Layar hanya berisi titik ketukan, lingkaran, dan angka tempo. Tanpa menu atau teks petunjuk: sentuh langsung objek yang ingin diubah.

Layar saat berhenti. Lingkaran abu-abu muda dengan segitiga putar di tengah, empat titik di atas, 120 BPM dan −/+ di bawah, serta ⓘ kecil di kiri atas.
ⓘ
Membuka halaman bantuan.
Titik
Ketuk untuk menambah satu ketukan (1–7). Geser untuk menambah atau menguranginya.
Lingkaran
Ketuk untuk mulai atau berhenti. Tekan lama, lalu ketuk mengikuti lagu untuk menentukan tempo.
Angka
Seret untuk mempercepat atau memperlambat. Gerakan pelan memberi penyesuaian lebih halus. −/+ mengubah satu per satu.
Layar saat berhenti. Teks di layar hanya angka dan “BPM”.

Denyut — saat yang sama, kekuatan yang sama

Lingkaran membesar saat bunyi tiba di telinga, bukan saat dikirim. Jeda sekitar 0.1–0.3 detik pada earphone Bluetooth dikompensasi menggunakan latensi keluaran yang dilaporkan iOS. Besarnya pengembangan sebanding dengan volume klik: ketukan pertama bernada lebih tinggi dan lebih keras, dengan lingkaran yang membesar lebih jauh.

Grafik klik dan ukuran lingkaran selama satu birama empat ketukan. Kurva langsung naik pada setiap klik, mencapai 1.25 kali ukuran awal pada ketukan pertama dan 1.15 pada ketukan 2–4, lalu turun sedikit di bawah 1 sebelum kembali.
Klik (bidang isi) dan ukuran lingkaran (garis) selama satu birama pada 120 BPM, empat ketukan per birama. Lingkaran mencapai ukuran terbesar 0.02 detik setelah bunyi, menyusut sedikit terlalu jauh seperti jeli, lalu diam.

Thread audio menentukan waktu ketukan pada tingkat sampel. Perhitungannya tidak menumpuk kesalahan: bahkan setelah satu jam pemutaran terus-menerus, selisihnya tetap dalam 0.5 sampel.

Tempo lewat ketukan — hening saat mengetuk

Tekan lama lingkaran dan ia mulai bergetar seperti jeli. Ketuk mengikuti lagu atau tempo di kepala: bagian yang disentuh melesak, bergoyang, lalu kembali. Getaran memberi umpan balik tempo.

Enam bingkai kontur setelah satu ketukan di tepi atas. Tepi melesak pada 0.03 detik, mulai kembali pada 0.08, sedikit berubah bentuk vertikal dan horizontal pada 0.17 dan 0.3, lalu kembali bulat pada 1.3 detik.
Kontur setelah satu ketukan di tepi atas, digambar dari persamaan yang sama seperti aplikasi. Garis putus-putus adalah lingkaran sempurna.
Versi pengembangan aplikasi. Lingkaran berwarna abu-abu dalam mode tempo lewat ketukan. Di bawahnya ada panel berbahasa Jepang “Penyetelan jeli”, dengan penggeser dan penjelasan, termasuk “Elastisitas (kecepatan osilasi): 3.6 siklus/detik” dan “Viskositas (peredaman): 0.10”.
Saya menyetel goyangan lewat panel yang hanya ada dalam versi pengembangan. Saya mengubah sepuluh nilai, termasuk elastisitas dan viskositas, dengan penggeser sambil mengetuk lingkaran untuk merasakan hasilnya. Setelah membandingkan “puding”, “warabi mochi”, dan “lebih cair”, saya memilih “jeli” sebagai standar: pantulan yang hidup dan mereda dalam sekitar 0.9 detik.

Aplikasi sengaja tidak berbunyi saat Anda mengetuk. Respons bunyi langsung akan terdengar terlambat lewat Bluetooth dan bertumpuk dengan klik metronom. Setelah ketukan berhenti, klik dengan tempo tersebut mulai nyaris tak terdengar, lalu mencapai volume biasa dalam enam detik.

Setelah lima ketukan, titik getaran perlahan mengecil, sementara batang klik tumbuh dari tingkat nyaris tak terdengar selama enam detik.
Lima ketukan pada 120 BPM, lalu berhenti. Dari bawah: ketukan, getaran (lebih kecil berarti lebih lemah), dan klik (lebih tinggi berarti lebih keras). Volume naik merata dalam desibel, sehingga bunyi lirih tidak tiba-tiba melonjak.

Bunyi — memilih nada yang tetap terdengar di antara suara saksofon

Klik disintesis dari gelombang sinus, tanpa berkas audio. Saya membuat halaman pembanding dan melakukan tiga perbandingan dengar melalui speaker iPhone sambil memainkan saksofon tenor. Saya memilih 1875 Hz dan 1250 Hz, 1.25 kali frekuensi awal: di atas rentang terkuat saksofon dan di bawah rentang yang cenderung menusuk telinga.

Sumbu frekuensi dari 100 Hz hingga 10 kHz. Rentang saksofon tenor berada di bagian rendah; rentang menusuk telinga berada pada 2.5–4 kHz. Klik 1250 Hz dan 1875 Hz terletak di antaranya. Frekuensi awal 1000 Hz dan 1500 Hz ditunjukkan dengan garis putus-putus.
Bidang berarsir halus menunjukkan konsentrasi energi saksofon tenor (melemah ke kanan); arsiran miring menandai 2.5–4 kHz yang menusuk telinga. Garis putus-putus adalah bunyi awal (1000/1500 Hz), garis utuh adalah pilihan akhir. Tinggi garis menunjukkan volume.

Bunyi yang lebih tinggi dan panjang, atau dengan tambahan harmonik, lebih mudah terdengar. Meski begitu, saya memilih dalam rentang yang mempertahankan karakter elektronik yang lembut dan netral.

Mengurangi — yang tidak saya masukkan

Tidak ada yang membuat orang bingung memilih. Satu per satu, saya periksa apakah aplikasi tetap bisa berfungsi tanpanya, lalu saya singkirkan.

Iklan, pelacakan, dan akun
Diputuskan sejak awal. Aplikasi tidak memulai komunikasi jaringan dengan sendirinya.
Layar pengaturan
Semuanya selesai dalam satu layar.
Pilihan warna bunyi
Dua bunyi untuk ketukan beraksen dan tanpa aksen sudah cukup. Pilihan menimbulkan kebimbangan.
Penggeser volume
Tombol volume perangkat sudah cukup.
Mode terang
Hanya satu layar hitam.
Delapan ketukan atau lebih
Hitung 12/8 dalam empat ketukan dan 9/8 dalam tiga.
Subdivisi (not seperdelapan, triol, seperenam belas)
Tidak wajib agar aplikasi berfungsi. Menjadi calon tambahan pertama.
Mengetik angka tempo
−/+ dan menyeret sudah cukup.

Dibuat dengan SwiftUI tanpa pustaka eksternal. Berjalan pada iPhone dengan iOS 17 atau lebih baru. Nama bahasa Inggrisnya No Ads Simplest Metronome. Saya sedang menyiapkan peluncurannya di App Store (September 2026). Petunjuk lengkap dan kebijakan privasi tersedia di halaman bantuan (bahasa Inggris).