Repository navigation
Releases
triib 1.3.0
Host entities on Linux keep the network's time with gptpd, an 802.1AS
daemon whose packages come with triib's, in place of linuxptp's ptp4l:
their links and streams ride through grandmaster changes, restarts and
link bounces, and this computer can be the grandmaster. triib changes
the format of a running stream where the entity lets it, warns when a
Mac drops audio on its own clock, and names bridges' makers from the
IEEE's registries on every system.
Programs sharing triib-endpointd, such as plaa, keep their streams as it
stops or starts again, host entities' streams keep their frames in
order, and host entities send and analyze test tones and refuse the
format changes Milan 1.3 forbids while bound or streaming.
Controller
- A stream input that will not take a new format while it runs, or a
stream output whose entity can stop it, is stopped, set and started
again, instead of asking for it to be disconnected first;
triib-cli formatdoes the same. Milan entities, triib's own host
entities among them, take no new format on an input while it is bound
or on an output while it streams, stopped or not, so those still ask. - A Mac's AVB entity receiving a stream on its own clock, as macOS
starts it on Mac System Clock, drops audio from what it receives. It
now raises an alarm, with a button in its Diagnostics tab to follow
the stream's clock instead, and agents find it inlist_problems.
Host entities (Linux)
- Host entities keep the network's time with gptpd, an 802.1AS daemon in
a package of its own, where triib-endpointd ran linuxptp's ptp4l.
gptpd never steps or slews the card's clock, which stamps the peer
delay exchanges the neighbor measures the link with, so those stay
clean through the first lock, grandmaster changes, restarts and link
bounces, where ptp4l could slew the clock for seconds faster than a
bridge accepts; and streams follow a new grandmaster within a Sync or
two, where they held the old time through ptp4l's slew and then
jumped. gptpd marks its messages PTP 2.0 on every distribution, as a
PreSonus AVB switch needs. triib-endpointd startsgptpd@<interface>
where none answers, and triib says when gptpd is not installed, or will
not start because another PTP daemon, such as a ptp4l run by hand,
holds the interface. - This computer is grandmaster capable, with priority1 248 as Milan
asks, where its entities never took the grandmaster's place.
priority1in gptpd's/etc/gptpd/<interface>.confsets it: 255 for
never, 246 to be preferred. Behind a switch taking no part in AVB, the
network map shows this computer as the grandmaster where it is one,
rather than out of sync. - gptpd decides when to fall back to AVB Lite and when to go back, and
the entities follow it, where triib-endpointd weighed it and moved
ptp4l between two units of triib's; a program sharing the port, such
as plaa, sees the same decision. - For testing streams with other devices, an output with
audio = "tones"sends a tone of its own on each channel, 500 Hz and
125 Hz more for each channel after, and an input with
audio = "analyze"checks what it receives against the tones it
carries: the log says, for each time it listens, its samples and
each channel's clicks, gaps, tone and peak, when the first clicks
and gaps came, the clock it recovered and its stream's counters. - A talker that stops for want of listeners logs what it sent.
- A host entity refuses a new stream format on an input while it is
bound, and a new format or max transit time on an output while it
streams, as Milan 1.3 asks (5.4.2.7, 5.4.2.30), where it took them and
started the stream again. - triib-endpointd tells the programs sharing its MSRP participant, such
as plaa, that it leaves as it stops or starts again, and keeps what
they declared registered on the bridge for them to take over at once,
where they lost their streams for 15 s; as it starts, they hand it
back. - triib warns of a program sharing triib-endpointd that cannot take its
streams over, such as an older plaa, in the Entities view and under
Settings' entities file, where a change would start triib-endpointd
again. - Starting, triib-endpointd has the bridge declare its streams again at
once, rather than hearing of them at the bridge's next LeaveAll, up to
10 s later.
Fixed
- A host entity takes a stream format a controller adapts from one it
offers as up to so many channels, such as AM824 at its exact
channels, as Hive does on connecting; it refused all but the formats
it lists. - A host entity's stream at four times its audio device's rate, such
as 192 kHz into a 48 kHz virtual device, no longer stops its listener
after a few seconds. - A host entity's output given a format that takes more bandwidth goes
on as another of four stream IDs, which a bridge holds nothing of,
where a MOTU switch went on policing the stream to its old frame size
and dropped a third of its frames; listeners take the new ID as they
connect. Where that ID was given up within 32 s, and for a talker of a
program sharing the port such as plaa, the new format is declared
once the bridge has let the old reservation go, two of its LeaveAlls
later. - triib-endpointd's LeaveAll goes for every MSRP attribute type, as a
switch's does, where it went only for those it declared, so that a
switch declared its talkers again only at its own LeaveAll. triib-link@sends all of the AVB interface's frames on its first
transmit queue: a card with several, such as the Intel I210, spread a
stream's frames over them, and some left out of order.- A host entity's talker sends with priority 3, so the default fq_codel
queue keeps a stream's frames in one flow, where each frame could take
a flow of its own and leave out of order when the queue backed up, as
when a talker catches up after waking late. - A host entity's talker starting its media clock again twice with no
frame sent between, as after a late send and then a jump of gPTP time,
changes the mr bit once, where the two changes cancelled and a
listener saw the stream's time jump with no media reset. - A host entity withdrawing a declaration moments after making it sends
its Leave, so a quick connect and disconnect no longer leaves a talker
counting a listener that has gone. - A host entity's input keeps its talker when a bridge declares the
talker failed and then advertised again without withdrawing the
advertisement, as a PreSonus switch does while the talker's port comes
up, where the input lost the talker for good once the failure cleared. - triib-endpointd answers a bridge's LeaveAll that carries the bridge's
own declaration of VLAN 2 or an SR class domain with its own at once,
where the bridge's registration of triib-endpointd's lapsed at each of
those LeaveAlls until triib-endpointd's next one. - The Diagnostics tab's egress bar shows its empty track when an
interface sends nothing, where it was drawn full, and would have been
drawn empty at a full link. - The network map names a bridge's maker on macOS and Windows too, from
the IEEE's registries built into triib, where it read the list a
Linux system keeps. A bridge whose MAC address is in an MA-M, MA-S or
IAB block is named by the company that block went to, where it showed
as "IEEE Registration Authority".
Packages
- The packages recommend gptpd, where they recommended linuxptp, and the
PKGBUILD depends on it; gptpd's own packages come with triib's
releases. The ptp4l units, their configurations and their polkit rule
are gone, and installing stops any ptp4l unit an older triib started.
Upgrading a Debian package removes the configurations in/etc/triib,
keeping a changed one as.dpkg-bak, where dpkg would have kept them
for good. A polkit rule still lets the person at the computer runtriib-link@
andtriib-link-reset@. - The AppStream data dates 1.2.0 October 24, the day it was released.
- The Windows installer's last page says this computer cannot be an AVB
endpoint on Windows, no longer "yet": Windows gives no hardware time
stamps for gPTP frames sent from user space, on the Intel I210 too.
triib 1.2.0
The network map draws the traffic on each link and places every device
in its clock domain, those running AVB Lite behind the non-AVB switch in
front of them, and the connection matrix keeps talkers and listeners in
different domains from connecting. triib follows entities that send no
notifications, shows entities' logos and their vendors', and on a Mac
has a menu bar. On Linux only a small helper holds CAP_NET_RAW, and
triib-endpointd shares its MSRP participant with other programs such as
plaa, hears other computers' AVB Lite declarations on the Intel I210 and
offers the same stream formats as plaa. The app ID is now run.triib.
The entity list and the connection matrix filter from menus and carry
their titles, agents can diagnose streams that do not play, and triib
carries on by itself once raw Ethernet is granted.
Controller
- On a Mac, the menu bar has triib's menus: Settings and Quit in the
triib menu, Presets and Close Window in File, Cut, Copy, Paste and
Select All in Edit, the three views, the log and the inspector in
View, and Window and Help menus, in the interface's language. - The network map draws the traffic on each link: a multicast stream to
several listeners takes one wire as far as their paths run together
and branches where they part, all in its color, while a unicast stream,
as AVB Lite can send, has a wire to each listener from its talker. A
device counts each stream it sends once however many listeners it
has, and a bridge each stream passing through. Clicking a shared wire
brings the whole stream forward with all its listeners. - A stream its talker says it sends with no known listener bound to it
still shows, on a wire from the talker to its bridge. - The network map shows every entity and bridge it hears in its clock
domain, each labelled with its number: a gPTP domain from its
grandmaster down through the AVB bridges, or a PTP domain whose devices
run AVB Lite, those that found no AVB bridge and fell back to it hanging
under a dashed card for the non-AVB switch in front of them, with their
streams crossing it; their details say why they run AVB Lite. A device
that shares its domain with no other, as an AVB device alone on a
non-AVB switch, has an area of its own, and only those whose domain is
not known sit apart. The map is the same whether this computer's
entities run gPTP, AVB Lite or nothing, its choices always Sync, Audio
and CRF. - The connection matrix keeps talkers and listeners in different clock
domains, as the network map shows them, from connecting: their cell
says so and does nothing, and hiding what cannot connect hides them. - Where this computer runs none of its own entities, the network map and
triib-cli networktell what it is plugged into from the gPTP
messages on its link: an AVB bridge's port, or a switch taking no part
in AVB, which lets the endpoints' own peer delay requests through, AVB
Lite's declaring themselves and others known by their clocks. Behind
one it hangs under the card for the devices running AVB Lite there,
rather than taking an endpoint for its bridge. - Entities that send no notifications, as some ESP32 endpoints do not,
stay current as other controllers change them: triib reads each
entity's names, stream formats, sampling rates and clock sources again
in turn, asks every second how the stream the inspector's Streams tab
shows stands, and learns at once from the responses entities send
another controller on this computer. An entity that sends triib a
notification is asked nothing again until it goes or restarts. - triib reads entities' logos, their own and their vendors', through
Address Access: the entity list can show each in a column of its own,
and the inspector's Entity tab shows both. - The connection matrix and the entity list have their title at the
start of the row above them, as the network map has. Each view's title
shows wherever the row has room for it beside the rest, rather than
only on windows over 1040 points wide: with the inspector open, say. - Where raw Ethernet needs a permission a command grants, as
setcap
on the helper on Linux, triib tries again every 2 s and carries on as
soon as the command has run, rather than waiting for a restart, and
says so under the command. - Opening Settings or Presets, or an agent's prompt, leaves the window
under it as it was: the inspector no longer slides in again, nor do
the lists scroll back. - The entity list has a filter menu, as the interface picker has, in
place of the button that showed only this computer's entities. It
hides entities on other devices, on Linux and on a Mac; controllers;
and entities outside this computer's clock domain, while this
computer is in sync in one. Beside it, as beside the matrix's
filters, is how many entities they hide. - The connection matrix's option to hide what cannot connect is a filter
menu, as the entity list's, which also hides entities running AVB
Lite, not those only able to, and wireless entities, with all their
streams. How many streams the filters hide shows while they hide any. - Agents can diagnose streams that do not play:
list_problemslists
what triib finds wrong, errors first, from failed reservations and
formats that differ to devices out of sync and counters gone wrong;
stream_diagnosticsasks a device afresh how one stream stands, and
withsample_secondswhat its counters did over that time; and
clock_treegives the gPTP tree as the network view shows it. - Entity and vendor images in the entity list and the inspector are
smooth: each is shrunk once to the pixels it shows at, averaging what
each covers, rather than sampled jagged as it is drawn. - Sheets and floating bars slide by whole pixels, so their icons and
labels no longer hop against them as they settle.
Linux
- triib, triib-cli and triib-endpointd no longer hold
CAP_NET_RAW:
/usr/lib/triib/triib-netraw, the one program the packages grant it,
opens their raw sockets and passes them over. The desktop's portals
answer triib directly again, and debuggers and crash reports see it as
any other program. - triib-endpointd shares its MSRP participant with other programs on
this computer, such as plaa sending what it plays, which ask it on a
socket in the user's runtime folder to declare their talkers and to
listen to streams for them, and hear from it as their listeners and
the talkers of the streams they listen to come and go, this computer's
entities among them, which take those streams as they take their own;
it withdraws a program's declarations when the program goes. It says
hello to each program with its version and features, and answers each
request to declare a talker, so a program can tell what it can do and
why it refused. In AVB Lite it declares for the programs that run it
too, by CVU SRP in their entities' names, admitting their listeners
with its own entities' and telling them where to send each copy. - Two of triib-endpointd's inputs on one stream no longer withdraw each
other's listener declaration as one of them stops: a stream has one,
for all its listeners on this computer, in AVB Lite too. - This computer's entities carry triib's app icon as their logo and
Scramble Tools' as their vendor's, PNG memory objects that controllers
such as Hive read through Address Access. - triib-endpointd rides out a fault of ptp4l's own, as a transmit time
stamp coming late while the computer is busy, rather than falling
back to AVB Lite as though no gPTP peer answered. - triib-endpointd keeps its entities off AVB Lite on an interface
without a PTP hardware clock, which AVB Lite needs: it no longer falls
back to it there, says it can run it, or takes the link down to turn
EEE and PAUSE off for it. - triib starts triib-endpointd again whenever it stops while triib runs
and this computer's entities are listed, as after a crash, not only
as triib opens, waiting longer after each start that does not last;
the log of the run before is kept asendpointd.log.1. A daemon triib
started no longer lingers as a zombie once it stops, which triib took
for one still running. - An input of triib-endpointd's that stops listening while locked to its
stream counts an unlock, so a controller reading its counters no
longer takes it for still receiving. - This computer's entities answer for their AVB interface's counters:
how often its link came up and went down, and how often its gPTP
grandmaster changed, as Milan has a controller ask. - In AVB Lite, triib-endpointd hears other computers' CVU SRP on an
interface that drops frames of unregistered VLANs in hardware, as the
Intel I210 does: it holds the interface promiscuous while AVB Lite
runs, where before it heard them only while one of its inputs
listened. - In AVB Lite, a talker of triib-endpointd's serves up to 5 listeners
unicast unlessunicast_fanoutsays otherwise, as the profile now
recommends, where before it served 2. - triib-endpointd's streams offer the same formats as plaa's, from avb's
shared set: each of a stream's sizes at every rate where it fits a
frame, as the Extended Audio profile asks, where before a size went
only at the rates its stream's own channels fit. A stream of many
channels now offers 96 and 192 kHz at the smaller sizes, and a new
rate moves a stream too large for it to the most channels of its
packing that fit. AM824 is declared as MOTU's 8D declares it, of its
channels or fewer; a stream saved in the old AM824 comes back in the
new one. - An entity added to this computer is listed at once, greyed, its State
saying what it waits on: triib-endpointd starting, the interface being
set up for AVB, its link. The bar ab...
triib 1.1.1
A close button in the toolbar under compositors that draw no title bar,
and fixes for computers that 1.1.0 did not start on or listed too many
interfaces on: a Windows without the Visual C++ runtime, Linux without a
Vulkan driver, and a Mac's Thunderbolt Bridge and USB-C interfaces. Every
package is now tested in clean systems before each release.
Controller
- On Linux, under a compositor that draws no title bar, Hyprland, niri,
river or dwl, the toolbar ends with a button that closes the window.
SCRAMBLE_UI_TITLE_BARS=0shows it elsewhere, such as on sway set up
without title bars, andSCRAMBLE_UI_TITLE_BARS=1hides it.
Fixed
- On Windows, triib and triib-cli carry the C runtime they were built
with, so they start on a Windows without the Visual C++ runtime, such
as a fresh install, where 1.1.0 could not. - On Linux without a Vulkan driver, triib draws with its software
renderer rather than OpenGL, which made it quit as it opened under
some compositors, such as one without a GPU on Debian 13 or Ubuntu
26.04.WGPU_BACKEND=glstill asks for OpenGL. - On a Mac, the interfaces without an Ethernet port of their own,
Thunderbolt Bridge's and those of USB-C ports being USB network
devices, count as virtual, so the interface picker leaves them out
with the others; an M4 Mac mini listed six of them.
Packages
- Every package is installed, upgraded from the last release, run and
removed in clean systems before each release: fresh Debian, Ubuntu,
Fedora and Arch containers, a Windows container and GitHub's Windows
and macOS runners.
triib 1.1.0
The Streams tab with peak meters, max transit times, media clock streams
on host entities with one chosen as their clock source, and host talkers
and listeners folded into host entities. On a Mac, the Mac's own AVB
entity as a host entity, with its configurations, and Listen controls
for what it receives and sends. The macOS app and installer are signed
with Scramble Tools' Developer ID and notarized.
Controller
- The Streams tab lists an entity's streams, outputs then inputs, five
before it scrolls, and shows the picked one's details under the list:
its name, format, state, stream ID, destination and VLAN, and for this
computer's entities its audio and channels. The Entity tab no longer
shows streams. - Each stream in the Streams tab's list has a peak meter of its first two
channels before its format, green, yellow from -12 dBFS and red from
-6 dBFS, wherever this computer carries its audio: its own entities'
streams, and other entities' streams connected to them.
triib-endpointd measures its entities' streams and writes them 20
times a second while the app shows them. On a Mac, a helper,
triib --meters, measures the Mac's own entity's from its Core Audio
device: what it receives from the device's input, what apps send it
through a Core Audio tap. The list's rows line up with the inspector's
headings and fields, and their formats with each other. - An output's max transit time is picked in its details, from 0.25 ms to
50 ms, on any entity that answers GET_MAX_TRANSIT_TIME, Milan or not,
the Mac's AVB entity among them. A running stream's refusal says to
disconnect it first. - While a media clock stream is picked, the Streams tab leaves out the
entity's channel mappings, which are its audio streams'. - The matrix remembers which entities are folded, across restarts.
- An entity with several configurations has a configuration picker,
each by its own name, read from its own strings, or by what it holds
where names are missing or repeat: "16 in, 16 out, 8 ch streams".
triib-cli configurationchanges it, andtriib-cli describelists
them. - A stream output's details list its listeners where its talker keeps
them, as talkers outside Milan do, those not online marked, each with
a button that disconnects it;triib-cli streamslists them too. - On a Mac, the Mac's own entity has Listen controls: a channel or a
pair of what it receives, or of what apps send to one of its output
streams, heard through a Core Audio tap (macOS 14.2 and later), played
through an output picked, with a gain.
The audio runs in a helper,triib --monitor, started again when it
ends or hangs, which waits for a device that is not there, as the
Mac's is not while none of its streams is connected; the choice is
kept. Agents set it through theset_audio_monitor,audio_monitor
andlist_audio_devicestools. macOS asks once for the microphone,
to hear what the Mac receives, and for audio recording, to hear what
it sends. Before macOS 14.2, which has no taps, the controls offer
what the Mac receives alone and say why. - On a Mac, the Mac's own AVB entity shows as a host entity, with its
Core Audio device, which macOS makes only while one of its streams is
connected, and a button that opens Audio MIDI Setup; where AVB is
off, the Entities view says where to turn it on. - Controllers that do not advertise, as the Mac's own does not, are
listed from the commands triib hears them send: their connection
commands, which reach every station, and their commands to this
computer's entities. Each is named for the computer it runs on, as
"Controller on Mac mini", and stays listed for 5 minutes after its
last command. - The network view leaves out controllers, which take no part in the
clock or the streams, and shows the local host as its host entities
where there is one, rather than as This computer beside them. - Controllers have an icon of their own, a traffic light, rather than
the host's. triib's controller, which has no model to read, is
named for the computer it runs on: "triib on Mac mini" after an entity
from the same address, "triib on this computer", else "triib
controller". - Settings has a Storage tab, as prev has: the presets folder and the
entities file, each typed or chosen with Choose…, and checked before
it is taken. - The interface picker's filter opens a menu that hides virtual
interfaces, as before by default, wireless interfaces, and interfaces
without a PTP hardware clock, each checked on its own. - An entity advertising another model is read again in place: the list
and the inspector keep showing what was read before until the new
read is done. - A stream that offers CRF formats counts as a media clock stream
whatever it sends, as the Mac's media clock outputs sending one
channel of AAF do. triib-cli streamsprints each input's counters, and its probing
state and last ACMP answer where Milan's stream info gives them.- The new app icon.
- The entity list's column and the inspector's field for the gPTP
grandmaster an entity advertises say Grandmaster, rather than BTC, as
doestriib-cli discover; a column kept asbtcin the settings
loads as it. - The inspector is titled by the picked entity's name, cut short to
leave the close button its room. - In the inspector, a value short enough to sit beside its label does:
a rate, a channel count, a format, or a picker whose widest choice
fits. Longer ones stay under their labels. - The entity list's rows are 40 pixels tall rather than 56, its Name
heading lines up with the names rather than their icons, and the line
after the names ends with the last row. - Each view has the same 16 pixel margin at the window's sides, below
the toolbar and above the status bar; the matrix's sides were 24. - On a narrow window, the matrix's Hide what cannot connect shrinks to
its icon, its label a tooltip, and the network view's "Showing …
streams" goes below the map, so neither moves the view down. - Every scroll bar is as thin as the matrix's; the stream list's was
thicker. - The Streams tab marks an output with an arrow out of a circle,
pointing right, and an input with one into a circle, pointing left. - Settings and Presets open at once, rather than growing in.
- On macOS, the toolbar's color runs up behind the title bar, which is
transparent, rather than the system's tinted bar with a seam under
it; a double-click there zooms or minimizes as the system's setting
says.
Host entities (Linux)
- Installing triib is all a host entity takes on an interface with a
PTP hardware clock: where no ptp4l answers for the interface, the
daemon starts triib'striib-ptp4l-gptp@<interface>unit itself,
which the polkit rule lets it, rather than waiting for one to be
enabled by hand. A ptp4l run another way on the interface stays as it
is, and where linuxptp is missing the daemon says to install it. - triib opens with the host entities listed for its interface back on
the network, starting the daemon, as after a restart; it started only
as one was added or a preset recalled. - A host entity whose ptp4l clock is more than a millisecond off the
grandmaster's reports itself not asCapable, so controllers show it out
of sync, and the daemon says how far off it is; it reported asCapable
however far off. Out of sync for 10 s, as when a driver reset the
hardware clock, triib's own ptp4l unit starts again, ptp4l stepping
the clock as it starts. - A stream's report says how many frames its socket dropped, its thread
behind, telling frames lost here from frames lost on the way, and the
socket holds about a tenth of a second of a stream rather than a few
hundredths, where the system allows. - Every audio stream takes 2 and 8 channels as well as its own count, as
the AVB community's Basic Audio profile has every talker and listener
do, and the profile's 16 and 32 below a larger stream's own, at its
own rates, so a stereo talker and an 8-channel input meet once a
controller picks the format both take. A talker sends its audio's
channels as the stream's first, with silence in the rest; a listener
plays the stream's channels from the first, with silence where the
stream has fewer. A format chosen so is kept. The entities' model IDs
change, so controllers read them again once. - An output's SR class follows its format: class B's own formats, a frame
each 250 µs, send it in class B, and the others in class A, so a
controller picks the class by picking the format, and a class B stream
is never Milan's frames sent two to an interval. Its max transit time
moves from one class's default to the other's, where a controller set
none.class = "B"inentities.tomlstarts an output in class B's
formats. Every stream's descriptor says which classes its formats go
in, and an entity with audio streams advertises class B support. - A change of sampling rate keeps a stream in its SR class: class B's own
format moves to class B's own at the new rate, not to Milan's. - Talkers and listeners are folded into entities of any number of
streams, as one of one stream does what they did. The Entities view's
one button, Add entity, adds an entity with a stream each way, and its
Streams tab adds and removes streams. triib 1.0's talker and listener
entries, inentities.tomland in presets, read as entities of their
one stream, named as the entity is, with their audio, format, binding,
transit time and class. Their entity IDs stay; their model IDs change,
so controllers read them again once. - One Add stream button, whose menu adds an audio input or output, or a
media clock input or output. - Media clock streams: CRF in Milan's format, 48 kHz with a ti...
triib 1.0.0
AVB Wireless, devices of the computer's own with several streams each
way, AI agents through MCP, and on a Mac the Mac's own AVB entity.
Controller
- AVB Wireless: triib asks each entity's AVB interfaces for their
wireless status and shows it in the inspector, the entity list and the
network map: the link, the time mode, and on an access point its
stations and the frames a second it can deliver, which decide whether
it admits Class A (12000 or more). Wi-Fi hops are marked on the map. - A matrix cell whose input must change its format first opens a menu of
the formats both ends take; picking one changes them and connects. - The entity list keeps its headings and the names in view while the
rest of it scrolls, and lines up plain media clock values with the
menus. - On a Mac, triib reads and controls the Mac's own AVB entity, through
Apple's AudioVideoBridging framework, as macOS never hands that entity
what a program writes to BPF. - AI agents such as Claude Code can see and change the network through
triib --mcp, a Model Context Protocol server: read the entities,
their streams, formats, clocks and connections, connect and
disconnect, change formats, sampling rates, clock sources and names,
and identify. triib asks before each new agent, and Settings turns
outside control off. - Shift turns rediscover into clear and rescan.
triib-cli wirelessandwireless-configread AVB Wireless status
and set whether an access point admits Class A;triib-cli network
marks Wi-Fi hops.
This computer's talkers and listeners (Linux)
- Devices: one entity with any number of streams each way, each set up
on its own, with its own virtual audio device in PipeWire unless it
uses a sound card. Its outputs send from one thread and its inputs
take their streams on another. - Talkers can send in SR class B, with class B's own formats.
- Talkers, listeners and devices each have their own icon.
- MRP runs once for the port, for all the endpoints, and the port
declares both SR classes' domains, so a bridge passes class B
streams as well.
Packages
- The Linux packages are built on Ubuntu 24.04, as PipeWire's Rust
bindings need its headers, so they need glibc 2.39 or newer: Ubuntu
24.04, Debian 13, Fedora 40 and later. Ubuntu 22.04 and Debian 12 are
no longer covered.
Fixed
- Connections to a class B talker say so, and a class B talker
advertises class B support. - An output says it is sending only while a listener takes its stream.
- Entities sharing a clock each show in the map, and a Wi-Fi station
without a gPTP path shows under its access point. - Wireless status queries left unanswered are asked again.
- This computer's entities offer only their internal clock.
triib-clisays when a listener's binding is not known.
triib 0.9.0
The first release: an ATDECC (IEEE 1722.1) controller with Milan and AVB
Lite support for Linux, Windows and macOS, and on Linux talkers and
listeners of the computer's own.
Controller
- Discovers the ATDECC entities on the interface you pick, reads each
entity model, its names, streams, clocks and Milan support, and keeps
it, so a device seen before shows in full at once. - A connection matrix, talker outputs across and listener inputs down,
each cell showing whether the stream flows, waits or has failed, and
whether the two formats can meet. - A map of the network from each entity's gPTP path: bridges, devices,
every stream as its own wire, failed reservations where they stop,
and the clock tree from the grandmaster with each device in sync or
not. - Renames entities, changes stream formats, sampling rates and clock
sources, maps channels to streams, sets controls such as gain and
mute, and makes a device identify itself. - Presets of each entity's clock sources, sampling rates, stream
formats, controls and connections, recalled by changing only what
differs. - A log of every ATDECC frame sent and heard, decoded in plain words,
with the frames that break the rules marked and the reason given. - AVB Lite: each device's mode and why, its PTP offset, what its streams
take of each link, and the alarms the profile calls for. triib-clidoes the same from scripts.
This computer's talkers and listeners (Linux)
triib-endpointdruns Milan talkers and listeners streaming AAF or
AM824 at 48, 96 or 192 kHz to and from the computer's audio devices,
on a wired interface with a PTP hardware clock and linuxptp's ptp4l.- Where no AVB bridge answers, they fall back to AVB Lite over switches
that are not AVB bridges, and the daemon moves ptp4l between gPTP and
the AVB Lite PTP profile through thetriib-ptp4l-gptp@and
triib-ptp4l-lite@units. triib-link@keeps Energy-Efficient Ethernet and PAUSE off the link,
as AVB Lite asks, andtriib-link-reset@restarts an interface whose
driver keeps its time stamps on received PTP frames.
Everywhere
- 38 languages, following the system's or the one picked in Settings,
right-to-left languages mirrored. - Material 3 design, light and dark, shared with prev.
- Packages for Linux on x86_64, ARM64 and RISC-V (.deb, .rpm, tarball,
and a PKGBUILD for Arch), Windows on x64 and ARM64 (.msi and .zip,
signed by Scramble Tools LLC), and macOS on Apple Silicon (.pkg), each
setting up what triib needs to send and receive raw Ethernet. - The protocols are Rust crates of their own,
atdecc,avb-mrpand
avb-net, which build without std for microcontrollers.
Known limits
- The macOS package is not signed with a Developer ID or notarized, so
macOS blocks it until you choose Open Anyway in System Settings,
Privacy & Security. - Talkers and listeners of the computer's own run on Linux only.
- The translations await review by native speakers.
- The AVB Lite Endpoint Declaration TLV goes out only while ptp4l does
not run gPTP on the interface, until linuxptp can carry it. - On Aquantia cards (Linux
atlantic), the driver cuts unicast PTP
frames short, so AVB Lite's delay requests stay multicast, and keeps
time stamps on received PTP frames after the link renegotiates, which
the daemon works around by restarting the interface.