Thank you for the reply.
Why not modify the play method in that library to multiply the given frequency by 16
Good thinking! That will at least tell me if I'm doing somthing wrong or if there's a deficiency in the library.
You could use the F_CPU define
The library uses F_CPU to calculate the configuration values for the counter. Unfortunately, I suspect the various frequency / divisor ranges are designed to only work for 16MHz and 8MHz clocks.
assuming you are setting this in your boards.txt file
I am. And from some blink / delay testing I think I did it correctly.
adding something like this at the top of the play method should work (although I have not tried it):
frequency = frequency * (16 / clockCyclesPerMicrosecond());
I think it will work for 16MHz and 1MHz but it will probably not work for 8MHz. But, I'll certainly try it.