People are fantastic at pattern recognition. Much better than any other known organism, in fact. But are we really leveraging our abilities by looking at charts and graphs? Perhaps we can find better ways to easily identify patterns in the stock market, and use that analysis to make accurate predictions ...
What it does
StockTunes takes market data and move it from the financial space to the music space. The data is turned into aesthetic, identifiable music, but retains all of its key characteristics and behavior.
How I built it
StockTunes runs across three servers. One server services the client, one handles computation, and one handles midi output. The client server is built with Electron and Node.js, which is distributed as a desktop application, but can easily be migrated to the web. The computation server is built with Python and Flask, making it capable of leveraging Python's powerful data science libraries and performing asynchronous analysis. The third server was built from scratch specifically to process data frames and output the new music.
Challenges I ran into
This was my first (and hopefully only) solo hack. I'm a firm believer in teamwork, but I definitely wanted to try one solo hack before I graduated. Working on this scale without a team is difficult, and not nearly as fun.
The hardest conception part of the project was creating protocol for allowing the computer to understand music, turning data into music, transforming that music into usable MIDI streams, and playing that MIDI with that "live", "human" feel.
The true tech challenge here was creating a platform that reads market data, converts it to music, and outputs that music to midi devices in real time. This is what consumed most of my time.
Accomplishments that I'm proud of
I build a small server from the ground up capable of servicing high amounts of traffic and outputting MIDI.
What I learned
I know so much more about asynchronization inside servers now, working with MIDI devices live, and even a little more data science.
What's next for StockTunes
Make it better! The analysis can only get deeper and more complex. The platform can also be used for any data set -- who knows where it can be applied next.