Matthew, no, I don't benchmark this library, it should be more sufficient theoretically because it uses binary search rather than linear, and the first one is known to be more efficient. I used the similar technique for writing code for my project
mm1. There I firstly used case but then manually made optimization using case and guards and if-then-else. You can see it for different releases for mm1. The manually optimized program being added additional functionality after optimizing were a little more efficient, but it should be mentioned that most time while it is running the espeak and sox being worked, so I think it should be more efficient for such situations.
I can try to do benchmarking, but it needs some time in advance.
Oleksandr Zhabenko.