Previous: Percussion Instruments, Up: How it Works


2.5 User Constraints

An important feature of the software is the provision for users to have control over the search process. Before selecting an instrument/pitch/dynamic level, for example, libsporch.so optionally calls one or more user callback functions asking whether or not a match can be used and added to the list. Another callback function might return a score value that is multiplied or added (or both) with the algorithm's own score. Users can then effectively reply with either a “yes” or “no” or rate the choice according to how well the match fits into other criteria. Following is an example list of useful constraints that can be specified:

The list can easily be expanded.

Future enhancements to SPORCH will include ways of improving the amount of flexibility and control the program offers. These will include alternate ways of modeling spectral components, alternate ways of matching peaks (for example, using the critical bandwidth curve), different search strategies, and as many ways of altering the search through callback routines as possible.