Kenan Schaefkofer
is a software engineer with passions for games, music, math, and open-source software. This page highlights several personal projects built by Kenan over the years, most of which can still be enjoyed today. You can find his professional experience in his
resume.
Personal Projects
A browser tool for typing, practicing, and sharing rhythmic exercises. Write ABC notation and it renders as sheet music you can play back, following a bouncing ball that hops from lyric syllable to syllable, karaoke style. Includes a metronome, tempo control, and shareable links that pack the whole exercise into the URL. Try it out
A frontend-only helper for tracking what you know about your own hand in an in-person game of Hanabi, following H-group conventions. It applies the positive and negative information from each clue across your hand, lets you cross off possibilities and mark cards as critical, chop-moved, or finessed, and includes a conventions cheat sheet. A Svelte fork of jparkhouse/hanabi-tracker. Try it out
A low-latency digital instrument for Android and Linux, inspired by the autoharp and written in Rust. Swiping across a line plays a note, and simple cardinal-direction gestures change chords. On Linux it acts as a virtual MIDI device (great with a bumpy-covered drawing tablet for haptic 'string' feedback); on both platforms it can synthesize its own square-wave output. Source
A smart OpenType font that makes binary and hexadecimal numbers visually obvious. Digits get bit-transparent glyphs, so a hex value and its binary expansion read at a glance and even line up when you count. Built by designing glyphs in Inkscape and wiring up substitution rules in FontForge and feature files. Try it out
A not-just-arbitrage trading bot that monitors multiple prediction market and forecasting platforms and executes trades based on the best available discrepancies, taking into account the fees, liquidity, and accuracy of each platform and contract. Manifold Profile
Lightweight realtime LV2 additive chiptune synthesizer with Unity Audio Plugin integration. This plugin was built in C and C++ to provide low-latency audio for MIDI events in a Unity project integrating music and gameplay. Designed from the ground up with an MIT license to permit commercial use. Pictured here as used in LMMS. Download
Provides full sheet music and in-browser accompaniment for hundreds of carefully typeset songs. Individual part volumes can be adjusted to learn by ear. Every page provides viewing and downloading of PDFs, PNGs, lyrics, MIDI, MP3, and even a slideshow! This ambitious project combines Lilypond, Jekyll and frontend UX. Check it out
An Arduino-controlled autoharp chord mechanism permits thousands of chords, while other autoharps max out at 21. The Arduino reads presses from a keypad, and maps them to a chord like B♭ or D♯m(add2). Two 8-bit shift registers control 36 solenoids in order to dampen the unwanted strings. Download
An in-browser card table for playing arbitrary tabletop games with friends, made with a Flask backend and jQuery/Socket.io frontend. No rules are enforced or automated, but decks, dice, and private hands allow players to play as they would in real life. Developed before Kenan realized Tabletop Simulator was a thing. Download
Loopsichord is a digital instrument for mouse and keyboard, featuring looping, colors and visualizations. It takes the layout of a piano into the second dimension by stacking diatonic scales, with related keys adjacent. A great way to play and discover that the key of C is no more fundamental than its peers. Download
A 2014 high school project, this quiz bowl buzzer hub manages timekeeping, lockout, and scorekeeping. Built with Python, Tkinter, Raspberry pi, and 3D printed buzzer assemblies. It was practice in learning, building, and tweaking a design based on stakeholder feedback. Kenan's high school used the system for its hosted tournaments. Download