As a classical musician myself, practicing can sometimes be boring, or I might be too lazy to practice. I created Practice Parrot to make practicing fun and rewarding through the use of cute visuals and a competitive leaderboard.

What it does

Practice Parrot is a website that makes practicing more fun for classical musicians. Users are able to start practice sessions to practice with a color changing practice parrot, have their practice times tracked, and compete with other users to see who practiced the most. This is all intended to make it more rewarding for classical musicians to practice their instruments.

How we built it

The website was built with React using the Next.js framework, styled with TailwindCSS and hosted on Vercel. For the database, I used a PlanetScale MySQL database and Prisma as the ORM.

Challenges we ran into

I was unsure of how to collect data from the user's microphone and turn that into a visualization. After searching online, I learned about the Web Audio API and was able to use that to access sound from the user's microphone, analyze it, and turn it into a graph of the sound's frequency.

Accomplishments that we're proud of

I'm proud that I was able to make a functional and cool site in a short period of time, and that I learned about the Web Audio API, which I had never used before. I think the website turned out very cool, and I think it can be helpful for many classical musicians.

What we learned

I learned about the Web Audio API and how to use it to analyze audio. I also learned how to display this data in a graph by using a canvas. I learned how to use Prisma with a PlanetScale database, as it was my first time doing so.

What's next for Practice Parrot

I plan to add more detailed tracking, such as time practiced each day. Adding more options for users to interact with each other, such as by joining practice sessions together, is also something that I want to implement.

Built With

  • nextjs
  • planetscale
  • prisma
  • react
  • tailwindcss
Share this project: