First of all, I love the library. It will be my first choice in most applications.

I hope to test the Uno/Mega/Leonardo/ATmega8 with version 1.2, after that it should be ready.

That single line of code makes some of my tests sound a lot better.

I have made a checklist for version 1.2, perhaps there are one to two things that make sense.

(1) The code increased a little (just a little) which is always a problem for the ATmega8

library + example version with 1.0, Arduino Uno : 1516

library + example version with 1.1, Arduino Uno : 1670

library + example version with 1.0, ATmega8 : 1336

library + example version with 1.1, ATmega8 : 1472

(2) The ISR uses millis(), so a roll-over of the millis is possible. The length is no longer fail-safe, so using the delay() function with noToneAC() is preferrable for critical situations.

(3) You don't use the 'L' for long values. I don't mind about it in the sketch, but you could use it in your library. I prefer to use 0L, 256L, - 1L and so on, when long integers are involved.

(4) The examples have the extension *.pde. I would prefer *.ino

(5) In the example you use '/* .... */' for comment, but everwhere else '//'.

(6) In the example, you use a potmeter. But for a small test with the library, a very quick result (showcase) would be needed. And a potmeter will make it unnecessary complicated.

(7) You made 10 volume steps, which is great. But for a 'ping' sound, a smooth decrease of the volume is needed. Or am I asking too much for the library ? Are there open source examples of tunes with volume ?

( 8 ) Why is the sound different for this example ?

int i, freq, vol;

for (i = 0; i<5; i++)

{

freq = 900;

for (vol=10; vol>0; vol--)

toneAC( freq , vol, 60, false);

freq = 540;

for (vol=10; vol>0; vol--)

toneAC( freq, vol, 60, false);

delay( 3000);

}

for (i = 0; i<5; i++)

{

freq = 900;

for (vol=10; vol>0; vol--)

{

toneAC( freq , vol, 0, true);

delay(60);

}

freq = 540;

for (vol=10; vol>0; vol--)

{

toneAC( freq, vol, 0, true);

delay(60);

}

noToneAC();

delay( 3000);

}