Hello! It's been a while since my last post, and some eventful stuff has happened, namely: I am working on-campus again full time. Hooray! It was a bit nerve-wracking at first to go to work every day and not wear a mask, but it didn't take long to get used to it. At some point you learn to trust that the vaccine is going to do its job properly.
Anyway, I made some changes to the oscillator demo, and I'm getting to the point where I'm close to wrapping up work on it and moving on to my next project.
The oscillator now is capable of playing a sequence of phrases on an instrument. The code to do this wasn't too hard, the hard work was actually in just hashing out the phrases and putting the sequence in the correct order.
I also transformed all the song/instrument classes into data classes. Business logic has been entirely moved out of them.
When you play it, it will play a familiar tune if you're a fellow member of the Oregon Trail generation. Really, any video game fan will recognize the tune.
As ever, check out the repository if you want to see my code: https://github.com/mabersold/kotlin-oscillator-demo
Next up: I want to play more than one instrument simultaneously. This is going to involve mixing. But before I do that, I might want to be able to load a song from a JSON file instead of building it in the code. Which one will I do first? Not sure.
For my next project, I want to continue with the Amiga protracker loader / player. I'm undecided on whether I want to do it in Kotlin or to try it out in a different language. I'm considering doing it as a node module written in Javascript or Typescript. I'm better at Kotlin, but I wouldn't mind improving my skills in node.
However, I'm not going to start on that project until I'm satisfied with this one. The protracker project is going to be a bit more intense - ultimately, my goal for that one would be to have a more modern library to play mod music formats. So I don't want to get started on it until I'm ready to move on.
Comments
Post a Comment