Hacker News new | ask | show | jobs
by paulnasca 5294 days ago
Does it support large (256k samples) array FFTs? I could use it for PADsynth algorithm ( http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm ).

Also, from the API, it seems that I could implement Paulstretch algorithm ( http://hypermammut.sourceforge.net/paulstretch/ ) easily. When I'll have some free time, I'll try it. EDIT: I looked a bit closer on interface EFFECT and Paulstretch cannot be implemented as an effect, but as a generator. Needs to be studied more :)

1 comments

fft.js supports as large buffers as JS can handle, that depends a bit on the browser, but 256k samples will probably work, you might have some trouble in Chrome, if you have too much other stuff in memory as well. Would be cool to see a demo of PADsynth on the web, especially with audiolib.js!!!

Paulstretch would be a perfect addition to the library, it would open whole new doors for example for samplers (whoa, the sample is sustained forever!), of course with some limitations in regards of real time. Send me a message on GitHub, if you decide to take up on the task, I'd be glad to give you a hand with it! :)

Unfortunately, in this period of time I am quite busy porting Paulstretch to Android. I have rewritten a (C++) fixed point implementation of Paulstretch and now I have to write the GUI for Android. After I will release it, I hope that I will have some time to port it to JS. Anyway, feel free to add the task for me (my user is 'paulnasca').

If you want to look at the algorithm of Paulstretch you can have a look to a simple Python implementation: https://github.com/paulnasca/paulstretch_python/blob/master/... The algorithm is pretty fast, the most time consuming operations are the FFTs and IFFTs. That's why I think that it might work on real-time JS.