The rationale for this change is to make this awesome library more extendable and testable.
In current implementation there's now way to implement any kind of signal pre-processing or to make a pitch engine a part of a more complex audio graph.
Also, it's not that easy to write automated tests, because AVFoundation doesn't work in the simulator.
This simple change allows clients to provide their own implementation of SignalTracker protocol. But it doesn't change the overall behavior and semantics, and it's totally backwards compatible. It includes an implementation of a mock signal tracker, that can be used in various kinds of automated tests.
The rationale for this change is to make this awesome library more extendable and testable.
In current implementation there's now way to implement any kind of signal pre-processing or to make a pitch engine a part of a more complex audio graph.
Also, it's not that easy to write automated tests, because AVFoundation doesn't work in the simulator.
This simple change allows clients to provide their own implementation of SignalTracker protocol. But it doesn't change the overall behavior and semantics, and it's totally backwards compatible. It includes an implementation of a mock signal tracker, that can be used in various kinds of automated tests.