Research Interests and the Cross Section with Artistry
March 25th, 2025
In academia you often encounter a person's curriculm vitae, a documentation of their previous and currently schooling, experience teaching, publishing and various other professional things. Among these experiences and goals are research interests, where they are currently working and learning. As an undergraduate with a relatively strong interest in academia and research, this has always been a bit intimidating to me. Being in the beginning of my academic experience, I'm still taking in a large amount of information regarding all the fields associated and adjacent to my interest. Musicology, computer music, instrument building, AI and sound, sound studies, there's so many different fields to invest in, and each one has it's own deeper topics and fields. I've always wanted to find some research interest that is not only a source of learning and excitement for me, but is also involved in my artistic practice (another "thing" of which I have yet to come near "figuring out") Currently, that cross section sit's wonderfully with computer music, and laptop instrument creation. I continuously find new ways of sound creation via programming and DSP, which furthers my artistic ideas of "3D sound spaces". Not only does this practice further my sound interests, but it has recently founded a new interest, which is human-computer interaction. Using various keyboard mappings and trackpad mappings, I've begun exploring all the abstract or concrete ways of controlling sound via the laptop's on board inputs. Via OSC, we can also tether these laptops together, making all their human inputs come together and complexly control data. Lots of fun...
programming
ambisonics
ChucK
academia
Encoding inside ChucK
March 10th, 2025
As of 03/10/2025 I have a functional and field-tested 1st order ambisonic encoder & decoder. I got properly oriented sound placement within the sound field and could move the object in real time via keyboard control. This was huge! I spent a solid 15 minutes just moving a tone cluster around the room and was entertained. My setup contained two laptops, one specifically running the DSP needed for the encoding and decoding, and the other laptop running all the coordinate calculations, and sending them off via OSC. The reason I used a second laptop for calculation is because I want to eventually implement trackpad or trackball control of the sound. The trackball idea is to derive a velocity vector from the movement, and have the sound actively travel within the field, according to that vector. Eventually, I will be encoding and decoding more than one sound source, which is not that big of a demand on the DSP side but is on the calculation side. Hopefully soon I can implement a 2nd order encoding and decoding system and have more precise placement within the sound field.
programming
ambisonics
ChucK
ambisonics inside ChucK
March 7th, 2025
For those knowledgeable of ambisonics, you are likely aware of the fact that ambisonic encoding and decoding deals with many channels of audio. In first order ambisonics, we typically see a source of sound in one channel, and to encode it, we create four separate streams of that audio, with different gain coefficients applied. Each of these channels have the same spectral composition, the only differences between each channel are volume, and whether they are inverted in phase from the original. The name of all these channels (typically bunched together for each sound source) is called B-format audio. In B-format audio, a single sound source can be represented by many channels of audio. Managing and routing all these channels can be a pain, especially if we are in an environment we don't know inside and out. If we want to raise our ambisonic order to second, we have to consider additional channels, nine to be precise. All these channels can get very confusing, very fast.
In ChucK's "vanilla" chugin library, one can find the UGens Pan2, Pan4, Pan8, and Pan16. This is represented in a single ".chug" file called PanN. Perusing the chugin library on github, I figured the PanN concept could be applied to the Gain UGen. After all, equal power panning is really just multichannel (or stereo) gain modification.
programming
ambisonics
ChucK