R / Releases
Release Notes
Changelog · macOS · Windows
Colour fades, default connections with OSC base addresses, a fixture editor and number keys as a controller. Built for live use: full speed in the background, audio inputs that reconnect by themselves and a warning when an OSC target gets too many messages.
New
- Colour fades: a colour output fades between a Min and a Max colour, e.g. Cyan → Red. Existing shows behave as before.
- Default connections: mark an audio input, OSC or DMX output as Default in Settings, and new items use it automatically.
- OSC base address: e.g.
/eos/user/11/sub/, outputs are numbered automatically (/1,/2…). - Fixture editor: create and edit fixtures in Overview → IN.
- Num Patch: the number keys 1 to 9 and 0 work like MIDI pad buttons.
- Audio inputs reconnect by themselves after a device restarts or is unplugged (e.g. Dante Virtual Soundcard, USB interface).
- Full speed in the background: JENS no longer slows down when its window is hidden, and keeps the computer awake while it is open.
- OSC rate per output: Settings → OSC shows messages per second and warns from about 200/s.
- Logs in Settings: see recent entries and save a ZIP for support (no license key or file paths).
- Replace a Playback's audio file by right-click or drag & drop; connections, CUE and loop stay. Drop audio files onto the list to add new Playbacks.
Changed
- Processing Rate 30, 44 or 60 Hz: 120 Hz is gone, a saved 120 Hz becomes 60 Hz.
- Copies count up (Kick 2, Kick 3 …) and the header shows the name of the open show.
- More contrast in Dark and Black, a sharper response curve, centred add buttons.
- Overview: change the connection of several rows at once.
- Get started stays until values actually go out.
- Clearer logs; old logs are kept instead of overwritten.
Fixed
- Pausing a Playback froze levels, spectrum and Note Gates. They now fall silent.
- Gate and Limit both at 0 sent 0.5 in silence.
- “Failed to write settings file” when several settings were saved at once.
- Item colour and the red of Mute disappeared on hover.
- A Playback could stay silent after reopening a show.
A stability update for long live sessions. Shows, latency and everything else work exactly as before.
Fixed
- Memory kept growing in long sessions: after hours of running, JENS could use more and more memory. It now stays the same, however long the show lasts. This affected all earlier versions.
- Output could freeze: in rare cases an internal error stopped OSC and DMX output until JENS was restarted, or JENS quit. JENS now recovers by itself within a second.
- A Crest window set by DMX/MIDI is limited to 10 s.
- Smaller fixes in the patch popup, the playback position and the Monitor tab of the Overview.
New
- Warning when output stops: a red message at the bottom left shows while OSC/DMX output is frozen and disappears as soon as it runs again. If JENS had to restart the processing, a second message tells you why (click to close).
- Log file (JENS → Show Log File): warnings and errors are written to a log file of at most about 10 MB. Please attach it when you report a problem.
- macOS:
~/Library/Logs/com.jens.app/JENS.log - Windows:
%LOCALAPPDATA%\com.jens.app\logs\JENS.log
- macOS:
New note detection, colour outputs, DMX patching with fixtures, multi-selection with an Inspector, a patch Overview, and an interface that works the same everywhere.
New
- Note detection (Pitch/Key): recognises played notes from A0 to C8 with any instrument, no instrument selection needed.
- Mono for single notes (bass, voice, lead): about 16 ms at A4, 32 ms at E2; octave and fifth errors from strong overtones are corrected
- Poly for chords (piano, guitar, keys); Hz and Note Class follow the lowest, strongest or highest note
- Key mode: the musical key from the recognised notes; send key (0 to 23), tonic or major/minor
- Calibrate (Pitch/Key, Chroma) learns tuning (A4), noise floor, steady hum and the played range, and can copy the result to all analyzers on the same input
- Live NOTE display with tuner (cent deviation) or all chord notes
- Colour outputs: any OSC or DMX output can send a colour: RGB/GRB/BGR, RGBW, CMY, HSB or Hue. The colour sets each channel's maximum, the item value is the brightness (e.g. Note Gate C = red light).
- Uses 1 to 4 linked DMX channels (next free block automatically), OSC as one message or split addresses
- Several colour outputs on the same channels or OSC address mix (highest value per component, shown as “Mix”)
- Colour picker with hue strip, Hex/RGB, palette and recent colours; the fixture follows live while dragging
- DMX patching and fixtures
- A new patch starts on a free channel; a hint shows which patch already uses a channel
- Save as Fixture… and Patch Fixture…: patch any number of items of the same type with a fixture, one block of channels each
- Fixtures are stored with the app
- Min/Max per output: every OSC and DMX output has its own range, so two OSC targets can use different ranges.
- Multi-selection: ⌘/Ctrl+click, Shift+click for a range; a bar at the bottom offers On / Off / Delete. ⌫ deletes, ⌘D duplicates.
- Inspector (⌘E): a docked panel that edits all selected items at once: on/off, colour, audio source, outputs per slot and settings. ⌥/Alt+drag changes values relatively, every change is one undo step.
- Overview (⌘P) with four tabs:
- IN: all DMX/MIDI patches, grouped by item like a fixture: move all patches of an item at once, change connection or item
- OUT: every OSC/DMX output with live values; select rows to set format, colour or range for many outputs at once
- Universe: 512-channel map for every DMX input and output
- Monitor: the I/O Monitor
- FFT Size per audio input (Settings → Audio): Auto, 2048 or 4096. Auto keeps the analysis window at about 85 ms at any sample rate.
- Search (⌘F): filter items by name, type, OSC address or DMX channel.
- Right-click menu: Copy / Paste, Reset to Defaults, Set Colour ▸, Select ▸ same type / group / audio source.
- Automatic addresses: + DMX Output picks the next free channel.
- Processing rate 120 Hz.
- Get started: an empty show shows three steps to begin.
Changed
- One consistent interface
- One layout grid for all cards, all controls 28 px, flat look; the same card header with the same buttons on every card type
- Collapsed items are one compact line with outputs, live bar and value
- Colours per protocol (OSC violet); conflicts (duplicate OSC addresses, shared DMX channels) in red
- Every slider value can be typed; one drag is one undo step
- Times in ms everywhere
- The same live spectrum behind every analyzer (Onset, Kick, Centroid, Rolloff, Flux, Pitch/Key, Chroma)
- One preset menu for Tracks and Analyzers, with built-in presets
- One delete question everywhere
- Esc closes only the topmost window or menu; shortcuts only act on what you see.
- Settings open as a full area. Lists are named by direction (Audio Inputs, OSC Outputs, DMX Inputs …); the new Library tab holds presets, fixtures and OSC libraries.
- Chroma uses the recognised notes: overtones no longer count as their own pitch class.
- Note Class, Note Gate, Key and Cent: Attack/Release apply to the Hz output.
- Track spectrum is shown after Gain.
- Deleting an item also removes its DMX/MIDI patches.
- Overview fits the window, full width on large screens.
- Advanced section on Subs and Analyzers for rarely used controls.
- Toasts only for errors.
- Shortcuts show Ctrl on Windows; JENS → Settings… (⌘,) in the app menu.
- Help updated.
Fixed
- Audio timing: samples reached the analysis up to 33 ms late and could be dropped; Onset fired up to three times per hit.
- Unsaved changes: closing Settings lost the unsaved mark, so quitting didn't ask; New and Open didn't ask either.
- One Esc closed several things at once (e.g. a dropdown and the whole Overview).
- DMX/MIDI patches on Pitch Range/Confidence and Chroma parameters had no effect.
- Source gain briefly fell back to 1.
- Right-click on CUE always set the cue to 0:00.
- The on/off icon didn't follow DMX/MIDI.
- ⌘A and Delete also caught cards hidden by the search; deleted items stayed selected.
- The app got slower over a long session.
- Errors showed two toasts, some ending in “undefined”.
- Default names could repeat.
- Colour picker clipped on collapsed cards; form fields used Arial instead of the UI font; stray scrollbars in Settings.
- The list jumped when changing a value on a card.
Opening older shows
- Shows from 1.3.1 and earlier open as before; each output keeps its previous range.
- Key analyzers from before 1.3.0 come back as Pitch/Key in Key mode.
- At 44.1/48 kHz the analysis is unchanged; inputs at 88.2/96 kHz now use the same 85 ms window as 48 kHz.
New
- DMX Output (sACN / Art-Net): send DMX from JENS. Create outputs under Settings → DMX → DMX Connections (Output).
- sACN (default): universe, priority, source name, multicast or unicast
- Art-Net: net / subnet / universe, broadcast or unicast target
- Network adapter and send rate per output; power button to start/stop sending
- Stream Terminated is sent when an output stops or JENS quits, so consoles release it immediately
- DMX outputs on Tracks, Subs, Analyzers and Math items: channel, 8/16-bit, live value per output, conflict dot when another item uses the same channel (highest value wins, HTP).
- Math items (+ Math): combine values of Tracks, Subs, Analyzers, other Math items and fixed numbers with
+ − × ÷ Min Max, calculated top to bottom. Limit clips the result (CLIP indicator), Invert mirrors it within the limit range. Result goes to OSC and DMX like any other item. Patchable via DMX/MIDI. - I/O Monitor: DMX OUT filter shows what JENS sends.
- Settings → DMX → Behavior: When Muted or Item Disabled: Hold · Send Min (blackout) · Release (on Mute all DMX outputs stop sending).
Changed
- Unified OUTPUTS section for Tracks, Subs, Analyzers and Math: OSC group and DMX group, each with its own Min/Max, one row per output with the value actually sent, + OSC Output / + DMX Output at the bottom.
- All OSC outputs are equal: the first one can be removed too (items can be DMX-only)
- OSC Min/Max now applies to all OSC outputs of an item (additional outputs previously always sent 0 to 1)
- The OUTPUT bar shows the normalized value (0 to 1); sent values are shown per output row
- Subs: OUTPUTS moved below the sliders (full width); Tracks: Curve row is curve-only
- Shows from 1.3.0 and earlier are converted automatically
- Mute also applies to DMX output (follows Settings → DMX → Behavior).
- Right-click menu: Set OSC Output ▸ for all item types, new Set DMX Output ▸, item counts include Math items.
- Undo now also restores groups; the delete dialog states what can be undone (playbacks can't).
- Header buttons shortened: + Sub · + Track · + Analyzer · + Math.
- Processing runs on a fixed clock; UI meters are updated at most ~45×/s for smooth bars at 60 Hz (OSC/DMX still run at full rate).
- Help updated (Outputs, DMX Output, Math, context menu, shortcuts).
Fixed
- DMX input now shares its ports (sACN 5568 / Art-Net 6454) with other software on the same computer, e.g. TouchDesigner or a console can receive JENS' DMX output while JENS receives DMX (macOS).
- Right-click on a playback's CUE button no longer also opens the selection menu.
New
- Kick analyzer: dedicated bass-drum detector working directly on the audio signal (band-pass + fast/slow envelope). Reacts faster than Onset, ignores sustained bass notes. Frequency range, Sensitivity, Decay and presets: 808 Sub · House Kick · Acoustic.
- Pitch/Key: Note Gate: select one or more notes (C … B, any octave); the analyzer outputs 1 while one of them is played and 0 otherwise.
- Hold bridges short detection dropouts (consonants, decay, vibrato)
- Attack / Release for soft fades instead of hard switching
- Output box lights up while the gate is open
Changed
- Pitch analyzer renamed to Pitch/Key. OSC address stays
/analyzer/pitch. - New Mode selector at the top of Pitch/Key: Hz · Note Class · Note Gate (formerly "Output").
- Voice presets (Soprano/Alto/Tenor/Bass) removed: set the range directly in Hz.
- New Pitch/Key defaults: Range 300 to 20000 Hz, Harmonics 4, Confidence 0.25, Hold 120 ms.
- Onset no longer triggers on hits outside the selected frequency range (e.g. snares when only the bass range is selected).
- Performance: multiple Onset analyzers on the same input share one spectral analysis; less copying in the audio loop; faster LUFS calculation.
- Help updated: new Kick and Pitch/Key sections.
Removed
- Key analyzer. Existing Key analyzers are removed when an older show is loaded.
Fixed
- Level meter stayed empty for Pitch/Key, Chroma, Rolloff, Flatness and Shape.
- Kick and Note Gate parameters can now be patched via DMX/MIDI.
- UI update with new Group functions.
- Audio Playback implementation and a new Source Gain stage on Playbacks and Audio Inputs.
- New analyzers for spectral and pitch detection.
- Performance optimisations for multi-analyzer sessions.
Patching
- Active toggle on Tracks, Subs and Analyzers is now patchable.
- MIDI Note On/Off as an alternative to CC, with a release-edge Toggle mode and Normal / Inverted direction.
- Shared per-button toggle state, so multiple mappings on the same pad note stay in lockstep.
- A patched toggle takes the source colour (orange DMX / cyan MIDI) and is locked from manual clicks.
- FFT and Curve graphics now react live to patched DSP parameters.
- "Assign" stays in patch mode; "Update" and "Remove" exit it.
Subs
- Attack / Release smoothing for time-shaped output.
- Live Output bar in the card (same as on Tracks).
MIDI
- Optional Output Device per MIDI Connection, which drives LED feedback on pads (Note On/Off on Ch 1) for both Toggle and Momentary patches.
OSC
- New Settings → Behavior → Allow Duplicate OSC Addresses.
- On the enable transition the dedup cache clears, so the freshly activated source sends its current value once.
UI
- Flat theme: sharp edges, glossy and highlight effects removed.
- Patch popover uses segmented controls in place of checkboxes.
- Footer now has a Mute button (red when active) and a Monitor button.
- New I/O Monitor modal with category filters (purple OSC OUT / orange DMX IN / cyan MIDI IN), a Freeze toggle for diagnostics, and OSC entries that show host:port + address.
Known Issues
- Monitor Output still has a known bug and may not behave correctly in all configurations — a fix is in progress and will ship in a follow-up release.
- Audio devices in connections are now identified by name instead of by index alone. Previously, the wrong device could be selected after plugging or unplugging a USB interface, after a reboot or driver update, or when enabling an Aggregate Device on macOS. Existing connections now reliably find their device again, even after the system configuration has changed.
- Fixed a crash in the audio loop when an OSC connection failed to bind to its port (for example because the address was already in use). The audio thread now handles bind failures gracefully instead of panicking.
- Settings and show files are now saved atomically — writes go to a temporary file and are renamed into place, so an interrupted save can no longer leave a corrupted file behind.
- Audio Monitoring now correctly resamples when the source input and the output device run at different sample rates. Previously, mismatched rates could cause wrong pitch or glitches in the monitored signal.
- Multiple DMX connections can now share the same universe. Previously, a second connection on the same universe silenced the first one, and deleting one could also unroute the other. Incoming sACN/Art-Net packets now reach every connection listening on that universe.
- Changing the network adapter on an existing OSC connection now takes effect immediately. Previously, the underlying socket was cached and only refreshed when the connection was deleted, so JENS kept sending from the old interface until the app was restarted.
- Eliminated audible clicks when adjusting non-filter parameters on a Track. The DSP filters were being rebuilt (and their state reset) on every parameter change, including Gain, Limiter, Smoothing, and Response Curve. Filters are now only rebuilt when Low Cut, High Cut, or the sample rate actually changes.
- Fixed a slow memory leak that built up when tracks and connections were created and deleted repeatedly. Several internal caches (FFT history, last audio buffers, input-RMS averages, last sent OSC values, stereo buffers) were not being released on deletion. All associated buffers are now freed when a track or connection is removed.
- MIDI input data is now cleared when a MIDI connection is deleted. Previously, the stored CC values of removed connections lingered in memory indefinitely. DMX connections were already cleaned up correctly.
- Added five new Audio Analyzers: Onset (drum/transient detection with Kick/Snare/Hi-Hat presets), Stereo (Width/Balance/Side), Centroid (spectral brightness), Crest (peak/RMS dynamics), and LUFS (ITU-R BS.1770-4 K-weighted loudness).
- Each Track now starts with a +3 dB/Oct perceptual loudness boost (6-stage high-shelf cascade), so RMS readings match perceived loudness much better.
- Auto-Gain per Track: enable the new AUTO pill next to the Gain slider to keep levels on target across quiet and loud songs.
- Tracks, Subs and Analyzers can now send the same value to multiple OSC destinations simultaneously via "+ Add OSC Output".
- Audio Connections can now be assigned explicit Left/Right channels (Settings → Audio → "Stereo L/R"), required by the Stereo Analyzer.
- FFT range extended down to 20 Hz, window doubled to 4096 samples, and a sliding FFT history per connection — sub-bass is now visible and analyzable.
- Tracks/Subs with a chosen color now get a subtle background tint; Analyzers get a tint of their type color.
- OSC rows have a consistent clear/library button look across primary and additional outputs.
- Fixed a UI bug where audio connections would not load correctly.
- Added OSC Library feature. Libraries are available on the website, and users can create their own using JSON.
- JENS can now use audio output devices as a "Monitoring". Configure this in Settings — see the built-in Help page for details.
- JENS now prompts you to save your show file before closing.
- Installer now includes WebView2 to support offline installation.
- First public release of JENS.