By Aman Khalid

Welcome to Ivan! 🎻

60 BPM | Reps: 0 | Note: -- 


Ivan is a scale practice tool for ambitious musicians like you and me!

Named after the great violin pedagogue Ivan Galamian, Ivan is a metronome that also counts your scale repetitions by listening to you practice.


Why did you create Ivan?

When I began studying with my current violin teacher, Rachel Stegeman, my playing fundamentally changed in so many desirable ways. Much of this change may be attributed to how Mrs. Stegeman and her husband, Charles Stegeman, approach violin technique: As alumni of Robert Lipsett and Ivan Galamian, respectively, they are firm believers in scales. In fact, the Stegemans' students are expected to complete 50 scale reps and 70 arpeggio reps every practice session (see Carl Flesch Exercise 5 for reference).

There's a lot to say about the value of scales, but that's a conversation for another day. Yet despite its value, I have one problem with this routine: I'm terrible at counting my own reps. Practicing the violin effectively requires a lot of focus, and we don't have attention to spare.

What if your metronome could do the counting for you? That's where Ivan comes in.

How do I use Ivan?

To set up rep counting, make sure "Count Reps" is checked, and select the tonic (first scale tone) of your key, your instrument, and the number of octaves from the dropdowns. Finally, set your tempo, and press play to get started.

As long as your scale starts with the lowest octave of the tonic on your instrument, reaches the specified octave, and returns to the bottom octave, it should work with the rep counter. Major, minor, chromatic, whole-tone, arpeggios, turn or no turn — you name it! Just make sure you aren't too far away from your microphone. Also, depending on your hardware, very fast tempi may not work.

If you don't need rep counting, just uncheck the box and play on!

How does Ivan work?

While the metronome runs, Ivan uses your microphone to listen for specific "checkpoints" along the scale. As long as your microphone can hear you — and you're playing relatively in tune — Ivan will count it!

Fair warning: String instruments are very resonant. When you play a single note, your instrument also produces multiple "overtones," or pitches higher than the current note. In particularly resonant keys (like G, A, and D on the violin), your microphone can probably hear those overtones. If you're like me and you check your pitch with double stops, you might trick Ivan into counting a rep early. For example, the Es on my violin are especially resonant, so checking my intonation with a B-E fourth or E-B fifth usually messes the counter up. Be careful with double stops in these keys!

Why aren't all key signatures supported for cellists?

Unfortunately, due to API limitations, some scale tones on the cello are too low in frequency to be reliably identified. Sorry, cellists!

Why aren't 4-octave scales supported for all key signatures?

Similar to above, Ivan can't recognize pitches higher than an A#7. If you practice 4-octave scales higher than that, (a) good for you, and (b) I'm sorry.

I don't feel comfortable sharing my microphone and. Why should I use Ivan?

All audio recording occurs on your device only; nothing is collected, shared, or tracked. Nonetheless, please don't feel obligated to enable your microphone!

If you have a physical metronome, then you probably don't need Ivan. But if you use an online metronome or an app, then Ivan's metronome has a compelling feature: It's really lightweight. Ivan's total uncompressed size is less than 200 kilobytes. For reference, analysts believe the average website is megabytes (or thousands of kilobytes) in size.

Website bloat has real consequences. By using more resources, bloated websites create accessibility challenges for low-end devices, especially on the mobile web. Bloated websites also increase server energy usage. On an individual basis, this impact is nominal, but across millions of websites, this bloat creates harmful consequences for the environment; not all server farms are running on clean energy, yet. Either way, you're racking up someone's energy bill. :P

Software minimalism is a top priority for all of my projects because I want everyone to be able to enjoy my work, all while using fewer resources. If you're interested in this philosophy, check out the 512KB Club.

I'm a nerd, too! Where can I view the source code?

Glad you asked! Like all of my projects, you can fork Ivan on my GitHub page. :)

Back to practicing!