sclass FindBest1DHaarFeature extends Best { IAudioSample sample; DoubleRange range; *(IAudioSample *sample) { range = sample.bounds(); } void tryIt(HamburgerAudioHaarFeature f) { if (f == null) ret; f.pinOuter(range); if (!f.ok()) ret; double score = score(f); put(f, score); put(f.inverted(), -score); } double score(HamburgerAudioHaarFeature f) { ret f.get(0); } HamburgerAudioHaarFeature initial() { HamburgerAudioHaarFeature feature = new(sample, spreadEvenly(4, range)); tryIt(feature); ret feature; } }