I have a few web projects in mind and I can’t decide which one to focus on…
1. In-Browser Audio Editor part 1: upload an audio file and view waveform data in browser
I think there is a great need for a simple online audio editor. I have been looking at SoX and I think it is possible to do all of the editing on the server side. On the browser side, I’m looking at representing the waveform data visually in processing.js and also delving into the HTML5 web audio API.
Functions:
- Upload a file (windows pcm wav)
- Save a file (windows pcm wav)
- Play a file
- Reverse
- Change amplitude
- Select a piece of the waveform –> Cut, Copy, Paste
- Pitch shift
- Time shift
- Fades at the beginning/end of file (created automatically before saving)
UI
- Buttons to upload a file and save current file
- View waveform (possibly also include frequency spectrum)
- Spacebar to play / pause
- Click to set start point
- Select to set start/end point
- –> Cut, Copy, Paste
- Effects menu to modify selection with effects (pitch shift, time shift, reverse)
- Zoom in / out (with keyboard shortcuts and buttons?)
I have a lot to learn about this stuff and I think it’s gonna be a huge project that won’t be possible to complete in a week. But maybe I can kick things off by figuring out a way to upload an audio file to a server and view the waveform in the browser…
2. Song Player & Licensing Tool
I started this project because I think it would come in handy as a way to offer cheap, easy commercial licenses for music that is licensed for free non-commercial use. If I continue I would like to…
– Create an Admin interface. The admin can
- add songs
- set their licensing preferences, namely how much to charge for which types of use
– Require users to include their email
– Automatically send an email “invoice” to the Admin and the User.
– Make everything look nice with CSS.
– Stream songs on the page.
3. DJ Recommendations
I think there is a lot of great data in the freeform radio station WFMU’s playlist database, but unfortunately one person has got all of this data on lockdown and it’s not made public to other employees or DJs. So I would like to scrape WFMU DJ lists of “all artists played” (i.e. wfmu.org/artistkeywords.php/KF feeds this table in my database) to create my own database of all artists played. Then I’d create a taste profile for each one using the Echo Nest API. Then users could pick their favorite DJ(s), and get a few things like
– a list of other DJs to check out
– a playlist of music they might like on the Free Music Archive (mapping Echo Nest API to FMA’s)
Ideally this could be expanded by grabbing similar data from other independent radio stations to create a database that would be able to recommend programming across a bunch of different stations.