I remember way back when, when I first started on the web, I got paid to make Flash sites. It was a cringey time, but the capability and animation smoothness, on Windows XP, 8 years ago, was still better than you can get on the web on a Macbook Pro today.
When Jobs murdered flash I transitioned to web waiting for it to come up to parity, but it never did.
We've had incremental improvements, but IMO they have been scraps, and the priority is out of wack. Why are we adding MIDI to a platform that still can't efficiently do layout?
I recently gave a talk about building a new browser without the DOM, instead using native UI primitives driven by javascript for our sites: https://www.youtube.com/watch?v=WEQx3wz8QeY
Wherever we land, I just hope to someday get the kind of performance on the web that I got 8 years ago with Flash.
Its a work in progress. Right now the synths are single oscillators with no filter. When I get those composing with effects, it'll sound more like a real patch. Also, sample maps for the sampler with note input will make doing things like wav based piano lines a lot easier.
Yeah, its severely limited compared to a DAW in almost every way. But its super fun to mess around with, and if you like React and the Web Audio API then its a cool example integration as well. My vision long term is that this will serve as a set of primitives that can be composed into instrument presets and have UI hooks so you can build something like a step sequencer UI or a drum machine.
Thanks! I write React full time at a very large company, so we've had some time to develop some cool best practices and solve some of the challenges something like this presents.
Good point. I'll split the transition prop into transistionIn and transitionOut so that you could set one direction to have no transitions. Realistically I don't even use transitions in my presentations, but folks seem to like them sooo....
The component in question is using component local state, so that resets on mount/unmount. That said, it would be very easy to embed one that instead used flux, and state would be preserved.
I believe its due to the mount cycle of TransitionGroup. Especially if you navigate before a transition is over, then an unmount doesn't occur, and the state isn't cleared.
The Dispatcher is helpful because, using the waitFor method, you can marshall the callbacks to enforce an explicit update order in the event that there are dependencies.