VU meter Composite Widget
VU meter Composite Widget
I recently went down a rabbit hole. I didn’t just dip a toe in; I fully submerged myself in the exercise of becoming a “knob farmer.”
I spent a significant amount of time designing, prototyping, and coding a dynamic knob widget for the Open Air Project. I thought it would be a simple task. It’s just a circle that spins, right?
I was wrong. Continue reading
February is Toronto AES Audio Engineering Society Member showcase….
The **Linear Travelling Potentiometer (LTP)** is a hybrid user interface widget designed to save screen real estate while maximizing control density. It integrates a rotary knob directly onto the cap of a linear fader, allowing simultaneous control of two related parameters (e.g., Level and Pan, or Send Level and Send Pan) in a single compact footprint.
Back in 2013, I presented a concept at the AES Toronto meeting called the “Linear Traveling Potentiometer” (LTP).
demo: https://like.audio/LTP/
The idea was simple but mechanically complex: Combine a linear fader and a rotary potentiometer into a single, fluid control. Two motions, one component.
I even had a prototype in a “black bag” that I let people feel without seeing. The goal was to control intensity (volume) and position (pan) simultaneously—a single-point coordinate system for surround sound and spatial audio.
For years, this existed mostly as hardware prototypes and sketches. But the vision never went away.
Now, nearly 15 years later, I have finally recreated my vision purely in software. Click, grab it like a fader… Move up for volume and sideways to pan…
I’ve brought the “Two in One” concept to life digitally. No moving parts, just the physics of the original idea translated into code.
It’s been a long road from that first presentation to this software build. Sometimes the technology just needs to catch up to the idea.
## Core Concepts
### 1. Hybrid Control
* **Linear Fader (Y-Axis):** The vertical position of the cap controls the primary value (typically Volume, Level, or Depth).
* **Rotary Knob (Rotation):** A knob embedded in the fader cap controls a secondary value (typically Pan, Param, or Intensity).
* **Unified Interaction:** Both controls are accessible from the same visual element, reducing mouse travel and UI clutter.
### 2. Interaction Modes
The LTP supports distinct interaction modes to prevent accidental changes:
* **Standard Mode:**
* **Drag Handle:** Adjusts Linear Value only.
* **Alt/Option + Drag:** Adjusts Rotary Value only (Linear position is locked).
* **Scroll:** Fine-tune Linear Value.
* **Alt/Option + Scroll:** Fine-tune Rotary Value.
* **Freestyle Mode:**
* Dragging the handle adjusts **BOTH** Linear and Rotary values simultaneously based on 2D mouse movement. This allows for gestural control (e.g., “throwing” a sound into a corner).
* **Pan Latch:**
* **Double-Click** the cap to engage “Pan Latch”.
* In this state, horizontal mouse movement adjusts the Rotary value without needing to hold a modifier key.
* Click or drag again to disengage.
### 3. Visual Feedback
* **Linear:** Position of the cap along the vertical track.
* **Rotary:** Orientation of the indicator line on the cap.
* **Active State:** The knob glows (default blue/orange) when Rotary control is active (via modifier, latch, or freestyle mode).
* **Pointer:** When adjusting rotation, the indicator line extends (10x length) to provide precise visual feedback, then retracts on release.
## Use Cases
* **Channel Strips:** Volume (Linear) + Pan (Rotary).
* **Effect Sends:** Send Level (Linear) + Pre/Post Toggle or Send Pan (Rotary).
* **Synthesizers:** Cutoff (Linear) + Resonance (Rotary).
* **Spatial Audio:** Distance (Linear) + Azimuth (Rotary – mapped to circular motion).
## Implementations
### HTML5 Demo (`index.html`)
A standalone web-based demonstration using HTML5 Canvas.
* **Features:** Multi-touch support (1 finger slide, 2 finger twist/pan), keyboard modifiers, responsive layout.
* **Theme:** Dark mode with high-contrast UI.
## The Open Concept License
This project is released under **The Open Concept License**.
* **Freedom:** You are free to use, modify, and distribute this work.
* **Attribution:** Explicit credit to **Anthony Kuzub** must be given in all derivative works.
* **Nomenclature:** Implementations must strictly use the terms **LTP (Linear Travelling Potentiometer)**, **GCA (Ganged Controlled Array)**, and **MDP (Multi-Dimensional Panner)** where applicable.
* **Warranty:** Provided “As Is” without warranty.
*(See the full license text in the application footer or source code.)*
The Loading Dock of the Mind: Wisdom from a Six-Year-Old
We tend to romanticize the human brain. For centuries, we’ve used the metaphor of the Grand Library. We imagine our minds as pristine, silent halls where information is meticulously filed away, cataloged by the Dewey Decimal System, and retrieved in perfect condition whenever we need a fact.
I was recently explaining this concept to my youngest son—how we store knowledge—when he stopped me. He shook his head, looking unimpressed by my library analogy.
“My mind isn’t like a library,” he said, with the casual certainty only a six-year-old possesses. “It’s more like a donation center drop-off.”
FINAL FLEET INVENTORY
==================================================================
ID | MODEL | TYPE | IP ADDRESS | ADDR | NOTES
——————————————————————————————————————–
1 | 33220A | Function Generator | 44.44.44.33 | Direct | 20 MHz Arbitrary Waveform
2 | N9340B | Spectrum Analyzer | 44.44.44.66 | Direct | Handheld (100 kHz – 3 GHz)
3 | 33210A | Function Generator | 44.44.44.151 | Direct | 10 MHz Arbitrary Waveform
4 | DS1104Z | Oscilloscope | 44.44.44.163 | Direct | 100 MHz, 4 Channel Digital
5 | 34401A | Multimeter (DMM) | 44.44.44.111 | 4 | 6.5 Digit Benchtop Standard
6 | 54641D | Oscilloscope | 44.44.44.111 | 6 | Mixed Signal (2 Ana + 16 Dig)
7 | 34401A | Multimeter (DMM) | 44.44.44.111 | 11 | 6.5 Digit Benchtop Standard
8 | 34401A | Multimeter (DMM) | 44.44.44.111 | 12 | 6.5 Digit Benchtop Standard
9 | 34401A | Multimeter (DMM) | 44.44.44.111 | 13 | 6.5 Digit Benchtop Standard
10 | 6060B | Electronic Load | 44.44.44.111 | 22 | DC Load (300 Watt)
11 | 6060B | Electronic Load | 44.44.44.111 | 23 | DC Load (300 Watt)
12 | 66101A | DC Power Module | 44.44.44.111 | 30,0 | 8V / 16A (128W)
13 | 66102A | DC Power Module | 44.44.44.111 | 30,1 | 20V / 7.5A (150W)
14 | 66102A | DC Power Module | 44.44.44.111 | 30,2 | 20V / 7.5A (150W)
15 | 66103A | DC Power Module | 44.44.44.111 | 30,3 | 35V / 4.5A (150W)
16 | 66104A | DC Power Module | 44.44.44.111 | 30,4 | 60V / 2.5A (150W)
17 | 66104A | DC Power Module | 44.44.44.111 | 30,5 | 60V / 2.5A (150W)
18 | 66104A | DC Power Module | 44.44.44.111 | 30,6 | 60V / 2.5A (150W)
19 | 66104A | DC Power Module | 44.44.44.111 | 30,7 | 60V / 2.5A (150W)
20 | 34401A | Multimeter (DMM) | 44.44.44.222 | 1 | 6.5 Digit Benchtop Standard
21 | 34401A | Multimeter (DMM) | 44.44.44.222 | 2 | 6.5 Digit Benchtop Standard
22 | 34401A | Multimeter (DMM) | 44.44.44.222 | 3 | 6.5 Digit Benchtop Standard
23 | 34401A | Multimeter (DMM) | 44.44.44.222 | 5 | 6.5 Digit Benchtop Standard
24 | Unknown | Unknown | 44.44.44.222 | 10 | Connection Timed Out
25 | 54641D | Oscilloscope | 44.44.44.222 | 16 | Mixed Signal (2 Ana + 16 Dig)
26 | Unknown | Unknown | 44.44.44.222 | 18 | Connection Timed Out
27 | N9340B | Spectrum Analyzer | USB | Direct | Handheld (100 kHz – 3 GHz)
High-Throughput Instrument Control Protocol
In the world of instrument automation (GPIB, VISA, TCP/IP), the primary bottleneck is rarely bandwidth—it is latency. Every command sent to a device initiates a handshake protocol that incurs a time penalty. When managing complex systems with hundreds of data points, these penalties accumulate, resulting in “bus chatter” that freezes the UI and blocks other processes.
The Great Decoupling is Here.
Splinkler is a specialized control connection manager designed specifically for decoupled architectures.
Splinker:
1. Splicing Control: The Need for Speed
2. Linking Feedback: The Need for Awareness
In the realm of scientific instrumentation software, a common pitfall is the creation of monolithic applications. These are systems where the user interface (GUI) is hard-wired to the data logic, which is in turn hard-wired to specific hardware drivers. While this approach is fast to prototype, it creates a brittle system: changing a piece of hardware or moving a button often requires rewriting significant portions of the codebase.
The OPEN-AIR architecture takes a strictly modular approach. By treating the software as a collection of independent components communicating through a message broker, the design prioritizes scalability and hardware agnosticism over direct coupling.
Here is a technical breakdown of why this architecture is a robust design decision.

Role: Great Scott! I am Dr. Emmett L. Brown (your Expert Python Development Assistant). I operate with the precision of a temporal physicist and the manic energy of a genius. Core Objective: We must assist diligently, adhere strictly to the laws of physics (facts), and maintain the structural integrity of the code continuum!
The Clocking Crisis: Why the Cloud is Breaking Broadcast IP
The move from SDI to IP was supposed to grant the broadcast industry ultimate flexibility. However, while ST 2110 and AES67 work flawlessly on localized, “bare metal” ground networks, they hit a wall when crossing into the cloud.
The industry is currently struggling with a “compute failure” during the back-and-forth between Ground-to-Cloud and Cloud-to-Ground. The culprit isn’t a lack of processing power—it’s the rigid reliance on Precision Time Protocol (PTP) in an environment that cannot support it. Continue reading
“Adoption costs time and money, resistance costs nothing”
The High Cost of “Free”: Why Resistance is More Expensive Than Adoption
In the boardrooms of major corporations and the quiet corners of our own minds, there is a pervasive piece of arithmetic that dictates our decisions: Adoption costs time and money; resistance costs nothing. Continue reading
Let’s be honest: Punch Buggy is dead. The Volkswagen Beetle has gone extinct, and the days of waiting hours to spot a single “slug bug” are over. The roads belong to a new king now.
In the transition to IP-based media infrastructures, particularly those built on SMPTE ST 2110 and AES67, the industry faced a critical decision: how to discover devices and manage the complex connections between them. While AES70 (Open Control Architecture) offers a comprehensive object-oriented framework for device control, it has effectively lost the battle for **connection management**.
The sun was beating down on the clay soil of Mike’s backyard, creating an oven-like atmosphere that smelled of sweat and regret. Standing waist-deep in a jagged, rectangular pit were Mike, Dave, and Steve.
They had been digging for six hours. They had progressed roughly two feet.
Dave leaned on his spade, panting heavily, looking at the blister forming on his thumb. He looked up at the rim of the hole, then over at the empty driveway.
“I’m just going to say it again,” Dave wheezed. “Why didn’t we get an excavator?” Continue reading