My digital audio workstation (DAW) of choice is definitely FL Studio, but when I upgraded my Macbook to High Sierra, it broke a lot of the links for the Mac beta version. This presented a problem – I was unable to work on music. The solution? Create a new midi workstation. I decided to craft the piano roll to my own personal workflow. Eventually, I hope to write more features to help people write better midi compositions.
- Well, everything, considering this is the first release.
- Sign in with twitter
- Create, save, update, and delete songs and their phrases
- Piano roll workstation
- Fairly basic profile page for sharing
- Heroku server
- AWS S3 file hosting (midis)
- mLab document storage
Opus v0.5 – Class Report
This semester, I spent about 145 hours working on my senior project, Opus v0.5. The logged hours do not include the time I took to read documentation or explore the market. The course documented hours only include time spent coding or implementing design. Since the course also required an accurate timeline, I pushed regular commits to the public repository, in addition to posting to the Canvas discussions. I also used the editor plugin wakatime to keep track of how many hours were spent coding.
The user workflow was modeled after my own personal music-composition workflow. I create a phrase, add it to the timeline, then rinse, wash, and repeat until a song is created. Eventually, I would love to add new features that would help with the creative process, such as chord-progression and arpeggio generators. Unfortunately, 145 hours is not enough time to do as much as I would love for the finished product to offer. Regardless, this data is tied to the users’ accounts (pulling their data from the Twitter API), and can be continuously updated or manipulated.
I decided to use Twitter authentication for users to be able to access the workspace. This was mostly because Twitter has an actual team of security enforcers who do a fantastic job of keeping passwords and sensitive information secure. Since I am just one person, I do not want to necessarily be responsible for protecting too much user data. Twitter also happens to be where a lot of my target market promotes their music (as opposed to personal websites and blogs), so the integration is simple. I want to eventually be able to showcase all the artists’ work, but in Opus v0.5 there is only the option to view the artist’s “simple data”.
The users’ data is stored on two separate servers. I have one mLab database that stores text documents that outline the users, phrases, and songs. Actual Midi files are stored on my Amazon AWS S3 server, and in a future release will be pulled out on demand and downloaded to your own computers (so you can use it with your other favorite DAW).
As far as libraries and frameworks go, I definitely learned a lot. This was the first semester I’ve really used a framework (VueJS). It was also the first time I’ve used libraries (InteractJS, AnimateCSS, etc). I had also never used Node or Express (my previous semester covered Python servers), so it was a lot of fun to get that up and running.
The site makes AJAX requests to my server to create/save/delete all of the songs and phrases. Since I’m running free servers/hosting on Heroku and, mLab, and Amazon AWS S3, more of the work load runs on the client. This makes it easier on load time for multiple people to be on the site at once.
Although I’ve had to take design classes for my degree, I don’t necessarily consider myself to be much of a designer. I spent a couple of hours working on the Opus v0.5 logo, going through about three iterations before coming up with the final look.
I also spent several hours working on the design of the workspace and the profiles page. If you make music, you can probably tell that I based a lot of the template off of FL Studio’s piano roll. It is the only feature that I really use to make music, so it is the main feature of my application. The timeline and piano roll ideas are not new, but this is the layout that works best for my personal workflow. Hopefully with future iterations, there will be more customization available for users.
Peer Review 1 – Thomas V.
Maryn is very clever and obviously a competent programmer. Out of all the projects I saw this semester, I would have to say Maryn’s was the most impressive. Having a little bit of experience experimenting with MIDI data in the browser I can speak to the technical complexity of her project. Judging from midterm and final presentations I could see that many of the design decisions were premeditated, which I think is a strong indicator of a valuable developer. I am excited to see her future work and future development on Opus!
Peer Review 2 – Tyler B.
Maryn’s senior project idea Opus really intrigues me. The time that she put into developing the backend really shows in the front end. Her designs are solid and look nice and with a few tweaks her project’s target audience could be expanded to include anybody who is interested in creating music not just those familiar with the workflow. I can’t wait to see where this project goes.