All of the code
The Laravel server and the Vue web app, with their tests and the API contract the apps use.
Open source
The server, the web app and the native apps, under the Attribution Assurance License: use it, change it, run it, even sell it, as long as the credit stays.
The Laravel server and the Vue web app, with their tests and the API contract the apps use.
The course, the song arrangements, the singing guides and help are under CC BY-SA 4.0: use and adapt them, credited "Stackapella (https://stackapella.com)", and share what you make the same way.
The singers' recorded voices (the guide voices and the course clips) and the Stackapella name and logo stay ours, under their own terms and the trademark policy.
The parts that make harmony line up, if you want to read them.
web/engine/engine.jsEvery part is scheduled on the AudioContext clock, never with timers, so the voices land on the same sample.
web/engine/recorder-worklet.jsThe recorder takes exactly the frames asked for, so a take starts where the others are.
web/js/dsp.jsThe timing check plays chirps and finds them again by cross-correlation, to measure your device's delay.
web/js/pitchtrack.jsPitch is heard on your device, in a worker, so your singing isn't sent anywhere to be scored.
Report a bug or ask for something on GitHub, and read the contributing guide before a pull request: what you send is under the same licence, and the songs, the course and the guides take no pull requests. Found a security problem? Write to us privately, as the security policy says.
Issues on GitHub How to contribute The security policy Self-hosting terms