Inspiration
Like many others during lockdown, we saw many musicians struggle to hold together bands in despite laggy live streams, cluttered file shares, and data loss. We were inspired to use our programming skills to create a tool that aims to give remote musicians the tools they need to collaborate.
What it does
SoundHouse is a Peer-to-Peer platform where teams working on audio projects can remotely collaborate on multitrack recording. Across distances, multitrack recording currently has many problems. With SoundHouse, we enable teams to realize their dream songs, podcasts, or other audio programs by removing the simultaneity from the remote recording process. Users can independently record tracks, send them to each other via Peer-to-Peer, and play them while recording new tracks.
How we built it
We used Flask to serve the user-facing web control interface, with an extensive custom python networking backend designed to be adapted to the hardware available to our users, whether they work across intercity, interstate, international, or intergalactic distances.
Challenges we ran into
We had zero prior experience with Flask, and climbing the learning curve for some of us meant starting from scratch to understand HTTP. Distributed systems are really, really hard to make reliable! The peer-to-peer network was difficult to implement because we lack a large number of devices to test degraded performance scenarios.
What we learned
We learned Flask in 24 hours. We learned how GET and POST work for http requests. We learned best practices for building highly networked applications. We learned the real API is the friends we made along the way. :)
What's next for SoundHouse
We have plenty of ideas for elements we'd like to see added to SoundHouse and plan to in the future, such as encryption, speed improvements in the protocol, version control, and other key needs. We worked up until the very end, so the user interface deserves some additional attention.
Log in or sign up for Devpost to join the conversation.