put our mix_buffer into mdi struct, realloc as necessary, saves lots of memory as a result, win