anyone have any idea how to do this?
The first approach that comes to my mind and that I would try is:
use [env~] (or anything similar) to measure the amplitude of the signal
start a [timer] when you start recording
set TWO thresholds: one high threshold to detect when the "note" has
begun (attack) and a low threshold to detect that it has finished.
threshold _and_ when it becomes again lower than the LOW threshold, then you fire the right inlet of the [timer] to measure the time passed since the beginning: you multiply by the sampling rate and you obtain the size.
That is, you have to emulate the behaviour of a [threshold~] object and use its "rest" bang (see threshold help patch). Since you're probably gonna use [env~] you cannot actually use [threshold~] but it's very easy to emulate its behaviour (at least simplified as described here which is enough for this purpose).
time (which is predetermined if i understood correctly). If you want to allow two or more fff staccato notes to be recorded in one "sample", then take the _last_ occurrence of the abovedescribed condition (one transition up the high threshold + one transition below the lower threshold); if you want to allow only one fff staccato note to be played (and suppose so), then take the _first_ occurrence.
This is certainly a very simple and probably a bit naif approach, but I would give it at least a try before diving into something more complicated.
Hope it helped
bye m.