• Ogle
  • Magister
  • Syntheogen
  • nthClock
  • TypeScript
  • JavaScript
  • C++
  • C#
  • React
  • WPF
  • Git
  • Split Notation
  • Physics (PDF)
  • DSP (PDF)
  • Math (PDF)
  • Mathematica
  • Play Time
  • Music
  • Politics
  • “Let’s not bullshit about this. Racism is a wonderfully effective political tool for Republicans, yet explicit racism is frowned upon in polite society now, so there is a constant flow of new issues to stand in for racism in political discourse. Lee Atwater, who invented Nixon’s ‘southern strategy’, explained this all decades ago, and it is still true. George Wallace could be outright racist, but subsequent generations of politicians have had to cloak it in ‘welfare reform’ or being ‘tough on crime’ or, now, opposition to ‘wokeness’ and ‘critical race theory’ — things which mean, by the way, ‘caring about racism’.”

    — Hamilton Nolan in The Guardian

    Syntheogen

    Sequencer & synthesizer — Android — C++, Android NDK

    Syntheogen™ is a step sequencer and synthesizer I developed for Android phones and tablets:

    Syntheogen screen shots
    LOOP STEPS dialog TRACK EFFECTS dialog TRIM CLIP dialog SONG dialog

    I started this project because I thought it would be really fun. Looking back, though, it was just a pain in the ass. Android is a frustrating platform, and some of my design choices made the project harder than it needed to be. The app turned out well — it's really fast, the sound quality is good, and there are some interesting UI features — but I have no desire to work on it again. Google kept pushing me to update the package, but I am sick of those idiots, so it is no longer available on the Play Store. Maybe I will open source it some day.

    Anyway, Syntheogen was mostly written with C++ and the Android NDK. Production builds targeted Android, but the app also runs on Windows, which I used for development and testing. It was extra work to make everything cross-platform, but it ultimately saved a lot of time.

    The interface was built on a custom GUI framework. The sequencing and synthesis engines are also custom designs, and the sequencer offers features not found in other music apps: measures can be sized and divided almost arbitrarily, patterns of different length can be mixed in the same loop, and notes can be tied to produce legato phrases of any length.

    To learn more, visit the Syntheogen site or watch the Quick Start video.