Explanation in order to make a PR
Greetings, Mohayonao! Thanks for the great work so far in timbre.js, neume.js and ciseaux! I learned A LOT with you. :)
I have to implementations for time stretching: Phase Vocoder with Identity Phase Locking (made by me) and a WSOLA implementation (https://github.com/also/soundtouch-js). Can you explain how I can insert a time stretch solution in your code? I would like to contribute to this.
Cheers!
thanks!
I want to fix #20 on ahead. Please wait for a little.
The placeholder for stretching is here. https://github.com/mohayonao/ciseaux/blob/master/src/render-worker.js#L76
In my plan;
- when
fragment.stretchis true -
NOT IMPLEMENTED:
srcSub(Float32Array[]) is stretched and re-assign. - write to the destination(Float32Array[])
Another point;
render-worker.js is an inline-worker, it is used in WebWorker.
All rendering functions should be written in render function.
https://github.com/mohayonao/ciseaux/blob/master/src/render-worker.js#L3-L264
@echo66
Sorry, I'm busy at other working. Would you please implement time stretching?
The placeholder for stretching is here. https://github.com/mohayonao/ciseaux/blob/master/src/render-worker.js#L71
In my plan;
- when
fragment.stretchis true -
NOT IMPLEMENTED:
srcSub(Float32Array[]) is stretched and re-assign. - write to the destination(Float32Array[])
NOTICE:
render-worker.js is NOT an inline-worker (I changed it recently.)
So, now you can use es6 features provided with babel (e.g. import, arrow function and more)