First slide

Sam Lavin

Image credit: Hannah Miller

Second slide

Adept multi-instrumentalist

Third slide

Audio Engineering enthusiast

Forth slide

Technology nerd and programming wizard

Image credit: unsplash-logoFotis Fotopoulos

About Me  Resume  Music 

Welcome to my website! đź‘‹

 Hi there, I'm Sam Lavin! I'm an avid musician, programmer, and audio enthusiast. I recently graduated from Iowa State University with a B.S. in Computer Engineering and minors in Music and Music Technology, and I'm currently working at Epic as a Windows Engineer.

 In my free time (which I tend to not have a lot of), I like to work on programming projects or transcribe music from video games I've played. If you want to get to know me more, below I have listed all of my hobbies and interests.

Music

  • Sousaphone section Captian of the I.S.U.C.F.'V'.M.B..
  • Played bass for the men's and women's basketball pep bands.
  • Took 11 years of piano lessons. Played keyboard one for First Date and keyboard two for The Full Monty.
  • Tend to get involved anywhere I can with music. I also have played vibraphone and keyboard for the indoor percussion group GROOVE and bass guitar/synth for Cyclone Sound.

Programming

  • I like to work on Discord bots, Android apps (using Kotlin), and web design.
  • This entire website was developed from scratch using only Bootstrap as a front-end framework and Darkmode.js as a darkmode option.
  • Currently have two apps published on the Google Play store.

Media/Entertainment

  • Big fan of the Tales JRPG series, along with The Legend of Zelda.
  • Like watching anime (myanimelist profile).
  • A couple of my favorite YouTube channels are MKBHD and Adam Neely.
  • I listen to a wide variety of music, including EDM, Prog Rock, Math Rock, Djent, and Alternative/Indie (Spotify profile).
  • Moderate fan of theatre and DCI/WGI.
  • Love to read romance/fantasy novels.

 Thank you for taking the time to read about me. Please feel free to take a look around the rest of the website, or you can contact me using the info listed in the footer below!

Sam Lavin


Skilled, attentive, and organized computer engineer with a long background of musical talent.


Education

Iowa State University College of Engineering

Atkins, Iowa

August 2018 - December 2022


  • Bachelors of Science in Computer Engineering, Minors in Music and Music Technology
  • 3.59 / 4.0 GPA
  • Graduated with distinction
  • Received President’s Award for Competitive Excellence and Cardinal Leadership Scholar Award

Benton Community High School

Van Horne, Iowa

August 2014 - May 2018


  • 4.1 / 4.3 GPA
  • Accepted into National Honor Society


Experience

Windows Engineer

Epic Systems

June 2023 - Present

Just getting started here, so no info quite yet!

Software Engineer

Varsity Music

January 2023 - Present


  • Startup dedicated to propelling music forward by creating new possibilities for musicians and developing new tools for teaching music.
  • Created a cross-platform app using Flutter that allows users to connect to and configure their illuminant.

Production Intern/Director

KURE 88.5 Ames Alternative

February 2020 - December 2022


  • Utilized recording studio to record and mix bands using our Midas M32 and Logic Pro.
  • Responsible for preparing for/running live events.
  • Troubleshooting broadcast issues when Radioboss goes down.
  • Worked with Dante/AoIP systems to transmit audio across our network.

Recording Engineer

Iowa State University Department of Music and Theatre

January 2020 - December 2022


  • Utilized A/V equipment to effectively record and stream classes and concerts.
  • Record and edit audition tapes for students using Pro Tools.
  • Set up audio equipment for concerts according to client needs.

Summer 2022 Intern

Pinnacle Recording and Productions

May 2022 - August 2022


  • Rapid learning of a variety of event and A/V technologies, including audio, lighting, and video.
  • Set up sound equipment for bands and ran audio as both front-of-house and monitor engineer.
  • Learned to problem-solve in live, high-pressure situations to fix issues pertaining to audio loss.

Full-Stack Web Developer

Iowa State Web Development Services

April 2019 - February 2020


  • Produced and maintained websites for the University using PHP and SQL.
  • Collaborated with a team of other students using Git and Jira under a full-time developer.


Leadership and Involvement

I.S.U.C.F.V.M.B. (College Marching Band)

August 2018 - December 2022


  • 2022 Craig Sailor Memorial Award for exceptional leadership.
  • Served as Captain of the Sousaphone section.

GROOVE Drumline Club

January 2021 - May 2022


  • Served as the Equipment and Electronics chair of the admin board.
  • Designed and ran our audio system using Mainstage 3 at its core.


Skills

  • Audio/Video

  • Logic Pro
  • Final Cut Pro
  • Dante Virtual Soundcard/Controller
  • Audacity
  • Ableton (Lite)
  • Pro Tools
  • MuseScore 3 (see "Music" tab)
  • Mainstage 3
  • Programming

  • Kotlin (Android)
  • Dart (Flutter)
  • Python
  • C++
  • C
  • Java
  • PHP
  • HTML
  • Javascript
  • CSS

Projects

Ear Trainer

Ear Trainer logo

 App designed to train live sound engineers to be able to pick out frequencies quickly and accurately by ear. Uses a test with many customization options to fit the user’s learning style.


Tuba Bot

Ear Trainer logo

 This is a bot created for the 2022 I.S.U.T.U.B.A.S. Created using Discord.js.


RT Bot

RT logo

 A bot made for the Runtime Terror Discord server. The purpose of the bot is to give users the ability to easily add/remove roles from themselves for classes and majors.


Band Bot

Band Bot logo

 Fall of 2020 I created a Discord server for the I.S.U.C.F.V.M.B., as it was during the pandemic, and I felt like the band could use some more cross-section interactions. While making the server, I had the idea of adding a bot to the server that would respond to certain messages and keywords, much like Slackbot. However, when I made the bot, it turned into much more of a passion project, and I ended up adding a lot more functionality to it than I originally planned.

 This bot uses discord.py, a Discord API wrapper for Python. There wasn't much thought into choosing this specific wrapper (as opposed to discord.js), it just happened to be the first one I came across. Most of the bot's functions are fairly simple, but the most complex thing was the !generatememe command. This command in a nutshell will take whatever image you provide it, print text that you provide it on the bottom of that image, and then spit out the result. There are a few other ways you can use it as well. You can use it without an image, and it will use the last seen image in the server as the source image. If you use the command without an image after someone else runs the command, you can make another meme with their same image but with your text instead of theirs. Finally, if you mention a user, you can use their profile picture as the source image. This command took a ton of time to get working correctly, as python doesn't have a great way of writing text onto images, much less wrapping it.


Color Finder

Color Finder app logo

 This is a very simple app I went about creating in early Summer 2021. The reason I wanted an app like this was because in Oxygen OS you can set the accent color of the system to a custom color code. I change my wallpaper fairly frequently on my phone, and have always wanted a way to pick the accent color from my wallpapers much like Windows does. So, I set out to create this app. I used the old Material Design Palette library, which can take a bitmap image and find 6 color "swatches" from it. I then output these 6 colors and their respective color codes. I also added a way copy those color codes with or without the hashtag out in front. Finally, I added an app shortcut so you could grab the colors of your wallpaper directly from the homescreen.

 I am working on releasing this app on the Google Play store. I'm not necessarily expecting anyone to use it, but I kind of want the experience of going through the process of getting an app on the Play store. In order to release on the Play Store, Google requires that you have a public privacy policy. I have posted mine here.

Update: the app has gotten Play store approval and is now live on the Play store! You can find it by clicking the Google Play icon above.


No BS QR Code Scanner

No BS QR Code Scanner app logo

 This was my first Android app I started working on in summer of 2020. My phone does not have a built-in QR code scanner in the camera app, and Google Lens requires an internet connection in order to function at all. This is a problem in some cases where say I might scan a QR code to connect to a device's WIFI network, and then scan a second code to go to a locally hosted page on that device's network. Since that device doesn't have access to the internet, Google Lens fails in this case. Instead of going and finding a QR code scanning app I liked, I decided to make my own because honestly, I didn't want to sort through all the bloatware that I'm sure has consumed this type of app.

 So that's what I set out to create: a QR code scanning app that does just that: scan QR codes. Nothing else. No ads, no bloat, no BS. Simple and effective. I also developed my own library for interpreting QR codes on Android devices, because it turns out reading different types of QR codes can be quite complicated.

 As of now, the app is in beta. You can view the repository above and download the beta version to help test it out. The app should be mostly functional, though there might be a few hiccups when reading certain types of QR codes. If you find any issues, please report them on the issues page. I also have yet to implement reading vCard and vEvent type QR codes, as those formats are quite complex and also can vary wildly.

GitHub repository for microcontroller code

Website

Poster presentation.

Our poster presentation for the project.

Description

 A website for me to host all of my projects and information all in one place.

My Role in the Project

 This was a solo project, so I did everything myself.

Skills/Knowledge Gained

 I mostly gained a stronger understanding of web development as a whole. I was using knowledge that I already had, and was building on top of that knowledge to create this website. I did learn how SSL certificates work, and how to configure DNS settings in order to point a domain to a hosting service.

Resources Used

 Originally a Raspberry Pi to host the site, then GitHub Pages, and now Azure.


 Ever since I started web development at ISU WebDev, I have always wanted to host my own website specifically for future employers to get to know me better. I wanted to write the entire thing myself, and not use sites that build a website for you. So one day, I registered this domain name, and attempted to get started on building this site. However, I was trying to use Laravel on the same Raspberry Pi Zero WH that I had used from the Smart Display project above, and Laravel was not having it. Basically, Laravel apparently requires more than 512MB of RAM to run, which is all the little Pi Zero had. So, I instead went out and rented some server space with a little more RAM, and attempted to start again. It was at this point that I learned Laravel was quite different from ZF2 (the framework that we used at WebDev), and I didn't have much time or motivation to ride that learning curve. On top of that, the company that I was renting server space from kept corrupting my OS, and so eventually this project was put on the backburner.

 Eventually, I realized that I didn't need an entire framework to do what I want. Instead, I can literally return a single html page that uses Bootstrap's navs to switch between pages. And so Spring break 2020, I sat down and wrote out this entire site in a matter of a couple days.

 This site runs purely off of HTML, CSS, and JavaScript. In conjunction with that, I am also using Bootstrap to help design the site, Font Awesome for a few icons, and Darkmode.js for an easy to implement a dark mode (because everything should have a dark mode option). If you haven't figured out how to use the dark mode yet, just click the little 🌓 icon in the top right!

 Getting the site on the World Wide Web was relatively simple. I already owned the domain name, so I just had to do a fresh install of Raspbian for my Raspberry Pi Zero, get Apache set up, pull the repository, change a few configs, get an SSL certificate from Let's Encrypt, and then point my domain to the Raspberry Pi Zero.

 This project was incredibly fun for me to do. I've spent around 35-40 hours on it now, and I'm very proud of what the final product looks like. If you notice anything that could be improved (like something isn't working correctly, a typo on a page, or in general something that could be better), please let me know either by messaging me personally (my email is below!), or by creating a pull request on my GitHub repository!

 Update September 2020: I learned about GitHub pages, and have transferred this website to that instead of using a Raspberry Pi. This is much more reliable since I no longer have to worry about my public IP changing, and updating the website is as simple as pushing to the repository. I also no longer have to worry about running out of the small amount of storage I have on my Raspberry Pi.

 Update February 2022: Due to wanting to expand this domain to other things such as hosting a Matrix server, I have moved this website to an Azure host.

Description

 This was a project that a group of four of us completed for the class COM S 309 at Iowa State University. It was an app where people could find other people play sports or games with other people. The app used a Java frontend and Spring Boot backend.

My Role in the Project

 Our group of four was split into two teams: one would handle the frontend, and the other would handle backend. I was on the part that would handle the frontend, and most of what I worked on consisted of logging in the user and handling the user data.

Skills/Knowledge Gained

 For me personally, I learned a lot about how to develop an Android App. I also learned how to handle Google account authentication, even if we never fully implemented it because it would have required a lot of work on the backend in order for it to work properly.

Resources Used
  • Java (Android) frontend
  • Spring Boot backend


Summary

Description

 This project was to build a smart display that would show information at a glance to the user. It was targeted towards ISU college students, and included helpful information such as CyRide prediction times for the nearest bus stop, weather information for the day, and roommate status.

My Role in the Project

 In general, I was the project lead, since the project was my idea. When working on the project however, we split it up into the three main parts: the CyRide screen, the weather screen, and the Google Calendar/roomate screen. This worked out well since there were three of us and three screens to work on. I worked on the CyRide screen.

Skills/Knowledge Gained
  • Objective Python
  • Python packages
  • TkInter
  • XML and ElementTree
  • Git
  • MyRide API
Resources Used
  • Raspberry Pi Zero WH (the H just means the headers came pre-soldered)
  • Small $5 monitor

 Imagine that you're me, getting ready in the morning for classes, probably in a rush because you woke up late. You go to open the MyState app to see when the next bus is coming, only to be signed out of the app by some unknown bug. By the time you get signed in again, you see that you are too late for the bus, and will have to wait until the next one.

 These frustrations are what prompted me to design a smart display. This smart display would be something you can look at quickly in the morning to find out when your next bus is, what the weather will be like for the day, and more.

 I worked on this project in my CprE 186 class along with 2 others. We decided to use Python as the backbone for the project as we could install many third-party packages that would allow us to interface with the outside world (more specifically, the Internet of Things).

 The smart display would physically consist of only a few items: a Raspberry Pi WH to drive the display, a $5 monitor we found at the Surplus Store, and all the necessary cables to connect the two. On the display, we would display three different screens that each would have their own purpose. Those screens included:

  1. A CyRide bus prediction screen,
  2. A weather screen,
  3. And a multi-user Google Calendar page that also displayed what roommates are home based on their phone's location.

 The GUI powering these screens would be TkInter. While this wasn't the most preferable choice, we didn't have much overhead or storage space to download a different GUI module, and TkInter is included with Python. Now, let's dive into each of these different screens. Unfortunately, none of us thought to grab screenshots of these in production, and getting the project to work now will be a massive pain as the API I used to grab CyRide data is now discontinued. However, I can do my best to describe them.


CyRide

 The CyRide screen was essentially my part of the project (along with getting TkInter to work for our project). For this, I used the public CyRide API at the time to request an XML file, parse through that file, and grab the prediction times until the next bus for a certain stop. The bus stop itself was hard-coded in, however I could have programmed it to use a constant for the bus stop ID, and then by simply changing that constant, it could show different predictions.

 Here is an example of what this screen would have looked like:

CyRide Predictions at Coover Hall:

21 Cardinal:

2m 55s

25 Gold:

2m 42s

2 Green:

0m 55s

6 Brown:

1m 02s

3 Blue:

0m 26s

Weather

 Next in the lineup is the weather screen. This screen showed the current temperature, the high and low for the day, an hourly forecast from the current hour, and a 5 day forecast. We had also planned to implement a temperature sensor onto a couple of the Raspberry Pi's GPIO pins, however we ended up running out of time before we could get to that.

 Unfortunately, I can't provide an example of what this screen looked like due to the fact that I am not as familiar with this screen as I didn't work on it, and also because from what I remember, the GUI for this screen was quite complex.

Google Calendar

 The last piece of our trilogy here is the Google Calendar. This screen displayed all of each user's upcoming events for the day (to help you plan for the day), and also showed whether each user was home or not. The latter was achieved by using a combination of IFTTT and Adafruit.io. Basically, whenever one of the users entered or left a geofenced area, IFTTT would send some data to a dashboard that we set up on Adafruit.io updating whether or not they were home. Then, our program would check that data and update the screen accordingly.

 I helped a little bit with the design of this last component, so I can give a rough idea of what it ended up looking like. Basically, there were 3 columns (for each of the 'roommates'), a header that had the user's name and whether they were home or not, and then the rest of the column was dedicated to any events the user had for the day. You can see a blurry version of what this screen looked like in the picture below!


 Overall, we learned a lot through this project. The biggest things we learned about were:

  • How to use different packages with Python.
  • How to use XML and ElementTree.
  • How to use Python Objectively.
  • How to use Git and collaborate with each other.

 There are also some things we definitely could have improved on. I already mentioned improving how the bus stop was hard-coded, and also adding a temperature sensor for reporting indoor temperature along with the outdoor. We also wished we could have rewired the inside of the display we were using to output power through the usb ports on the back without needing a USB uplink. Looking back on the project now, I also wish we would have documented more of the progress we made, commented/cleaned up more of our code, and made it more readable.

 All in all, it was a very fun project to work on, and I'm very proud of the final result we came out with. You can view the GitHub repository for the project here!

Picture of project group.

A picture of our project group and the Smart Display in action.

 While at ISU WebDev, I had some downtime to work on challenging myself and my JavaScript skills. So, I found a website that had a bunch of challenges on it, and worked on all of them until I got them right.

 I also made two fun pages that you can visit: a rainbow page that's really fun to explore if you have an infinite scrolling mouse, and a word clock.


Challenges are from this site.

Challenge 1

View code

Take an input string parameter and determine if exactly 3 question marks exist between every pair of numbers that add up to 10. If so, return true, otherwise return false. Some test cases are below:


Challenge 2

View code

Take an input 2D matrix of some arbitrary size filled with letters from the alphabet, and determine if a 2x2 square composed entirely of vowels exists in the matrix. If a 2x2 square of vowels is found, your program should return the top-left position (row-column) of the square. Some test cases are below:


Challenge 3

View code

Take an input of two elements, the first being the two positive integer weights on a balance scale (left and right sides) and the second element being a list of available weights as positive integers. Your goal is to determine if you can balance the scale by using the least amount of weights from the list, but using at most only 2 weights. Return a comma separated string of the weights that were used from the list in ascending order. Some test cases are below:


Challenge 4

View code

Take an input string parameter, which will represent the movements made in a 5x5 grid of cells starting from the top left position. The characters in the input string will be entirely composed of: r, l, u, d, ?. Each of the characters stand for the direction to take within the grid, for example: r = right, l = left, u = up, d = down. Your goal is to determine what characters the question marks should be in order for a path to be created to go from the top left of the grid all the way to the bottom right without touching previously travelled on cells in the grid. Some test cases are below:


Challenge 5

View code

Take an input 2D matrix of some arbitrary size that contains only the integers 1, 0, or 2. Then from the position in the matrix where a 1 is, return the number of spaces either left, right, down, or up you must move to reach an enemy which is represented by a 2. You are able to wrap around one side of the matrix to the other as well. The array will contain any number of 0's and 2's, but only a single 1. It may not contain any 2's at all as well, where in that case your program should return a 0. Some test cases are below:

Mailbox Sensor

 The first project I ever did that involved physical components involved a Raspberry Pi B+, an RF transmitter/receiver pair from lowpowerlab, and a tiny OLED display. Put simply, the motion detector sat our in our mailbox, and when it detected motion, would send a signal to the RF receiver that was in the house. This would communicate to the Raspberry Pi over FTDI to let it know that the mail had arrived. The Raspberry Pi would then send a text message using Python to everyone in our house, and also display a mail icon on the OLED display. Then, when the sensor detected motion again, it would send another text letting us know that someone got the mail, and turn off the OLED display.

 While this project was good for me in the sense that it introduced me to a lot of new concepts, it was quite over my head, and not exactly the most fun to try and figure out. It was fun at the very end when I finally got it all working, however the sensor was too sensitive and would send many false-positives. Thinking about it now, I easily should have been able to tinker with the sensitivity of the sensor. Unfortunately, it became untrustworthy and I eventually took it down so I could use the Raspberry Pi for other things.

Picture of motion sensor.

The motion sensor/transmitter that was in the mailbox.


Marble Sorter

 Sophomore year of high school, I took the Project Lead the Way class Principles of Engineering. One of the first things we did in the class was build a robotic marble sorter. This sorter had to take 20 marbles, and sort them into 5 different types: wood, metal, clear, rose gold, and opaque. This was done using a combination of moving robotic parts (all programmed in Robot C), a controllable magnet to pull out the magnetic marbles, and a light sensor. You can find a video of the project in action below:

Unfortunately, your browser does not support MP4 videos.

Ethics in the Engineering World


 Ethics have a huge impact in the engineering world. Look around you right now. Almost everything you see was created by a team of engineers. There is a surprising amount of power in this. As engineers, we have the power to change the world. In this situation, there is a Spiderman quote that is horrendously overused: “With great power comes great responsibility”. However, it has a lot of truth to it, and that is why we, as engineers, need a sort of guideline of ethics to follow. Not only that, but engineers come from all sorts of backgrounds from all over the world, and different parts of the world have different ethics associated with their society. Because of this, we need to come together and set a guideline of ethics that we can all agree on. Then, later on down the line if we have an ethical disagreement, instead of the problem coming down to cultural ethical differences, both sides can look to the same agreed-upon guidelines.

 When looking to solve an ethical situation, the first thing I personally do is think about all the people involved in the situation. I try to put myself in everyone’s shoes for a moment, and think about what decision would be in the best interest of everyone involved. Then, I look at my own set of ethics that I have developed over the course of my lifetime, and attempt to make the best decision I possibly can for everyone involved. I also try to take myself out of the equation as much as I possibly can as well to remove any bias I might have on my own decision.

 In our Computer Engineering 394 class, we discussed a handful of ethical dilemmas in the engineering world. The first described an issue where Volkswagen installed software on their vehicles that allowed them to pass emissions tests, but then produce more-than-acceptable amounts of nitrogen oxide in the real world. The second issue talked about the Ford Pinto: a car that was to be under 2,000 pounds and under $2,000. In order to achieve this, the company had to cut many corners, but ended up cutting a few too many. In doing so, they risked the lives of millions by overlooking many life-threatening problems in their cars, and lying on crash test results. The third issue we discussed talked about whether or not data from today’s smart speakers should be used in court. The final issue was a theoretical, though very realistic, situation in which a programmer was asked to work with a dataset containing lots of personal information about people that was not obtained with the proper means and measures.

 In our class discussions, we all generally agreed with each other on the points we discussed. In the Big Data issue (the last one I mentioned in the previous paragraph), I brought up the point that there should be an open line of communication between the programmer and upper-management in which the programmer should feel safe to bring up any issues they might come across. My classmates agreed, stating that both parties should always be supportive of each other, and that regardless of rank or title, all parties can always stand to learn from each other. One classmate did point out a very good issue: even if the programmer followed all the advice I had mentioned and talked to his boss about how they don't feel comfortable working with this data, they can still be easily replaced. With the growing number of programmers in the job market, the company could easily keep swapping people in and out of that role until they find someone that will comply with what they want. My response would be this: while this is certainly true, and most definitely happening in many companies in the world today, the only thing the programmer can do is follow their own personal code of ethics and not do what the company was asking of them. If they are removed from the company, then they know that the company is not following ethical standards, and can report the company to the authorities. By doing this, they hopefully will remove the people in management that are abusing their power, and bring in new people who are following the ethical standards we are learning about in class.

 In class, we discussed six virtues that make up Virtue Ethics. These virtues are integrity, honesty, fidelity, charity, responsibility, and self-discipline. If I were to choose three of these that most reflect upon the Big Data issue, they would be integrity, fidelity, and self-discipline. I chose integrity because integrity is “exercising good and ethical judgement in your field of practice.” In this issue, the programmer should exercise this ethical judgement to realize that the data they were given was not legal or ethical for them to use. I chose fidelity because fidelity is a sort of faithfulness and loyalty. The programmer should have fidelity to the people that were in the illegal dataset that was given to him by choosing not to use their data illegally, and to his career by not allowing the company to pressure them into using this data illegally. Finally, I chose self-discipline because the boss that originally ordered the programmer to use this data should understand that what they are doing is illegal and unethical, and should have the self-discipline to realize this.

 In reality, all 6 of these Virtue Ethics could be applied towards the Big Data issue. I just chose the 3 that I believed applied the most. One of these virtues that could very much be applied towards another one of the issues we discussed in class is honesty. This mostly applies to the Volkswagen and Ford Pinto issues, in which the engineers involved in these situations should have been honest about the cars they were working on. The Volkswagen engineers should have been honest about the nitrogen oxide outputs of their vehicles, and the Ford engineers working on the Pinto should have been honest about the dangers of the car they were building, and the results of the crash tests.

 These ethics activities that we have done in class have made me realize how important it is for us to learn about them. By teaching us proper ethics, Iowa State University is minimizing the amount of people that will abuse their powers as an engineer in the future. Obviously, there will still be people out there who will disregard these ethics despite being taught about them. However, after taking this class, I know that personally I will take my ethical responsibility seriously.

General Education Reflection


 Over my time as a student, I have taken quite a few general education courses, though not necessarily all from ISU. Half of my general education courses actually came from high school, where I was given the oppourtunity to take college level courses as a high school student. Even today, these courses have left quite an impact on me, and I'm very glad I was given this oppourtunity.

 Of the general education courses I took as a high schooler, two of them were psychology courses, and one was a writing course. Originally when I took the first psychology course, I was only taking it to get the college credit, and because I had heard good things about it; I didn't have much of an interest in psychology. However, after I took the introductory course, I completely fell in love with psychology, so much that I took the second course. In fact, there originally weren't enough people signed up for the course for it to happen, and I had to go around encouraging people to sign up.

 The psychology courses I took helped me look upon our world in a new way. The first psychology course I took was an introduction to psychology, which talked mostly about all the well known people and theories in psychology. The second course was developmental psychology, which went through all the stages of life from birth to death, and what the human body and mind are going through in each stage. The second one probably stuck with me the most. I especially remember how the professor ended the course. He asked us all, "why do you think old people don't like going to nursing homes?" He let the class give a few answers, all of which were valid, before telling us the real answer: "because it's their last stop."

 The other college course I took in high school was Fundamentals of Communication, which was generally a writing course. This course was incredibly helpful in improving my writing. When I started the course, my first few papers did not have very good grades. By the end of the course though, I was getting A's and A+'s on all of my papers. This skill has been very beneficial for writing papers in college, and honestly has helped me to enjoy writing a lot more.

 In college, all of the general education courses I've taken I've also applied to either my music technology minor or my music minor. However, that isn't to say that they didn't broaden my perspective on the world. Music 102 was my first class ever at ISU, and showed how music is played all over the world. I'm also currently taking History of Rock and Roll, which dives deeper into American history and how that has impacted popular music. I've been enjoying this course a lot because it's helped me learn more about black culture and how much it has influenced our music today.

 Overall, these general education courses have helped me diversify my outlook on society in many different ways. Either by teaching me more about how the world works, or by giving a deeper, inside look into other cultures. These courses have left a great impact on me, and I'm very glad I've had the opportunity to take them.

Culmative Reflection


 Ever since I was young, I've always been obsessed with computers. I liked tinkering with code, messing with electronic parts, building, coding, etc. Because of that, when I was graduating high school, I knew I wanted to do computer engineering. I also knew I would only be able to afford in-state public universities, which automatically narrowed it down to two schools: the University of Iowa, and Iowa State University. I visited both colleges, and honestly felt more at-home at Iowa State. On top of that, the engineering program here felt more pronounced, versus at the University of Iowa it sort of felt like an afterthought. Thus, I chose to go to Iowa State for computer engineering.

 Starting as a freshman, I was immediately challenged as a student. Calc I taught me how to study for quizzes and exams, as these were no longer the high school tests where I could wing it and get an A. Cpr E 185 had a lab that, while started off fairly basic, by the end was challening me with new concepts I had not used before. This lab remains one of my favorites to this day. Using the PS4 controllers to interact with our code was incredibly fun, and because of that the labs never felt like a chore.

 My second semester, I took Cpr E 186, which was an optional course. I took this because I had a lot of fun in Cpr E 185 and wanted to be challenged some more. Cpr E 186 was less class work and more of a group project class, and this was my first experience with group projects in college. I'm glad I had this experience early on, as it taught me a lot about how to work together in a group to accomplish something. Especially delegation, which was something I struggled with prior to college; I was one of those kids that would take on all the work themselves to make sure it was done right. While I still took on the role of the team leader and took on the largest part of the project, I learned to trust my team members with the other two major parts of the project, which was definitely a new experience for me.

 After this, the classes and labs started to get much more difficult. Thankfully, at this point, I had developed a good group of friends that I could work with on these harder labs and study with for classwork. Studying with different groups of people was beneficial too, because I could get help with a concept with one group, and then when I studied with another group I could teach that group what helped me from the other group, solidfying the concept more for me as well.

 One of the best decisions I could've made in my college career (and quite possibly my life) was joining marching band. Marching band opened a whole world of oppourtunities to me while in college. It gave me an immediete group of friends, it gave me people to go to if I was struggling in certain classes, I had people to teach me about how college works in general, and that's not even touching the creative outlet it gave me as a musician. I am by nature a musical person, and having that hour and a half every day to play music with my friends is exactly what I needed after a long day of classes.

 On top of that, marching band gave me a ton of leadership oppourtunities. After my frist season, I auditioned to be a guide for the sousaphone section, which is essentially a section leader. I have been a guide since then, and will have totalled 4 years on the leadership team after next season. I have learned a ton about how to be a leader from marching band, including how to communicate effectively, how to teach others new skills, how to correct mistakes efficiently, etc. Finally, as I progressed as a student and moved from computer engineering to audio engineering, marching band provided me with a plethora of oppourtunities in this field. I did all of the sound work for the group Cyclone Sound, gave purchasing advice, and even did a professional recording of the men's pep band.

 Iowa State has given me an oppourtunity of a lifetime. When I came into college, I didn't have a ton of expectations for what college was going to be like. Having this open mind let me try a ton of new experiences while here, and all of these have helped shape me as a person in one way or another. On top of that, I feel like the classwork has prepared me for the problem-solving that I will undoubtibly encounter in the real world. Between these experiences, the classwork, and the lifelong friends I have made here, I am incredibly glad I decided to come to Iowa State, and wouldn't have it any other way.


Arrangements

A list of various arrangements/transcriptions I have done. You can view my MuseScore profile here.


A Song ~song by Tear~
Motoi Sakuraba, Shinji Tamura

From Tales of the Abyss.

Your browser does not support the audio element.

Downloads | View on MuseScore


Chance meeting with myself
Motoi Sakuraba

From Tales of Berseria. I used this arrangement as a reference on this score.

Your browser does not support the audio element.

Downloads | View on MuseScore

Cover of me playing this arrangement:


Confession
Motoi Sakuraba

From Tales of Arise. Measures 72-84 kind of suck since that was entirely strings, so there's not a lot I could do there. However the rest of the piece goes hard.

Your browser does not support the audio element.

Downloads | View on MuseScore


Defender of Life
Motoi Sakuraba

From the PS3 title screen of Tales of Graces. This arrangement was made with some help from this YouTube video.

Your browser does not support the audio element.

Downloads | View on MuseScore

Cover of me playing this arrangement:

View this post on Instagram

A post shared by Sam Lavin (@samuel_lavender)


For the Sake of it All...
Motoi Sakuraba, Shinji Tamura

From the ending sequence of Tales of the Abyss.

Your browser does not support the audio element.

Downloads | View on MuseScore


Goodbye
Bo Burnham

From Inside.

Your browser does not support the audio element.

Downloads | View on MuseScore


Illuminated By the Sunlight
Motoi Sakuraba

From Tales of Xillia.

Your browser does not support the audio element.

Downloads | View on MuseScore


Knight of Ratatosk
Motoi Sakuraba, Shinji Tamura

From the title screen of Tales of Symphonia: Dawn of the New World.

Your browser does not support the audio element.

Downloads | View on MuseScore


Let's Go, To Build Another World
Motoi Sakuraba

From the ending sequence of Tales of Xillia 2.

Your browser does not support the audio element.

Downloads | View on MuseScore


mirrors
Motoi Sakuraba, Shinji Tamura

From Tales of the Abyss.

Your browser does not support the audio element.

Downloads | View on MuseScore


Overflowing Emotions, Reunion
Motoi Sakuraba, Shinji Tamura

From the ending sequence of Tales of the Abyss.

Your browser does not support the audio element.

Downloads | View on MuseScore


Scene Suspended
Jon Hopkins
Your browser does not support the audio element.

Downloads | View on MuseScore


Sea of Dreams
Oberhofer

For this arrangement, I basically took this score, and re-arranged it to the way I liked it. I'm not as proud of this one (as it's not the most interesting to play as a piano solo), but I figured why not put it here anyways.

From Bojack Horseman S3:E4: Fish Out of Water.

Your browser does not support the audio element.

Downloads | This score is not public on MuseScore


Tales of Berseria
Motoi Sakuraba

From the title screen of Tales of Berseria.

Your browser does not support the audio element.

Downloads | View on MuseScore


Tales of Crestoria - Title Screen
Takao Ogi
Your browser does not support the audio element.

Downloads | View on MuseScore


Tales of Zestiria - Track 101
Motoi Sakuraba

A track that unfortunately was not included in the OST, and therefore has no name.

Your browser does not support the audio element.

Downloads | This score is not public on MuseScore


The Chicken
Bo Burnham

From the Inside outtakes.

Your browser does not support the audio element.

Downloads | View on MuseScore


The End of a Nightmare, But Still in the Middle of a Dream
Kazuhiro Nakamura

From Tales of Innocence. Done by request.

Your browser does not support the audio element.

Downloads | View on MuseScore


The Look of That Day
Motoi Sakuraba, Shinji Tamura

From the credits of Tales of the Abyss.

Your browser does not support the audio element.

Downloads | View on MuseScore


too late for chocolate?
Kana Hanazawa

There are some audio glitches in the mp3 export for this song, which are due to issues in MuseScore outside of my control. I created an issue for the problem here, though it has yet to be fixed as far as I know.

Your browser does not support the audio element.

Downloads | View on MuseScore


Wake
Motoi Sakuraba

From the ending sequence of Tales of Eternia.

Your browser does not support the audio element.

Downloads | View on MuseScore

Cover of me playing this arrangement:


Welcome to the Internet
Bo Burnham

From Inside.

Your browser does not support the audio element.

Downloads | View on MuseScore



Sam Lavin

Sitemap

Socials/Contact

  • she/they
  • Windows Engineer at Epic
Home
├Tales Character Sorter
├Midi decoder
├Rainbow experiment
├Word clock
└App privacy policy
     
Email: contact@samlav.in

Sam Lavin

Socials/Contact

  • she/they
  • Windows Engineer at Epic
     
Email: contact@samlav.in