>when you compile and run this you will notice that the time for the eighth >note is way off. Any ideas as to why this is? Measurement error. When you start a timing sequence, Next_Time is not the current time, but rather the time the last "delay until Next_Time" ended. Since then you've done various IO etc. In each section, change the initial pair: Time_Start := Ada.Real_Time.Clock; Next_Time := Next_Time + Delta_xxx_Note; to Time_Start := Ada.Real_Time.Clock; Next_Time := Time_Start + Delta_xxx_Note; and the times come out nicely similar.