Oregon State University|blogs.oregonstate.edu

Leaving  February 25th, 2022

Like a lot of folks in this class, I am graduation in a couple of weeks. I have been working and preparing myself for a new career for the past couple of years, even dreaming of getting a new job, and yet while approaching the finish line, I can’t help be but a little sad.

I have been working in my current field (outdoor education) for almost 15 years. There are many parts about the job that I really do love. I will miss teaching. I will miss seeing students grow and get excited about the material. I will miss being good at my job.

I don’t want to brag, but I am a good instructor. I have spent a long time practicing, reflecting, copying, and perfecting teaching the curriculums that I am responsible for. There is a non trivial part of me that is scared about leaving a job that I am decent at to go after a career where I am not. I am not a bad programmer, but I am not a developer with 15 years of experience.

It’s hard to walk away from all of that, and that’s not even including the great people I have worked with. I will miss the obligation to chat with my mentor and coworkers.

I am really looking forward to a job that wants me to be around full time and can help me earn enough to pay off my students loans, but I am also mourning a ‘dream’.

A whole new world…  February 10th, 2022

one of channels and sampling.

This week I have been really diving into how to process audio data. It turns out that there is more to it than I originally thought.

Some reflections. Audio data comes in so many forms and it turns out a bunch of them are not compatible. Here’s an example. Even within the same audio format (aka file extension), tracks can be sample at crazy different rates. This means that when trying to combine their data, you either have one track missing data at certain time stamps, or you are jumping over data on the track sampled at a higher rate. When trying to play back the track, you have to decide on a sample rate for playback and since there is a mismatch one of the two audio tracks will suffer.

Once you have that problem solved, let me tell you about my friend NumChannels(). Here’s the kicker, you can have two tracks sampled at the same rate, but at each sample they may have more than just one data point. For each channel, the track has a float value (between -1 and 1) per sample. These values align with what each speaker should be playing at that time. So mono track (or 1 channel) only have one value, and if you play it on more speakers they all play the same (copied) value. For stereo, you have 2 channels and of course 2 values. This means we can tell 2 different speakers to play a different “notes”. Audio tracks can be recorded in several multichannel formats, including 6 channels, or 8 channels.

So, when I am trying to take that data in, I have to figure out how to get the “best” channels to play on to our 2 channel system (i.e. headphones).

Kinda makes you want to take a magic carpet ride 🙂

Nitty… meet gritty  February 4th, 2022

So this last week has been a cycle of attempts, failure, pondering life choices, and then new attempts at solving the core functions of our application.

For our group project, I have been tasked with manipulation of the basic audio playback (which I thought would be straight forward). I walked into this project with very little experience in audio data or even C++.

I can now confidently say I have a slightly more experience with both! I have been working through tutorial after tutorial and have a much better understanding of how audio is stored in memory and how to process that memory into the device IO.

I am not going to lie. There was a low moment where I couldn’t figure out why the program kept throwing exception after exception. I felt frustrated, inadequate, confused, and frankly just really PO. I wasn’t getting errors consistently and I did, I couldn’t figure out exactly why the error was being tossed.

So I got a beer.

And when my wife asked what was going on, I explained “I don’t know what the problem is,. I don’t know when, or even exactly how, but given enough time, I will figure it out. ”

One beer smarter and a couple of hours later I was asking her to come listen to “door_slam.wav” and “cello.wav” sing in a harmony that only a witless programmer can appreciate.

Running downhill  January 20th, 2022

Do you remember trying to run downhill for the first few times? At first it feels amazing, gravity helps you run faster than you ever have been able to run before. Then… there is a moment. The moment when your legs can’t keep up with the rest of your body. Your run starts to tips into falling, your urge you legs to go faster, yet gravity seems to pull harder with every second.

That’s me right now. Instead of gravity, it has been work, life (covid exposure), cleaning my home, a new health problem, job searching and oh yeah, my last two classes of my degree. I have been keeping up so far but this week everything came at me fast. I am trying to get it all done but I feel like my feet (really my typing fingers) can’t keep up.

I normally try to maintain a healthy social life but I have a strong feeling that I am going to have to put that one pause until the ground levels out.

I am really enjoying my group work with my team and learning about audio processing, just feeling the gravity of the term. I am using a ton of the stuff that I learned in my software engineering classes and this project feels more “real” than anything I have worked on before.

Diving in  January 14th, 2022

This week has been hectic…

The start of classes, the barrage of emails from students with positive COVID cases, house projects, and capstone!

At least I know what my project is and I am pretty sure that I understand what it is suppose to do by the end of the term. While not the biggest win, it’s still a win and those are few and far between right now.

My path through CS has somehow totally missed C++. I have dabbled in C for the operating systems class but I haven’t really dived into the modern C++ syntax ever. So guess what this project needs? Yup, you guessed it, a specialized framework that is all written in a super popular and common language that I have no idea how to use.

This just means I get to spend a little extra time doing some tutorials and getting extra exposure to cool concepts. I just wish I had a little more time.

Finally, as I look back on this week, my group is awesome. I am going to be the weakest link, which is great motivation to get on things early. We seem to mesh well as a team, and so far my more experienced counterparts have been really helpful and kind.

Week 1 – My quest begins  January 6th, 2022

My plane landed late last night in the PDX airport. I had been visiting Mexico after the holidays with my wife and our close friends. We loaded up into our minivan and drove down I-5. We made it home around 3am.

This morning I turn on my computer and start to play catch up. We hadn’t planned on missing the first couple of days of the term but with the snow and staffing shortages, we ended up being delayed and delayed. I complete the syllabus quiz, dive into the modules for this class and realize… I have already messed up. I missed the first deadline and wasn’t able to select a project. Not only am I losing an easy 10 points but now I am along for the ride on a random project with a random group.

I can already feel a touch of anxiety set in.

Well, nothing I can do now but make the best of my random group and get stoked for the project ahead of me. My new goal for this class is: don’t miss another deadline. Shouldn’t be that hard right?

Hello world!  January 6th, 2022

Welcome to blogs.oregonstate.edu. This is your first post. Edit or delete it, then start blogging!