I’m the developer of Transitions DJ (https://dj.app/). If anyone can connect me with the team at Apple Music, I would be interested in doing an integration.
This is the best thing I've seen on this website all week, what midi controllers do you suggest. I'm a very amateur musician and this feels perfect for making fun chopped up remixes of some of my music.
I still do not understand. WxWidgets should rely on native controls rather then rendering them right? Does it mean that there is a branch of WxWidgets that renders the controls?
Can this somehow be used to edit a file on a system remotely? Say I have some .wav's on a raspberryPi, can I publish them, edit, send them back to that raspberryPi?
Because that seems to me to be a very awesome use-case ..
There was a lot of discussion back when Audacity decided to make some changes. I don't remember what they were specifically, but I do remember a few threads here about forks of the project. I don't remember the name wavvy, so maybe this is another fork. I was thinking the fork discussed here previously also was a play on the "*city" name as well.
On the M1 Mac I actually measured lower CPU usage during audio playback on WASM compared to the native desktop version which uses Rosetta. I'm not sure if the slowness is due to Rosetta or a performance bug on the Mac port.
It is rendering using the 2D canvas API. There's a device context class (wxDC) for each wxWidgets port that implements primitive drawing ops (DrawLine, DrawText, etc). For the WASM port, I created a glue library in javascript [1] that wxDC calls into for each primitive.
I originally developed a WASM port of wxWidgets for https://dj.app/. When it came time to open source wxWidgets-wasm, I decided to port another complex app as a test case, and Audacity seemed like the obvious choice. In the process, I also needed to write a new host API for PortAudio for playback and recording in the browser.
I believe they are using a non-standard crossover operator in this implementation. A standard crossover operator will generate some permutation of the genes of the two parents: either you inherit the gene from your mother or your father. This implementation creates a new gene that is a weighted average of the genes of the two parents. This will probably cause rapid convergence of the gene pool, which may or may not be intended. Changing Math.random() to Math.round(Math.random()) in crossVars would change this to the standard crossover operator. I'd be interested to see how this affects performance.