sclass PianoSampler { double sampleRate = 48000; double currentSample; persistable sclass Oscillator extends HasKey { double currentPeriodStart; // all recorded intensities new TreeMap intensities; *(Frequency f) { super(f); } void record(DoubleRange r, Complex c) { intensities.put(r, c); } } HasKeyMap oscillators = new(map(f -> new Oscillator(f), pianoFrequencies88())); new TreeMultiMap actionsForSample; }