View Issue Details

IDProjectCategoryView StatusLast Update
0009872ardourbugspublic2024-12-29 17:31
Reporterflorianb Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformPC x64OSSlackware64 15.0OS Version6.7.8-preempt
Product Version8.10 
Summary0009872: No MIDI data makes it through 2 tracks routed from one to another
DescriptionWhen external MIDI data (e.g. physical MIDI keyboard) arrives to a MIDI track, if that track is then connected to a second MIDI track, nothing makes it to the second one.
See screenshot attached, we can see that:
* "MIDI_KBD" track receives data from a midisport interface (I have a piano there)
* Its vu-meter metering point is "Out" so we know by that vu-meter that the MIDI data makes it out of that first track.
* "piano" track has its MIDI input connected to the first track ("MIDI_KBD"), and MIDI is green (active).
* The metering point of that "piano" track is "In", yet nothing on the vu-meter (despite correct In/Disk/Rec states).
NOTES:
* If the second "track" is a MIDI *BUS* (instead of a track) it works.
* if the first one is a BUS while the second is a track, it also fails.
* Please don't get distracted by the fact that in my screenshot, "MIDI_KBD" goes to 2 tracks ("piano" and "choir_eric"). I also tried with a single track and it also fails.
Thanks!
Steps To ReproduceCreate 2 MIDI tracks (Track1, Track2).
Connect some MIDI keyboard to Track1's input.
Connect Track1's output to Track2.
Make sure In/Disk/Rec and metering points all make sense.
Nothing from the MIDI keybaord makes it to Track2.
Additional InformationI'm using rev 8.5-4-g44610c7877, but I assume nothing about that has changed since. But let me know if you cannot reproduce I'll go install the latest version to confirm.
TagsMidi

Activities

florianb

2024-12-28 17:03

reporter  

florianb

2024-12-28 17:19

reporter   ~0029166

The project directory of this session to help reproduce (3.2MB extracted - No Audio/Midi files).

florianb

2024-12-28 19:27

reporter   ~0029167

More info I discovered:
* You absolutely need my project (above) to reproduce.
* If you create 2 NEW midi tracks in that project and connect them to each other the same way described earlier, they work...
* The problem is with the tracks "piano" and "choir_eric". If the input of these tracks comes from ardour, nothing comes in. If it comes from the outside (e.g. midisport) then it works.
* Trying to create a new MIDI track to reproduce the same scenario as "piano" or "choir_eric" (same connections, same instrument, etc) works.
So now the question is: What is so special about MIDI tracks "piano" and "choir_eric" that makes them different from a newly created track?

edogawa

2024-12-28 19:34

reporter   ~0029168

Confirmed using Ardour 8.10 and the session posted above, both using pipewire-jack and jack2.
Before that, I had tested with a news ession of just 3 midi tracks without any plugins, and got the MIDI notes passing through just fine (this was created and run using a self-compiled Ardour 9 from current github, and again, both with pipewire-jack and jack2).
In the latter case, I didn't even engage any of the "rec-enable" or "In" buttons.

x42

2024-12-28 23:07

administrator   ~0029169

First you need to fix the feedback issue, otherwise Ardour will not pass any signals at all after reloading as session.

I've disconnected "Insert" "WIDTH_M" and "WIDTH_S"
After that I can use Ardour's Virtual Keyboard to connected to "MIDI_KBD" and the signal reaches both downstream tracks.

Tested with Ardour/ALSA (to rule out any issues with JACK or pipewire)
bug-9872.png (83,315 bytes)   
bug-9872.png (83,315 bytes)   

x42

2024-12-28 23:10

administrator   ~0029170

I followed your instructions:

* Create 2 MIDI tracks (Track1, Track2).

On track1 I used no instrument, Track2 I used Ardour's default General MIDI Synth,

* Connect some MIDI keyboard to Track1's input.

I used Ardour's Virtual keyboard

* Connect Track1's output to Track2.
* Make sure In/Disk/Rec and metering points all make sense.

I left everything at default with default preferences both In/Disk are implicitly active.

* Nothing from the MIDI keybaord makes it to Track2.

Here the MIDI synth on track 2 plays notes just fine.

florianb

2024-12-29 01:42

reporter   ~0029171

x42:
"I followed your instructions: ... Here the MIDI synth on track 2 plays notes just fine."
> Yes because as I mentioned afterwards, "You absolutely need my project (above) to reproduce." and "If you create 2 NEW midi tracks ... they work"
 
x42:
"First you need to fix the feedback issue"
> The Feedback indicator lights up but I cannot see any feedback at all.
WIDTH_M and WIDTH_S mono tracks are only connected to "INS_MS" (the insert of the "WIDTH" stereo track)
I don't see anything from the width* tracks connected to itself. I suspect that the feedback indicator is wrong.
THEN, maybe based on that feedback detection being wrong the data isn't passed due to incorrect feedback detection?

x42

2024-12-29 17:31

administrator   ~0029172

> The Feedback indicator lights up but I cannot see any feedback at all.

As discussed on IRC, the issue is that three busses are 'inserted' into track's signal flow: "inserts" are used to send to an Ardour bus and return a result to the source track.
This constitutes a feedback loop: the signal of a track depends on data from the same track.

inserts are only to be used with external hardware (and are latency compensated); for a track with an insert the following happens:
The track is processed in one go (atomically): send data to external device; receive data from external device from previous cycle.

This works with external device; but not with Ardour internal busses. For that to work the track would have to stop processing halfway, send data to the bus, wait for the bus to finish processing, receive data from the bus, and then continue.

Issue History

Date Modified Username Field Change
2024-12-28 17:03 florianb New Issue
2024-12-28 17:03 florianb Tag Attached: Midi
2024-12-28 17:03 florianb File Added: Screenshot_20241226_073204-ardour-midi-bug.png
2024-12-28 17:19 florianb Note Added: 0029166
2024-12-28 17:19 florianb File Added: ardour-midi-bug-project.tgz
2024-12-28 19:27 florianb Note Added: 0029167
2024-12-28 19:34 edogawa Note Added: 0029168
2024-12-28 23:07 x42 Note Added: 0029169
2024-12-28 23:07 x42 File Added: bug-9872.png
2024-12-28 23:10 x42 Note Added: 0029170
2024-12-29 01:42 florianb Note Added: 0029171
2024-12-29 17:31 x42 Note Added: 0029172