Jason Medcoff // Jorts

Table of Contents


Home website (permanently under construction) of Jason Medcoff; a musician, scientist, and programmer based in southeast Michigan.

Currently written in org-mode and exported to html. Maybe when I'm feeling more ambitious I'll switch to some other framework.


Here is where I will attempt to concisely explain why I am a geek. I will geek out. You have been warned.

From an educational perspective

Entering high school gave me a renewed appreciation for the theoretical sciences, and I found myself taking relevant electives of all sorts, ranging from residential wiring to introductory physics to forensic investigation. During this period, I was also developing further interests in music composition and theory, and applying them with residence in the jazz and marching bands. It was in the marching band that I picked up the extremely sticky nickname, Jorts.

After working my ass off for my GPA and the agglomeration of standardized tests in my penultimate year, I used a spare elective hour to take a class in 3D modeling and video game design, which introduced me to "real" programming (contrasted with the javascript-less web design class I took earlier). I began to dabble in python (writing scripts to solve my physics homework, among other things) and started falling in love with the application of computing to menial tasks. Having been accepted to the local Oakland University, I began the journey toward geekdom and glory, pursuing a bachelor of science degree in computer science.

It is often said that people don't truly discover themselves until they enter university. While I can agree with the sentiment on some level, I believe more firmly in the idea that one only begins to discover who he or she is at this point. I still have new discoveries about myself almost daily, but I digress. The first few semesters of university were intellectually stimulating, but only slightly more so than high school. I learned great amounts about circuits, physics, and introductory discrete mathematics, making new friends along the way. But the real fun began during the second semester of my second year.

It was a strange semester, being only fourteen credit hours due to an earlier taken summer class. In addition to a laughable team project course and an equally feckless business class, I completed two classes that began to open my eyes in very different ways: linear algebra and philosophy of ethics.

The ethics course was of average interest to me with regards to subject material; naturally we examined case studies of science and engineering (mostly engineering, which often equates to determining the cost of a human life (see Ford Pinto, Space Shuttle Challenger, etc)). The subject material (perhaps guided by class discussion) tended to display engineers as safety-aware and the bureaucratic managers and penny-pinching executives as the bad guys. It felt like the perspective offered by Scott Adams, where engineers would be willing to double the cost of a project just to reduce risk (The Dilbert Principle, Chapter 14). So, the class discussion was excessively normative and irreverent of "real world" cost effectiveness. The real fun for me, though, was the pure problems themselves. Making ethical decisions is hard. I argue that such decisions on ethics, truth, and knowledge are more difficult than any subject material of which I know. My appetite for thoughtful discourse conceived, I became a regular at the student philosophy club by advisement of the professor.

Linear algebra as a subject material was tought after introductory discrete mathematics in the computer science curriculum. Discrete gave a thorough introduction to proofs, sets and relations, graphs, and combinatorics. All of this was fine and dandy, but aside from the graph theory, I struggled to see the practicality of the course. Entering linear algebra, under the instruction of Dr. Serge Kruk of the mathematics department, I began to understand that I had a desire to learn more.

To wrap up, I'll summarize that this semester opened interests in logical thought, mathematical practicality, and intellectual discussion. I had since declared a mathematics minor, and now do work in the sciences in the form of research and tutoring. I still chill with the great minds of the philosophy club from time to time, and make it a point to read and learn about applied mathematics regularly.

From a music perspective

Against my own wishes, I was placed in piano lessons as I entered first grade. I continued for five years, but stopped around the time I began band class in school. Perhaps my only regret in life is not continuing with piano, and taking it seriously, to further improve my mechanical skill.

Having no interest in vocal music, I chose to study percussion in my school's band program. I joined the jazz band in middle school, and began marching in high school. This ended up being one of the best decisions of my life; many of the people I met in the program are still good friends of mine. I continued with jazz, playing drumset and keys, and went on to become the section lead for the marching battery.

All of this involvement in instrumental music somehow sparked a creative interest in composition. I began to experiment with music theory, but still lacked a means for composing music of my own. Sometime around middle school, I was introduced to digital sequencers and computer music by a relative. So, during high school, I began to revisit the tools and tricks of composition on the computer.

Perhaps the most important record I ever listened to was "Satellite", by Above and Beyond's vocal trance group, Oceanlab. The track was used as background music in a youtube video that I've long since forgotten. The music was beautiful to my ears, and I longed to create music as emotionally charged. So, I began to produce (crappy) trance music. Completely uninterested in money or fame, I made tracks only for them to sit on my hard drive. I never published any of these tracks online, and almost all of them as a result are lost forever.

During high school, my small collection of close friends included one CRUPT (https://soundcloud.com/crupt), or Joe, as I know him. By coincidence we were made aware of the fact that each of us had interests in computer music, and so a strong friendship and productive partnership began between us. For years to follow, we would bounce song ideas and production tips off of each other via email. This was, coincidentally, during late 2011. The music of the time was dubstep.

I continued to produce music regularly, and began releasing original tracks on a new soundcloud account, under the name "AR3S Music". After discovering the technical majesty of James Egbert, Porter Robinson, and others, I "found my sound" in complex electro house.

After some wandering years improving my craft, changing my name to "Jorts", winning remix contests, and shaping my sound to be more jazz oriented, I set myself on releasing my debut album as a show of my worth. Over the course of roughly two years, I wrote the tracks that would collectively become Delta Method. Since then, I have continued to remix while stockpiling original work in anticipation of my next release, whenever it shall be.

During my second year of university I decided to purchase a classical guitar, after years of listening to its sound. I had the pleasure of studying under Bret Hoag of the OU music faculty for the entirety of my junior year. These days, I still find time to practice, and learn new songs for fun.

From a programming perspective

The most ideal place to begin here is at my first year of university. The requisite introductory courses were mostly boring for me, and according to my peers, are boring for most. The standard first course was a beginner's treatment of unix and C. I had already experimented with gnu/linux far beyond the scope of the course, and found C to be clunky and too surgical in comparison to my native python. The first course in OOP spawned my absolute disdain for java, a language I still despise today. I pity programmers who are forced to write java code. I will never understand those who do so by their own will.

After digesting the heavy material from a data structures class and coasting through the aimless sophomore project, I flew headfirst into what I unquestionably consider to be my first "real" CS class: design and analysis of algorithms, taught by Dr. Kruk (see the recurring theme here?). This class sated my hunger for difficult theory and academic readings. We studied the classical algorithmic problems in CS: searching, sorting, and graph traversal. We read Bentley-McIlroy, Edmonds, and Dijkstra. It remains one of my favorite classes.

After that semester, I met the love of my life: the lisp family of languages (and the functional paradigm in general). A course in programming languages using scheme showed me the beauty of it all. It was a revelation: if you're writing code in your day-to-day routine and you think, "darn, I wish lisp had an operator/macro/syntax to do xyz", you go and write it. Python can't do that. Java certainly can't either. You can literally (literally, not figuratively) extend the language itself to do what you need it to do. It's how lisp has such powerful constructs for iteration, objects, metaprogramming, etc.

During this time, I somehow decided that I hadn't had enough of Dr. Kruk yet, and began talking with him about his research and projects. After winning the approval of my department, I signed on to work for him during the summer for credit, writing lisp code to project polytopes described by integer programs described by constraint programs.

Rants and Raves

A place for me to write freely my acerbic thoughts on software development, academic bureaucracy, pragmatic philosophy, and generally the afflictions of day-to-day life as a human being.

Summer 2017

<2017-07-20 Thu>

It's damn hot. It's hard to focus on getting anything done with this heat. And despite this, I still need to be productive. I've finally got sound working on my machine, and it turned out to just be a simple pacmd command. Sometimes I really dislike pulse, for making things more complicated than they need to be, but until JACK becomes the default system for audio, I guess we need to live with it. Anyway, I've got extempore loaded up and managed to crank out a few sine waves, so I now just need to play around with it more.

In other news, my mathematical physiology research is yielding strange results. But, I do find gnu octave to be a capable little program for running experiments and writing scripts. I just need to get it running in an emacs mode, because the gui that ships with it is pretty horrible. It's too clean and shiny. It's like you can tell it was designed by engineers, because everything is so polished and neat but without enough focus on intuitive interface and simplicity.

I do not think of myself as an engineer, and I hope that I won't ever have to do what engineers do. The way I like to put it is this. Scientists do to learn. Engineers learn to do. Scientists study problems to learn, and engineers study problems to monetize them. This is in no way intended to offend engineers. There is some glory to be seen in monetizing problems (see: sliced bread, automobiles, e-commerce) but there is no such appeal to me. I am, according to my major, a computer scientist, and as such I think of myself as a scientist as defined above. I like to learn and study, but not strictly for the sake of turning a profit. Despite this, it seems that many individuals today choose to pursue science when their passion for it is true, and go into engineering because they think they can profit off of their academic prowess, which again, is not a bad thing; it's just not what drives me, or many other scientists I've met and am friends with.

<2017-07-09 Sun>

Here I begin a new adventure of building a website. At the very least, it will give me something productive to do, and a reason for running an old machine on my network. At best, it could be a source of informative content for the world to peruse, but let's not get ahead of ourselves here. This is me I'm talking about.

I'm not terribly interested in web design, so I had the idea to prototype the site by using org-mode's export to html. And if I may say so myself, it looks pretty damn good! Just another reason to love org-mode; as if the focus on productivity isn't enough, one can stand up a website without having to learn almost every javascript library in the universe to make it look decent.

That said, due to the market flood of web and mobile developers, my disinterest in these categories will likely carry through the rest of my schooling, at least. To me, real world web dev is a spaghetti of javascript/php dependencies, and I'm too far removed from the average mobile end user to understand what kind of applications they want, if I'm even creative enough to think up ideas for applications.


Playback can be started here, and the music will continue as you navigate the site.


Current Work

Stuff that I'm doing right now as research, for fun, school work, or learning on my own.

Facet Discovery Tool

In collaboration with Dr. Serge Kruk at Oakland University. We're writing code to take a constraint program, transform into an integer program, project the representative polytope onto a subset of the variables, and abstract the facets of the polytope. My work in the project is mostly in regards to the projection code. The engine uses a fast Fourier-Motzkin implementation, with help from parallelization and J. L. Imbert's theorems pertaining to inequality historical sets. Using steelbank common lisp (yay!) as an implementation language.

Cardiac Electrophysiology

With Dr. Steffan Puwal at OU, writing simulations and transforms to operate on action potentials looking for and qualifying chaotic behaviour. The Fenton-Karma model of cardiac activity is used, with gnu octave as the number-cruncher.


Here I collect ideas I get for interesting projects. Hopefully these can be turned into hackathon hacks, occupations of spare time, weekend adventures.

Shitpost bot

I use discord as a VoIP and chatroom service with my friends (reluctantly so, these days. What will it take for you guys to implement end-to-end encryption? It's 2017! Have you seen our government?). Our experience is generally good, using the voice channels for both idle chatting and communications whilst playing the occasional video game. The real fun of the server, though, is the abundance of text channels for the sharing of memes, photoshop battles, musical crimes, etc. What would really take our server to the next level is a bot.

Since studying Markov matrices in linear algebra I've done more reading and experimentation with Markov chains as a tool for statistically rigorous random generation. What I'd like to do is write some code to scrape 4chan's /b board (or some comparatively revolting location) and compile a text bank from which a Markov-inspired generator can form textual output. The ideal size for the text bank must be considered, as well as the rate at which it scrapes for new material, and whether it discards old material upon scraping.

The final step would then be to wrap all this up in a discord bot, accessible from our chat server, and likely hosted on my web server machine. Language wise, there are a couple of interesting options: discord.py, for python, and discord-hs for haskell (but nothing for lisp!). Of the two, discord.py seems to be the more mature option.

Ray Theory

I've had an idea for a video game for years now, since I took a video game design class in high school, that historically has beared the codename "Ray Theory". Without spoiling too many details, it would be a sort of psychological thriller/horror game likely with a pixel style a la your garden variety two dimensional RPG. I've looked into various means to produce such a game, including doing it from scratch in C, using libraries alongside python/C++, and learning a gamemaker/rpgmaker/equivalent style software. Problem is, I'm pretty busy, and I'm not sure I have the patience to stick with a project like this until the end, especially considering few would end up playing the game and even less would actually enjoy it.

Live Coding

This is less of a project and more of a learning experience. Having seen the likes of Andrew Sorensen and the other boys in TOPLAP, I've been inspired lately to try this cool activity both for personal enjoyment and possibly as a means of composition. There are quite a few different environments out there for live coding; most are based on functional language (which nowadays, of course, is no problem). Many of these are lisps (scheme, clojure, or new languages based on lisp) but unfortunately also carry little documentation or online community. One particular language, extempore, is of Sorensen's design and has been his weapon of choice since its release. Perhaps that is a good place to start. Only problem I can see with it is that it's under copyright. Yuck.

Relevant links

For music

https://soundcloud.com/jortswubs Album previews, remixes, and other odds and ends

https://twitter.com/jortswubs On here sometimes, don't post much though

https://facebook.com/jortswubs More activity here than twitter, but not by much

https://jortswubs.bandcamp.com Full album releases and downloads (pay what you want)

For code

https://github.com/jorts1114 Pretty much all of my public projects, school or personal


The best way to get in touch with me for music-related communications would be twitter or soundcloud. Linkedin is a good option for professional inquiries. Twitter also works generally, since I can see messages and mentions right from my phone.




If you would prefer to use email, feel free to shoot one to jortswubs(at)gmail.com, and we can decide on a more appropriate channel, if necessary.

Author: Jason Medcoff

Created: 2017-07-20 Thu 16:13

Emacs 25.1.1 (Org mode 8.2.10)