Cara kerja pitch detector ini
Mikrofon Anda menangkap buffer 8192 sampel di browser — sekitar 170 ms pada 48 kHz, cukup lama untuk melihat beberapa siklus bahkan untuk nada bass rendah. Alat ini menjalankan autokorelasi ternormalisasi gaya McLeod pada jendela tersebut — membandingkan bentuk gelombang terbaru dengan salinan dirinya yang digeser dan mencari siklus pengulangan terkuat. Panjang siklus tersebut adalah periode gelombang; kebalikan dari periode adalah frekuensi dalam Hz. Frekuensi tersebut kemudian dikonversi ke nada musik terdekat ditambah selisih cents (satu semitone = 100 cents).
Sebelum analisis, kami meminta browser untuk melewati auto-gain, pembatalan gema, dan peredam bising pada aliran mikrofon. Filter-filter tersebut dapat mengaburkan bentuk gelombang dan membuat pembacaan pitch meleset puluhan cents pada suara pelan dan instrumen rendah, sehingga menonaktifkannya adalah kunci utama akurasi. Filter median pendek pada beberapa frame terakhir menyerap anomali frame tunggal tanpa menambah jeda yang terlihat.
Pendekatan ini melacak suara bernada tunggal yang panjang lebih baik daripada FFT biasa, terutama pada frekuensi rendah, karena lebih kecil kemungkinannya salah mengira harmonik atas sebagai nada yang Anda mainkan. Kekurangannya: alat ini tidak bisa mengikuti akor (chord), vibrato membuat pembacaan cents bergoyang, dan latar belakang yang bising dapat mengganggu deteksi.
Referensi: tuning standar
Detektor dimulai pada pitch konser A4 = 440 Hz, dan Anda dapat menyesuaikan referensi jika instrumen atau ansambel Anda menggunakan standar lain. Setiap nada lainnya memiliki rasio tetap — akar pangkat dua belas dari dua (≈1,05946) per semitone. Oktaf melipatgandakan frekuensi: A3 adalah 220 Hz, A5 adalah 880 Hz. Cents mengukur seberapa jauh selisih Anda dalam satu semitone; perbedaan di bawah ±5 cents umumnya tidak terdengar.
Cara membaca tampilan
- Nada besar — semitone terdekat yang terdengar selama beberapa frame terakhir.
- Bilah cents — penanda berada di tengah saat nada selaras, bergeser ke kiri jika flat (rendah), ke kanan jika sharp (tinggi). Hijau = selaras (±5 ¢), jingga = mendekati (±20 ¢), merah = jelas meleset.
- Keyboard piano — menyoroti nada yang terdeteksi dalam oktafnya di rentang C1–B6. Nada di luar rentang tersebut tetap muncul di pembacaan teks.
- Terakhir dideteksi — setiap kali Anda beralih ke nada panjang yang baru, kami menambahkannya ke daftar agar Anda dapat meninjau apa yang baru saja Anda nyanyikan atau mainkan.
Tips untuk pembacaan yang akurat
- Tahan satu nada setidaknya selama setengah detik — detektor membutuhkan beberapa frame yang konsisten sebelum menetapkan nada.
- Gunakan ruangan yang tenang. Suara kipas, lalu lintas, dan klik keyboard bisa mengganggu lebih dari yang Anda duga.
- Jaga nada tetap stabil. Vibrato menggeser pembacaan cents meskipun rata-rata pitch sudah benar.
- Gunakan mikrofon eksternal jika memungkinkan. Mikrofon laptop sering kali melemah di bawah ~80 Hz, yang memotong nada bass terendah.
- Mendekatlah ke mikrofon. Melipatgandakan jarak ke mikrofon akan mengurangi level suara yang diterima detektor hingga seperempatnya.
Pertanyaan yang sering diajukan
Alat musik apa yang bisa saya stem dengan ini?
Apa pun yang menghasilkan nada tunggal yang panjang dalam rentang sekitar 40 Hz – 2,2 kHz: gitar, bass, ukulele, biola, cello, harpa, alat musik tiup logam, tiup kayu, dan suara vokal Anda. Drum, simbal, dan akor piano lengkap tidak akan terlacak — autokorelasi membutuhkan satu frekuensi dominan.
Nadanya melompat-lompat saat saya menyanyi — apakah itu salah saya atau alatnya?
Sebagian besar karena suara Anda, tapi tidak seperti yang Anda bayangkan. Mikrofon menangkap suara Anda, napas, dan gema ruangan secara bersamaan, dan goyangan pitch kecil yang tidak terdengar oleh telinga akan muncul sebagai ayunan ±20 cent. Tahan nada dengan lebih keras dan stabil, maka pembacaan akan lebih tenang.
Mengapa deteksi berhenti pada nada yang sangat rendah atau sangat tinggi?
Detektor dibatasi pada rentang sekitar 40 Hz – 2,2 kHz. Di bawah 40 Hz, sebagian besar mikrofon laptop tidak mampu menangkap suara; di atas 2,2 kHz, harmonik mulai mengalami aliasing dan estimasi pitch menjadi tidak akurat. Dalam rentang tersebut, alat ini mencakup segalanya mulai dari B0 rendah pada bass 5-senar hingga rentang tertinggi suara sopran.
Apakah ada yang direkam atau dikirim ke server?
Tidak. Semua analisis audio terjadi di dalam browser Anda menggunakan Web Audio API. Tidak ada yang diunggah, disimpan, atau dikirim. Hentikan detektor atau tutup tab, maka aliran audio akan berakhir.