Music 220C

Grant Bishko | Spring 2023

Week 10 Updates: June 6, 2023

I finalized my project! I ended up fixing a small thing with my audio-visualizer so that the waveform was centered vertically, but other than that it stayed the same. Then, I improved my Lo-Fi generator by re-composing a lot of the tracks and ensuring they fit together more smoothly compositionally. I created a web-page for them where you can turn on and off elements by clicking on them. Below is a demo, and here is a link to the generator to be opened in Google Chrome: https://ccrma.stanford.edu/~gbishko/220c/Web-Lo-Fi-Generator.html

Week 9 Updates: May 31, 2023

I made a very basic lo-fi beat generator! See video below for demo. Essentially, I created a generative drum machine that makes lo-fi beats and randomizes the layers. I made 3 different versions of each component of the music -- 3 different kick patterns, 3 different high hats, etc. My plan for final project presentation is to demo the audio visualizer, demo the generative lo-fi maker, and feed the audio of the ChucK into the visualizer.

Week 8 Updates: May 22, 2023

With the audio-visual project I built last week, I decided to add more to it. This week, I went throguh one of the old tutorials I had done (unsuccessfully) and took components of it to add to this project. I added a "spectrogram" of sorts that takes live audio input and graphs the amplitudes of the different frequencies present using a fourier transform. I then put this new component below the sample slider and waveform visualizer. Now, the full audiovisualizer takes in audio input from the computer's microphone, and visualizes both the raw waveform and the frequencies. Like a full basic audiovisualizer.

Week 7 Updates: May 17, 2023

I built something! As described in the below video, this is a small program that visualizes live audio input. It displays the waveform on a scrolling window. It also plays back the audio it is receiving, and when played aloud on a computer, this creates a feedback loop. However this is interesting because then you can visualize it, so I kept this as an added feature. This "tool" also has a functionality where you can adjust the number of samples displayed in the window, with the default starting at 256. However, when this is lowered to 8 samples, it essentially displays a very zoomed in version of the audio, which is super cool! Also interesting to see zoomed in waves of the feedback loop.

Week 6 Updates: May 8, 2023

This week I decided to wrap up the tutorials portion of my project. I explored the section of "Interface Design" exploring things like parent and children components, dealing with colors, and general GUI stuff. I went through the specific tutorials for Animation and basic drawing (parent/children components). As visible below, I made a (very basic) "house" with sun and ground -- understanding shapes and colors and how to place them on the interface. I also made an animation of a "fish-like" object moving around the screen (although it's basically a line moving in a circle with a bunch of circles over it).

house graphics

Week 5 Updates: May 2, 2023

This week I've been feeling a little under the weather, but I still was able to go through a few tutorials. One that was particularly interesting was the one that creates what they call an "audio thumbnail" but in reality it was a way to open and play audio files/recordings, and visualize the timedomain of the clip. As seen in the screen recording below, when the program is run you are able to open a pre-existing audio file, which then allows you to play it and shows the visual of the time domain waveform of the file.

Week 4 Updates: April 24, 2023

This week I started exploring the tutorials for learning JUCE. It turns out that the official JUCE website has MANY tutorials written out that are very easy to follow and explore code from. This past week, I started epxloring these. I read through and understood (important) the demo packages for using midi data to create oscillators, and creating a small midi piano synthesiser that when run, shows a small piano that you can click the keys (or use keyboard) to make sound. The notes sound like a sine oscillator, and I learned how to change the components of the virtual keyboard.

Week 3 Updates: April 16, 2023

I have decided to explore JUCE. I spent the past several days looking through existing projects created with JUCE, and watched a few tutorials. I downloaded the package as well, and with it comes many demo projects for which you can see the code, and I played around with all of them reading through the code to see how they were created. In full honesty, it scares me quite a bit because there's so much to learn and so much I can do with it... so perhaps my 220C project will be to create a bunch of mini toys/tools using JUCE rather than one big complex one -- no need to decide now, however. First I must learn to use this new coding tool! Luckily it codes in C++ which I already am familiar with.

Some tutorials I have found upon my preliminary search:
https://www.youtube.com/watch?v=i_Iq4_Kd7Rc takes us through the process of creating an audio plug-in that allows its users to change the EQ of an audio.
https://www.youtube.com/watch?v=KgxHyTL9HVQ is a very short simple intro to creating a small plug-in. This one I believe is just to change the volume of an audio using a GUI slider.
https://www.youtube.com/watch?v=ILMdPjFQ9ps is a tutorial to create a level-meter. Super simple but helpful to learn!

On the official website for JUCE, there are many tutorials that are super helpful in anything JUCE-related! https://juce.com/learn/tutorials/

Week 2 Updates: April 10, 2023

I have narrowed down my project to two main ideas:

1. Creating an EP using Logic Pro and really learning how to use DAWs and compose non-classical instrumental music. What does it mean to make a "beat"? What instrument patches work and how can I compose using them? Can I incorporate ChucK into an EP of some sort to open limitless compositional tools?

2. Creating a sequencer. Along the lines of of music 256a sequencer (https://ccrma.stanford.edu/~gbishko/256a/hw3/sequencer.html), I could use ChucK and Unity to create a virtual sequencer that allows people to make music loops and compose. Differing from my 256a project, however, I want this tool to have much more versitility and compositional tools usable. I want people to be able to create relatively customizable sounds with a wide variety of instruments available. I would want this tool to be less artful, and more useful and intuitive (not as complicated as garageband or logic, but more than.

Week 1 Updates: April 5, 2023

This week was mostly spent thinking about potential projects and exploring what elements of CCRMA sparked my interest the most. I was thinking about doing something related to DAWs (creating an EP of some sort?) or something along the lines of a music 256a project -- maybe create an audiovisualizer or something. I also have interests in DSP but I know nothing about it, so I'd be interested in exploring that as a project, just unsure what it would look like.