Posts

Showing posts from October, 2021

Creating A Functioning Overdrive

Image
       For this post I wanted to go ahead and build something more interesting. Something that will significantly alter the sound of the guitar. As of the last post, I have a functioning volume slider that I can use to change the volume of my audio input and play it back. Now I would like to try something similar to changing the volume, but something a little more complex. The perfect effect for this purpose is overdrive/distortion.            Distortion is an effect that guitar players frequently use to make their guitar sound more powerful. Most guitar amplifiers sold today come with some kind of overdrive channel that can be used separate from the clean input sound. In the realm of analog amplifiers this distortion is caused by, simply put, the signal being amplified beyond the tolerance of the equipment. Sound travels in waves, and amplifying it, or changing its amplitude, just causes the size of the peaks and the troughs of the wave to grow larger. There is more energy in the syst

Changing Gears: Developing Audio Plugins

Image
  For the second blog post here I wanted to take things in a bit of a different direction. In the first post I introduced the Java Sound API and some basic information about digital audio. Since working on that first post I have done some more digging and decided that in order to accomplish my original goal most effectively, I will transition to using an audio programming and GUI framework called JUCE to build the software I set out to make. This will require a little resetting from the first post as it is C++ based but it will be well worth it in the end because I will be able to build a wider variety of sound audio manipulation tools this way. This is also a framework for GUI so I can easily build sliders, knobs, and other graphical components really easily so we can better visualize just what we are doing with the audio. If you are curious about the Java Sound API specifically and not just audio programming in general, there is great documentation here that will step through that m