Welcome Ian!

BadNoise and Good Sounds

Hi Y’all!

My name is Ian Fletcher, and I am a Brazilian-American developer based in St. Louis, Missouri. Creativity has always been a driving force in my life; from a young age, I knew I wanted to make things. After studying music business and technology at New York University and working in various parts of the music industry, I became increasingly curious about the technologies that allow the industry to function.

There is nothing like a global pandemic to make you re-evaluate your life decisions, and in 2021, I decided it was time to re-invest in my education and gain skills outside of recording arts. I enrolled in a 24-week coding intensive through Washington University in St. Louis, focusing on MongoDb, Express, React, and Node Js. I applied to Brand New Box through Wash U’s career services and after a few interviews with Ashley and Will, I joined the team!

BadNoise Application

One thing that I love about about both art and software engineering is the ability to create something out of nothing, and I wanted to embrace this love when starting my self-guided project. When producing music or audio for video, I enjoy when artists recycle sounds from different places and compile them to create a project that is greater than the sum of its parts. Although song sharing applications exist, there are no virtual spaces where creatives can upload, download, share, and discuss the individual sonic pieces that comprise the songs people love. I decided to create BadNoise—a one stop audio shop for creatives and casual listeners—in an effort to rectify this gap.

I want BadNoise’s users to be able to develop public or private sample libraries that can be shared and discussed, with the intention of creating relationships and opportunities for collaboration. To implement this idea, I learned BnB’s process for building applications, and before I knew it, I had an outline and was ready to begin creating the application. After working primarily with JavaScript and React, I was pleasantly surprised by Ruby on Rails’ workflow and speed. I finished an MVP with guidance from the BnB team, allowing me to focus on implementing specific features I wanted to add on.

Audio Waveform

I hoped to implement a feature wherein the application’s users could upload an audio file and display a visual representation of the waveform. Jace introduced me to a current BnB project with similar functionality, and I was able to implement the same type of code in my application. In a meeting with Vika, I was able to clean up the user interface and make the application more concise across the various pages. Once the main functionality was done, I updated the administrator portal so application admins could update creator’s content.

Audio Waveform

Gems and Helpful JS

Using Gems and Javascript modules allowed me to create the application significantly faster than I was expecting!

  • Trestle - allowed me to easily create an administrators portal for the application
  • Devise - helped authenticate users during the login process
  • Stimulus.js - created easy javascript integration for external js modules
  • Acts-As-Taggable-On - was used to implement genre tagging for each audio sample
  • Commontator - added a comment section to each pack and sample for users communicate through
  • Will-Paginate - created separate pages when search results were greater than 10
  • Select2 - helped the user select multiple genre tags at once when creating a sample
  • Wavesurfer.js - showed a visual representation of the audio waveform for the user to see while the sample is being played
Audio Waveform

Future Additions

Now that users can easily upload and share songs there are a couple of features I want to add to help foster community and create a better experience for everyone.

  • Pack and Sample Photos: Adding a photo to a sample and pack will allow the sound creator to share more with the artists that will eventually be using their sound.
  • Internal DMs: Some users may not want to share their personal contact information with potential collaborators right away. Having an internal direct messaging system will allow collaborators a private space to collaborate outside of their personal channels.
  • Weekly Production Game: Games not only drive interaction but they help us learn techniques faster, and a simple sample game for every user to participate in would be perfect for community building as well. Ideally admins will be able to upload samples into a pack every week and users will be able to use these samples to create beats/soundscapes. The community will be able to vote on the best beats and this will translate into some sort of social karma system.
  • In App Audio Manipulation: Once a user has uploaded a sample it would be amazing if that sample could be manipulated without having to use a separate digital audio workstation. Ideally a player with the ability to reverse, speed up, slow down, and crop will allow uploaders and downloaders freedom to create exactly what they need before upload or download.
  • Multi-file Upload: Currently users can upload audio files of any kind however this process is one file at a time. In the future users will be able to drag in folders of samples and have them upload simultaneously rather than in individual upload processes.
  • Multi-player View for Pack: Users must view a specific sample to listen to it however in the future users will be able to play the samples from the pack view rather than having to check out each sample individually.