[SRU] Long SysEx messages are skipped by Midi-Bridge

Bug #2067338 reported by Erich Eickmeyer
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PipeWire
New
Unknown
pipewire (Ubuntu)
Status tracked in Oracular
Noble
Fix Committed
High
Erich Eickmeyer
Oracular
Fix Released
Undecided
Unassigned

Bug Description

[Impact]

A regression in 1.0.5 has been found in PipeWire and is fixed in 1.0.7.

Users of certain MIDI controllers that rely on long SysEx messages are unable to function properly. I noticed this when reconnecting my Beheringer X-Touch (shown here: https://nextcloud.ericheickmeyer.com/index.php/s/k9Aa9Bq7RDD5DoR) after the installation of 24.04 LTS, it could not operate properly. Disabling pipewire-jack and running ardour's internal jack functionality caused it to work properly.

Investigation consisted of backporting 1.0.7 via a PPA to Noble which fixed the bug. Bug was confirmed via https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4005. Solving bug via SRU will consist of creating patches from the commits that fixed the issue in upstream PipeWire.

Tested patches in 1.0.5, confirmed it worked as expected. In my case, the patches operated normally. Used build in PPA at https://launchpad.net/~eeickmeyer/+archive/ubuntu/ppa

[Test Case]

Using Ubuntu Studio

 * Connect a MIDI controller that uses long SysEx messages, such as a Behringer X-Touch, to the system.

 * Star Ardour

 * In Preferences > Control Surfaces > Mackie, select the MIDI controller for "Surface sends via:" and "Surface receives via:".

Expected: complete control population and function
Actual: Only display colors are populated

[What could go wrong]

It is possible that these patches could cause other problems outside of long SysEx messages in MIDI controllers. However, these patches were developed by the lead developer of PipeWire, Wim Taymans, and I tend to trust that he knows exactly what he's doing with this kind of thing.

ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: pipewire 1.0.5-1
ProcVersionSignature: Ubuntu 6.8.0-31.31.1-lowlatency 6.8.1
Uname: Linux 6.8.0-31-lowlatency x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.28.1-0ubuntu3
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: KDE
Date: Mon May 27 20:35:49 2024
InstallationDate: Installed on 2024-04-15 (42 days ago)
InstallationMedia: Ubuntu-Studio 24.04 LTS "Noble Numbat" - Beta amd64 (20240410.2)
SourcePackage: pipewire
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :
Changed in pipewire (Ubuntu Oracular):
status: New → Fix Released
Changed in pipewire (Ubuntu Noble):
assignee: nobody → Erich Eickmeyer (eeickmeyer)
milestone: none → noble-updates
Changed in pipewire (Ubuntu Oracular):
milestone: noble-updates → none
assignee: Erich Eickmeyer (eeickmeyer) → nobody
Changed in pipewire (Ubuntu Noble):
importance: Undecided → High
Changed in pipewire (Ubuntu Oracular):
importance: High → Undecided
Changed in pipewire (Ubuntu Noble):
status: New → In Progress
Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote (last edit ):

As I'm only a MOTU and this is in main, I must request sponosrship from a core-dev. However, I have confirmed that this fixes the bug.

Changed in pipewire:
status: Unknown → New
description: updated
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks, I've sponsored the upload to Noble now

Changed in pipewire (Ubuntu Noble):
status: In Progress → Fix Committed
Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

For the SRU teams's sake, we probably should change this status back to "In Progress".

Changed in pipewire (Ubuntu Noble):
status: Fix Committed → In Progress
summary: - Long SysEx messages are skipped by Midi-Bridge
+ [SRU] Long SysEx messages are skipped by Midi-Bridge
Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote (last edit ):

Working with Andreas Hasenack, we determined that the larger of the two included patches was actually not included in the code of 1.0.7 and after testing I found out it was not needed. For that reason, I'm uploading a new .debdiff and this will need another upload.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Unsubscribing sponsors, Simon Quigley handled new upload.

Revision history for this message
Andreas Hasenack (ahasenack) wrote : Please test proposed package

Hello Erich, or anyone else affected,

Accepted pipewire into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/pipewire/1.0.5-1ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-noble. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in pipewire (Ubuntu Noble):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote (last edit ):

I'm going to comment twice to show exactly what we're talking about here. First, here's without the version in noble-proposed:

$ apt-cache policy pipewire
pipewire:
  Installed: 1.0.5-1
  Candidate: 1.0.5-1
  Version table:
 *** 1.0.5-1 500
        500 http://us.archive.ubuntu.com/ubuntu noble/main amd64 Packages
        100 /var/lib/dpkg/status

* Connected Behringer X-Touch to computer via USB
* Started Ardour
* Selected X-Touch as the Mackie controller

Result: No response from X-Touch other than population of colors in scribble strip from my project file. (see attached picture)

Explanation: The "Scribble Strip" is where engineers used to literally "scribble" the channel assignments on a mixer to what the channel assignment was for and would sometimes color code. Ardour is capable of not only populating the LCD scribble strip, but also assigning color code. Unfortunately, due to the long SysEx messages getting skipped, only the short SysEx messages consisting of the color assignments are getting through.

We're also supposed to see the faders automatically move and a timecode in the upper-right-hand corner for the position of the "tape head" of the audio workstation, telling us where we are in the recording. That also is not populating. Moreover, any control changes we make are not being sent back to Ardour properly.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Now with the version in noble-proposed:

$ apt-cache policy pipewire
pipewire:
  Installed: 1.0.5-1ubuntu1
  Candidate: 1.0.5-1ubuntu1
  Version table:
 *** 1.0.5-1ubuntu1 100
        100 http://us.archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     1.0.5-1 500
        500 http://us.archive.ubuntu.com/ubuntu noble/main amd64 Packages

* Connected Behringer X-Touch to computer via USB
* Started Ardour
* Selected X-Touch as Mackie controller

Result: Using the project file I had, the controller immediately sprung to life and acted as expected (see attached picture). Faders moved to proper position, scribble strip populated with channel information, mute LEDs lit, timecode appeared, and other information. Ardour responded to controls.

tags: added: verification-done verification-done-noble
removed: verification-needed verification-needed-noble
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (pipewire/1.0.5-1ubuntu1)

All autopkgtests for the newly accepted pipewire (1.0.5-1ubuntu1) for noble have finished running.
The following regressions have been reported in tests triggered by the package:

fluidsynth/unknown (armhf)
mutter/unknown (armhf)
pipewire/unknown (armhf)
rust-libspa-sys/0.8.0-1build1 (armhf)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/noble/update_excuses.html#pipewire

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.