Conclusion
For the final blog post I just want
to post a quick summary of the content covered thus far and explain some things
that I would have covered had I had the time. This blog was focused on learning
audio programming from a basic novice level. It took a couple posts to really
get on track and figure out what I was doing because this was a whole new area
of programming I had never explored before. There was definitely a learning curve
as far as learning how audio is represented and operated on digitally but early
on I covered some concepts like sample rate and bit depth that are fundamental
features of digital audio. This served as the foundation for what was to come in
future posts.
Image from https://www.izotope.com/en/learn/digital-audio-basics-sample-rate-and-bit-depth.html |
At
first, knowing nothing about audio programming, I thought I would use the Java
Sound API to create some audio programs because this was the language I was
most familiar with and it made sense to start there. Unfortunately, it did not
seem like there was great documentation on this API and there was limited
examples of people using it to actually make similar programs for me to learn
from so I needed to find something different. This is when we moved to using a
C++ audio framework – JUCE. Here we made a simple application that had a volume
knob UI component that would change the audio signal.
Moving forward, I decided it would be best to go through some basics and share my learning process with the readers because there were definitely some pieces of audio programming in C++ that were not very well explained to me (or I just took a little while to grasp them) and I thought I could be most helpful to the reader by showing them how I learned some of these basic programs and then how that knowledge could be applied to something more important to me and my guitar playing. This meant walking through some tutorial programs, making small modifications here or there to play with frequencies and see how they ticked. Through the next few posts I walked through a white noise generator, a sine wave synthesizer, an oscillator, and finally a wave shaping distortion program that would mimic the soft clipping of a guitar amplifier. This final program was built using the DSP module which was introduced and explained in the oscillator post.
Through
this experience I personally learned a lot about audio programming and thought
it was great to have a program that would work like a guitar distortion pedal,
and I did not have to pay a dime for it! This is something I will continue to develop,
and it will directly impact my life and fit into my hobby. I hope that readers
that do not play the guitar can follow the tutorials for the simpler programs
and make some cool programs they can play with themselves. Maybe it will
inspire someone to make some programs for instruments or dive into more sound
synthesis.
Expensive effect pedal listing - wouldn't it be cool to make a free digital version? |
If I was
to continue this blog, I would have plenty more material to cover. I think the
first topic I would cover is convolution and other amplifier emulation
techniques. There are a lot of other elements that play into a guitar tone and
some of the most iconic guitar players’ sounds can be recreated to some level
of accuracy in the digital world. This can be done through analyzing circuits
and trying to mimic the signal changing effects of the analog components or
through approximations of these circuits. There is a whole world to dive into
there and I would love to explore it more.
Guitar Amplifiers |
Another
good direction to go would be looking into other effects and how they work. Digital
delays, reverbs, filters, and compressors are all effects that could be used in
a musical context and I do not really know much about them. There is a lot of unique
sounds that could be created this way and being able to design my own sounds would
put a lot of power in my hands when it comes to my music. Instead of finding
other effects that people have built before me or buying physical effect units
I would just be able to build my own to my desired specs. This would make a huge
difference in my guitar playing.
I definitely
learned a lot through this blog and I hope my readers did too. Learning the fundamentals
of audio programming also showed me how much more there is to learn and what
concepts to look at in the future if I want to learn more. There is a long road
ahead of me if I keep developing this skill and I am glad I took this first
step.
Comments
Post a Comment