The floating laser idea is clever!

I'll still design this to handle a fixed laser; not everyone will want to put the effort into making the laser float, so it will be good to support both. The trig isn't hard anyway. I'll also support variable drip rates because it will be more accurate and won't require calibration except when the container changes. (I don't want to assume that the drip rate will be perfectly consistent over multiple batches of water, atmospheric pressure changes, etc.)

I had thought about just taking G-code as input, but I don't think the format can cope with variable drip rates. It will work if we assume a constant drip rate, like you said, so we can have both. At that point, though, we may as well pre-generate the audio and there's no need for special software on the phone/tablet, just an audio file. That's great for low-powered devices that can't handle generating the audio in real time, but I want to get more accurate prints if I can.

There might be a mid-power, mid-accuracy solution if we have G-code (or something equivalent) for each Z layer, then use the drip sensor to decide when to switch layers. That should work even on phones. (Chrome for Android supports audio input but iOS doesn't.) That's my backup idea.