Skip to content
View rec's full-sized avatar
🥝
coding
🥝
coding

Organizations

@pi3d

Block or report rec

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rec/README.md

Tom Ritchford

Everything should be made as simple as possible, but no simpler.

Resumé: .pdf .md

My GitHub stats

I am retired! (unless...)

We moved to Normandy. My job suddenly vanished. AI bores me. I took early retirement! Life is good.

So I'm spending my time on music and digital audio programm. I'm still open to work in digital audio, MIDI, music, lighting control or other things I find personally entertaining.

My Python open source projects

This is a dashboard of my active Python open-source projects on Github, mostly small- to medium-sized libraries that try to do one useful thing as clearly and thoroughly as possible.

(No AI was used in the writing or maintenance of any of these libraries.)

🌟 means "Stars"
👁 means "Subscribers"

🟢 means "Release version"
🕰 means "Most recent non-version commit"

(Last update 2026/05/09, 20:40:16 by https://github.com/rec/multi)

Production-ready

             🧿 safer 🧿     (🌟 193  👁 2)
      A safer writer for files and streams
26/05/09🟢Update version to v5.4.0
26/05/08🕰Make project compatible with uv and poetry
                 🗃 tdir 🗃     (🌟 6)
     Create and fill a temporary directory
26/05/09🟢Update version to v1.10.0
26/05/08🕰Make project compatible with uv and poetry
              🖋 editor 🖋     (🌟 10)
          Open the default text editor
26/05/09🟢Update version to v1.8.0
26/05/08🕰Make project compatible with uv and poetry
                  ✂️ psplit ✂️
             Split git patch files
26/05/09🟢Update version to v1.2.0
26/05/08🕰Make project compatible with uv and poetry
              🗜 gitz 🗜     (🌟 37  👁 2)
    Tiny useful git commands, some dangerous
26/05/09🟢Update version to v1.9.0
26/05/08🕰Make project compatible with uv and poetry
                   🎨 nc 🎨     (🌟 4)
             Named colors in Python
26/05/09🟢Update version to v1.2.0
26/05/08🕰Make project compatible with uv and poetry
            🗝 dtyper 🗝     (🌟 21  👁 3)
            Fix and improve `typer`
26/05/09🟢Update version to v2.7.0
26/05/08🕰Make project compatible with uv and poetry
              🏫 clsprop 🏫     (🌟 2)
      Just like @property but for classes
26/05/09🟢Update version to v1.5.0
26/05/08🕰Make project compatible with uv and poetry
                🧵 threa 🧵     (🌟 2)
                 Better threads
26/05/09🟢Update version to v1.11.0
26/05/08🕰Make project compatible with uv and poetry
               ⛏ sproc ⛏     (🌟 12)
         Subprocesseses for subhumanses
26/05/09🟢Update version to v2.6.0
26/05/08🕰Make project compatible with uv and poetry
            🍱 zoialib 🍱     (🌟 4  👁 2)
     A patch librarian for the Empress ZOIA
26/05/09🟢Update version to v0.8.0
26/05/08🕰Make project compatible with uv and poetry
                 🌱 xmod 🌱     (🌟 5)
         Turn any object into a module
26/05/09🟢Update version to v1.10.0
26/05/09🕰Make project compatible with uv and poetry (fix #9)
               🛎 impall 🛎     (🌟 8)
            Test-import all modules
26/05/09🟢Update version to v1.7.0
26/05/08🕰Make project compatible with uv and poetry
              🗂 datacls 🗂     (🌟 3)
         Take the edge off `dataclass`
26/05/09🟢Update version to v4.10.0
26/05/08🕰Make project compatible with uv and poetry
               🐜 abbrev 🐜     (🌟 4)
              Expand abbreviations
26/05/09🟢Update version to v1.4.0
26/05/08🕰Make project compatible with uv and poetry
                  🎴 dek 🎴     (🌟 4)
            The decorator-decorator
26/05/09🟢Update version to v1.6.0
26/05/08🕰Make project compatible with uv and poetry

Beta

                     🎧 fmix 🎧
             A scripted track mixer
26/05/09🟢Update version to v0.2.0
26/05/09🕰Make sure that sys.exit is called with a string in __main__.py
                    🎶 tuney 🎶
          Turn text into music (#noAI)
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                  🥞 pullman 🥞
          Manage ghstack pull requests
26/05/09🟢Update version to v0.12.0
26/05/08🕰Make project compatible with uv and poetry
                     🔧 fixo 🔧
Semi-automatic rule based editing of Python code
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                  🏺 fil 🏺     (🌟 3)
         Read/write JSON/TOML/Yaml/txt
26/05/09🟢Update version to v1.6.0
26/05/08🕰Make project compatible with uv and poetry
                   🔢 plur 🔢
        Simple universal word pluralizer
26/02/03🟢Update version to v1.1.0
26/05/08🕰Make project compatible with uv and poetry
                 🍇 cfgs 🍇     (🌟 3)
           XDG standard config files
26/02/03🟢Update version to v0.14.0
26/05/08🕰Make project compatible with uv and poetry

Experimental

                🖐️ fing 🖐️     (🌟 6)
A universal representation of fingering systems for winds, reeds, and brass
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                    🌐 nmr 🌐
           Name all canonical things
26/05/09🟢Update version to v0.11.0
26/05/08🕰Make project compatible with uv and poetry
               🎙 recs 🎙     (🌟 3  👁 2)
             The Universal Recorder
26/05/09🟢Update version to v0.12.0
26/05/08🕰Make project compatible with uv and poetry
                  🔉 vl8 🔉     (🌟 3)
                Perturbed audio
26/05/09🟢Update version to v0.4.0
26/05/08🕰Make project compatible with uv and poetry
                   💡 litoid 💡
             Sequence DMX lighting
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                 🗣 def_main 🗣
              A decorator for main
26/02/03🟢Update version to v0.12.0
26/05/08🕰Make project compatible with uv and poetry
                 📓 hardback 📓
        Hardcopy backups of digital data
26/02/03🟢Update version to v0.10.0
26/05/08🕰Make project compatible with uv and poetry
                   📦 backer 📦
           Continuously back up files
26/02/03🟢Update version to v0.8.0
26/05/08🕰Make project compatible with uv and poetry

Mothballed

             🌊 wavemap 🌊     (🌟 10  👁 2)
       Memory map WAVE or raw audio files
26/05/09🟢Update version to v2.2.0
26/05/08🕰Make project compatible with uv and poetry
         🛍 loady 🛍     (🌟 6  👁 2)
       Load Python code and data from git
26/02/03🟢Update version to v1.9.0
26/05/08🕰Make project compatible with uv and poetry
               🏃 runs 🏃     (🌟 3  👁 2)
      Run a block of text as a subprocess
26/02/03🟢Update version to v1.3.0
26/05/08🕰Make project compatible with uv and poetry

Personal

                  🐘 fortune 🐘
     A Mastodon bot for /usr/games/fortune
26/05/09🟢Update version to v0.3.0
26/05/08🕰Make project compatible with uv and poetry
                    📚 multi 📚
          Manage all my other projects
23/02/02🟢Update to version v0.1.0
26/05/09🕰Make project compatible with uv and poetry
    ⬜🟩🟦🟥 blocks 🟥🟦🟩⬜
              Solve a block puzzle
26/02/03🟢Update version to v1.1.0
26/05/08🕰Make project compatible with uv and poetry
                     ❓ test
         Tiny bits of experimental code

26/05/08🕰Several changes
                 ⚫ dotfiles
                  My dotfiles

26/05/08🕰Modify dotfiles/.emacs.d/.emacs.desktop

Pinned Loading

  1. tfile tfile Public

    📁 tiny C++11 file utilities 📁

    C++ 24 4

  2. swirly swirly Public

    Tom Swirly's Javascript libraries for Max.

    Max 48 5

  3. echomesh echomesh Public

    An array of noisy, reactive little computers.

    C++ 37 21