ciseaux icon indicating copy to clipboard operation
ciseaux copied to clipboard

Explanation in order to make a PR

Open echo66 opened this issue 10 years ago • 2 comments

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!

echo66 avatar Jun 10 '15 16:06 echo66

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;

  1. when fragment.stretch is true
  2. NOT IMPLEMENTED: srcSub (Float32Array[]) is stretched and re-assign.
  3. 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

mohayonao avatar Jun 11 '15 08:06 mohayonao

@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;

  1. when fragment.stretch is true
  2. NOT IMPLEMENTED: srcSub (Float32Array[]) is stretched and re-assign.
  3. 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)

mohayonao avatar Jun 23 '15 13:06 mohayonao