FormidableLabs / react-music

Make beats with React!
http://reactmusic.surge.sh
MIT License
2.73k stars 196 forks source link

Changing sampler settings on the fly #24

Open gaearon opened 7 years ago

gaearon commented 7 years ago

I noticed that when I change sampler settings with props, the changes get applied only after it finishes the current run. I wonder if it’s possible to make it change right away, removing the scheduled beats and scheduling new (remaining) beats according to the new props.

So if I replace 0, 2, 10 with 0, 2, 12 while I’m on 8, I expect 10 to not be played, and 12 to be played.

kenwheeler commented 7 years ago

Hmm. so for that to work right we'd have to reschedule. Right now, the full bars worth of notes are scheduled here https://github.com/FormidableLabs/react-music/blob/master/src/components/sampler.js#L129-L146 . In componentWillReceiveProps, it should probably cancel previously scheduled notes that are still pending, and then reschedule them against the new props. Right?

gaearon commented 7 years ago

That’s what I was thinking.

kenwheeler commented 7 years ago

Word, I'll look into tweaking the existing scheduling so that it's a bit easier to do this sort of thing

xuezhma commented 7 years ago

Any update on this?