The buffer has an input and an output. The buffer has a a fixed size
when input tick increment pointer. if pointer overflows reset pointer. when output tick increment pointer. if pointer overflows reset pointer.