Show HN: Nallely – A Python signals/MIDI processing system inspired by Smalltalk

8 drschlange 2 9/19/2025, 12:09:27 AM dr-schlange.github.io ↗
Nallely is about experimenting with signals: routing, patching, or writing small neurons that process signals and eventually sink in MIDI devices or any application connected to Nallely.

I try to get inspired by the "Systems as a Living Things" philosophy and aim, step by step, to create an auto-adaptive, resilient, distributed system. Currently, neurons live in their own thread in a session (world), and send signals (messages) to each other through patches (channels). You can also connect to a network-bus neuron to register your own neurons written in any other technology and have them interact with the existing neurons inside the world. Nallely offers an API to easily code your own reactive neurons, and provides a mobile-friendly GUI for patching everything visually.

As anyone posting something based on Python, I can already hear: "no, Python's bad, think about the performances, think about the children".

We all know about Python performances (we've all seen the animation with the moving balls and stuff), but the focus here is on dynamic and emergent behaviors, extensibility, and run time adaptability over extreme performance. Even though Nallely is written in pure Python, it runs on a Raspberry Pi 5 (ok, a powerful one), consuming less than 10% CPU on a normal usage and around 40MB of memory.

And, as someone mentioning Smalltalk, I can already hear: "Why didn't you write it in Smalltalk"? (replace Smalltalk by your prefered dialect)

I like Smalltalk, but I also like Python. Nailed it, perfect justification. Jokes aside, IMO Smalltalk is "Systems as Living Things" pushed at its extreme for designing a language, and I admire that. With Nallely, I want to explore the same philosophy: independent musical/signal-processing neurons, without relying on Smalltalk, while benefiting from Python's deployment and ecosystem advantages (compared to Smalltalk).

Comments (2)

alehlopeh · 48m ago
Feels like ruby would have been a good choice, given it’s also a dynamic scripting language and is more closely associated with SmallTalk than python. But we like what we like.
drschlange · 10m ago
That's a really good point. I didn't consider Ruby, but not for logical or very good reasons beside the fact that it never clicked between us (I'm the guilty here). I try to take inspiration from Smalltalk usability and broad ideas, but I'm not trying to fit exactly its object model.

Anyway, I should propose a small Ruby lib to easily connect to the network-bus to create neurons. I have one in js that I targeted in the first place as it's easy to get webcam/sound working there with minimal efforts, but a Ruby one would be cool!