9600 Hz is a 600 usec pulse. That's 1,666.7 clock cycles. A 10 bit analog read takes 105.
You could make that pulse with BlinkWithoutDelay using micros() instead of millis() and still be able to run code that does something with that pulse "at the same time".
With BWD, don't forget to change the 2 longs to unsigned longs and put UL at the end of every unsigned long constant value.