MMLL icon indicating copy to clipboard operation
MMLL copied to clipboard

onset seems off by ~50ms

Open weepy opened this issue 5 years ago • 0 comments

Hi I was trying on the onset detection, which seems pretty decent BTW. I was running it offline, just piping in some mono PCM. Essentially I want to auto slice some samples based on their onsets. On all three of the samples I found that it found the peaks well enough, but reported them ~2400 samples too late. I understand that because it's streaming that you will always essentially be late, but is this expected in terms of the delay I should try to subtract ?

Here's my code

    var onsetdetector = new MMLLOnsetDetector(44100)
 

    fetch("pianomelody.wav")
        .then((response) => {
            return response.arrayBuffer()
        })
        .then(data => {
            const context = new (window.AudioContext || window.webkitAudioContext)();
            context.decodeAudioData(data, (buffer) => {
                run(buffer.getChannelData(0))
            })
        })
    
    function run(data) {
        const CHUNK = 16
        const buffers = sliceBuffer(data, CHUNK)

        for(let i=0; i<buffers.length;i++) {
            const buffer = buffers[i]
            const detection = onsetdetector.next(buffer)
            if(detection) {
                console.log("d", i*CHUNK/44100-0.054)
            }
        }
    }

weepy avatar Jun 30 '20 10:06 weepy