View Issue Details

IDProjectCategoryView StatusLast Update
0009472ardourbugspublic2023-10-23 10:40
Reporterfredo.faure Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformUbuntuOSLinuxOS Version(any)
Summary0009472: CC Midi messages are transmitted from one track to another but not recorded on midi tracks
DescriptionI have two Midi tracks: Track0 with plugin0 and Track1 with plugin1.
The two tracks are Midi connected: Track0->Track1.
 
In the loop processBlock, the plugin0 creates some midi messages and print them.
the plugin1 receive the messages and print them.
At the same time i ask the track1 to record the midi messages and i export this in a file.mid.
Concerning the printed messages everything is ok, all messages are transmitted.
But in the file some messages are missing. I repeated many times and this is reproducible.
But i don't understand the exact rule, but observe that the missing messages in my example are (but sometimes they are here):
b0,e,*,
b0,17,*,
b0,18,*,
b0,35,*,
b0,36,*,
b0,37,*,
b0,38,*,

I give below 3 files:

  log1.txt :that contains the printed midi messages (with their time measured from the start of the loop), from plugin0 (output) and plugin1 (input).
         From this file we can check that the messages are all transmited correctly.

 log2.txt: that contains the printed midi messages from plugin1 (input) when we read the recorded file on track1.
     From this we can compare with log1.txt and observe that some CC messages are missing.

   Precisely this is for the sequences of 5 messages:
b0,7,17, 97.9692
b0,15,7d, 97.9693
b0,16,2, 97.9693
e0,20,41, 97.9693
90,3e,7f, 97.9693
----------------------

   where we expect instead the 12 messages:
b0,e,3, 84.5669
b0,15,7d, 84.5669
b0,16,2, 84.567
b0,17,0, 84.567
b0,18,0, 84.567
b0,35,0, 84.567
b0,36,0, 84.567
b0,37,0, 84.567
b0,38,0, 84.567
b0,7,17, 84.567
e0,20,41, 84.567
90,3e,7f, 84.5671
----------------------

  file.mid that contains the recorded midi file. Looking carefuly we see that it corresponds to log1.txt.
    So some midi messages are missing.
TagsNo tags attached.

Activities

fredo.faure

2023-10-08 16:44

reporter  

log2.txt (2,039 bytes)   
MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b0,7,1,	95.3918
b0,e,3,	95.3919
b0,15,0,	95.3919
b0,16,0,	95.3919
b0,17,0,	95.3919
b0,18,0,	95.3919
b0,35,0,	95.3919
b0,36,0,	95.3919
b0,37,0,	95.3919
b0,38,0,	95.3919
e0,0,40,	95.3919
90,3c,7f,	95.3919
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b1,7,21,	96.4434
b1,e,3,	96.4434
b1,15,7f,	96.4434
b1,16,1,	96.4434
b1,17,0,	96.4434
b1,18,0,	96.4434
b1,35,0,	96.4435
b1,36,0,	96.4435
b1,37,0,	96.4435
b1,38,0,	96.4435
e1,50,40,	96.4435
91,43,7f,	96.4435
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,3c,0,	97.5864
----------------------

MM1. Input. Begin of processBlock, list of messages of size =5,  plugin:1
b0,7,17,	97.9692
b0,15,7d,	97.9693
b0,16,2,	97.9693
e0,20,41,	97.9693
90,3e,7f,	97.9693
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
81,43,0,	99.2581
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b1,7,24,	99.6761
b1,e,3,	99.6762
b1,15,7c,	99.6762
b1,16,3,	99.6762
b1,17,0,	99.6762
b1,18,0,	99.6762
b1,35,0,	99.6762
b1,36,0,	99.6762
b1,37,0,	99.6762
b1,38,0,	99.6762
e1,70,41,	99.6762
91,45,7f,	99.6762
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,3e,0,	100.686
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b0,7,1b,	101.11
b0,e,3,	101.11
b0,15,7a,	101.11
b0,16,4,	101.11
b0,17,0,	101.11
b0,18,0,	101.11
b0,35,0,	101.11
b0,36,0,	101.11
b0,37,0,	101.11
b0,38,0,	101.11
e0,40,42,	101.111
90,40,7f,	101.111
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
81,45,0,	102.41
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,40,0,	103.275
----------------------

MM1. Input. Begin of processBlock, list of messages of size =20,  plugin:1
log2.txt (2,039 bytes)   
log1.txt (4,521 bytes)   
==================================

MM3. Ouput. End of processblock., list of messages of size =12,  plugin:0
b0,e,3,	81.9906
b0,15,0,	81.9906
b0,16,0,	81.9906
b0,17,0,	81.9906
b0,18,0,	81.9906
b0,35,0,	81.9907
b0,36,0,	81.9907
b0,37,0,	81.9907
b0,38,0,	81.9907
e0,0,40,	81.9907
b0,7,1,	81.9907
90,3c,7f,	81.9907
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b0,e,3,	81.989
b0,15,0,	81.989
b0,16,0,	81.989
b0,17,0,	81.989
b0,18,0,	81.989
b0,35,0,	81.989
b0,36,0,	81.989
b0,37,0,	81.989
b0,38,0,	81.9891
b0,7,1,	81.9891
e0,0,40,	81.9891
90,3c,7f,	81.9891
----------------------



==================================

MM3. Ouput. End of processblock., list of messages of size =c,  plugin:0
b1,e,3,	83.0416
b1,15,7f,	83.0417
b1,16,1,	83.0417
b1,17,0,	83.0417
b1,18,0,	83.0417
b1,35,0,	83.0417
b1,36,0,	83.0417
b1,37,0,	83.0417
b1,38,0,	83.0417
e1,50,40,	83.0417
b1,7,21,	83.0417
91,43,7f,	83.0418
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b1,e,3,	83.04
b1,15,7f,	83.04
b1,16,1,	83.04
b1,17,0,	83.04
b1,18,0,	83.04
b1,35,0,	83.0401
b1,36,0,	83.0401
b1,37,0,	83.0401
b1,38,0,	83.0401
b1,7,21,	83.0401
e1,50,40,	83.0401
91,43,7f,	83.0401
----------------------




==================================
MM3. Ouput. End of processblock., list of messages of size =1,  plugin:0
80,3c,0,	84.1856
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,3c,0,	84.1835
----------------------



==================================
MM3. Ouput. End of processblock., list of messages of size =c,  plugin:0
b0,e,3,	84.5687
b0,15,7d,	84.5687
b0,16,2,	84.5687
b0,17,0,	84.5687
b0,18,0,	84.5687
b0,35,0,	84.5687
b0,36,0,	84.5687
b0,37,0,	84.5687
b0,38,0,	84.5688
e0,20,41,	84.5688
b0,7,17,	84.5688
90,3e,7f,	84.5688
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b0,e,3,	84.5669
b0,15,7d,	84.5669
b0,16,2,	84.567
b0,17,0,	84.567
b0,18,0,	84.567
b0,35,0,	84.567
b0,36,0,	84.567
b0,37,0,	84.567
b0,38,0,	84.567
b0,7,17,	84.567
e0,20,41,	84.567
90,3e,7f,	84.5671
----------------------




==================================
MM3. Ouput. End of processblock., list of messages of size =1,  plugin:0
81,43,0,	85.8566
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
81,43,0,	85.8545
----------------------



==================================
MM3. Ouput. End of processblock., list of messages of size =c,  plugin:0
b1,e,3,	86.2747
b1,15,7c,	86.2747
b1,16,3,	86.2747
b1,17,0,	86.2747
b1,18,0,	86.2747
b1,35,0,	86.2747
b1,36,0,	86.2747
b1,37,0,	86.2748
b1,38,0,	86.2748
e1,70,41,	86.2748
b1,7,24,	86.2748
91,45,7f,	86.2748
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b1,e,3,	86.2731
b1,15,7c,	86.2731
b1,16,3,	86.2731
b1,17,0,	86.2731
b1,18,0,	86.2731
b1,35,0,	86.2731
b1,36,0,	86.2731
b1,37,0,	86.2732
b1,38,0,	86.2732
b1,7,24,	86.2732
e1,70,41,	86.2732
91,45,7f,	86.2732
----------------------


==================================
MM3. Ouput. End of processblock., list of messages of size =1,  plugin:0
80,3e,0,	87.2845
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,3e,0,	87.2824
----------------------



==================================
MM3. Ouput. End of processblock., list of messages of size =c,  plugin:0
b0,e,3,	87.7086
b0,15,7a,	87.7086
b0,16,4,	87.7086
b0,17,0,	87.7086
b0,18,0,	87.7086
b0,35,0,	87.7086
b0,36,0,	87.7087
b0,37,0,	87.7087
b0,38,0,	87.7087
e0,40,42,	87.7087
b0,7,1b,	87.7087
90,40,7f,	87.7087
----------------------

MM1. Input. Begin of processBlock, list of messages of size =c,  plugin:1
b0,e,3,	87.7068
b0,15,7a,	87.7068
b0,16,4,	87.7068
b0,17,0,	87.7068
b0,18,0,	87.7069
b0,35,0,	87.7069
b0,36,0,	87.7069
b0,37,0,	87.7069
b0,38,0,	87.7069
b0,7,1b,	87.7069
e0,40,42,	87.7069
90,40,7f,	87.7069
----------------------



==================================
MM3. Ouput. End of processblock., list of messages of size =1,  plugin:0
81,45,0,	89.0095
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
81,45,0,	89.0075
----------------------



==================================
MM3. Ouput. End of processblock., list of messages of size =1,  plugin:0
80,40,0,	89.8735
----------------------

MM1. Input. Begin of processBlock, list of messages of size =1,  plugin:1
80,40,0,	89.8714
----------------------


log1.txt (4,521 bytes)   

fredo.faure

2023-10-08 16:50

reporter   ~0028156

I can add the following information:
This Ardour 7.5.0 "Neroli" (rev 7.5) Intel 64 bits On Ubuntu, but i observed the same with Ardour 7.5 on MacOs.
My Plugins are VST3 made with JUCE 7.

paul

2023-10-08 17:01

administrator   ~0028157

Can you retest this with a setup where track 1 has no MIDI plugin at all?

I would do it myself, but (a) busy with the release process for Ardour 8 (b) i can't compare it quickly with the plugin you are using

x42

2023-10-08 19:12

administrator   ~0028158

perhaps this is a VST3 issue? CCs are mapped to plugin control input parameters, and not sent as MIDI messages.

fredo.faure

2023-10-08 20:32

reporter   ~0028159

I am sur to understand very weel, but i removed the plugin on track 1, recorded and see the same problem.

x42

2023-10-08 21:14

administrator   ~0028160

Last edited: 2023-10-08 21:30

I just checked . I created a MIDI file with CCs 1..127 on channel one with midicomp (https://github.com/markc/midicomp/) a MIDI to/form text tool:
MFile 0 1 19200
MTrk
0 Par ch=1 c=1 v=127
4800 Par ch=1 c=1 v=0
4800 Par ch=1 c=2 v=127
9600 Par ch=1 c=2 v=0
9600 Par ch=1 c=3 v=127
14400 Par ch=1 c=3 v=0
14400 Par ch=1 c=4 v=127
19200 Par ch=1 c=4 v=0
# ... SNIP ...
604800 Par ch=1 c=126 v=0
604800 Par ch=1 c=127 v=127
609600 Par ch=1 c=127 v=0
609600 Meta TrkEnd
TrkEnd



Imported it to Ardour on a track without synth. Then created a 2nd MIDI track, and connected its input to the output of the track with the sequence.
For good measure I have added "ACE MDI Monitor" plugin (comes with Ardour) to both tracks.
Rec-arm, record. save, quit and then used MIDIcomp again to check the recorded midi file (from the session's interchange/*/midifiles/ folder).
All CCs were correctly recorded.

So either there is an issue with Ardour's VST3 implementation not passing all MIDI events on, or something specific to your JUCE plugin.

Older versions of JUCE default generates 127 * 16 VST3 hidden control ports. One for each MIDI CC and channel. I don't know if that is still the case for JUCE7.
While generating MIDI still uses an event based API.

1. Can you try if you receive all MIDI events if you play the attached file into your plugin?

2. Can you check with ACE MIDI Monitor added after your plugin on the same track if all events are correctly generated?

fredo.faure

2023-10-23 10:26

reporter   ~0028243

I did the test, thank you, it works. I see no problem using this file.
So i have to find the problem with my situation.

fredo.faure

2023-10-23 10:40

reporter   ~0028244

But i am not sure that the problem comes from my plugin, because, i checked that the midi messages are well transmited if i put an intermediary midi track (without recording).
 The problem is when i record. May be too many CC messages at the same time?

Issue History

Date Modified Username Field Change
2023-10-08 16:44 fredo.faure New Issue
2023-10-08 16:44 fredo.faure File Added: file.mid
2023-10-08 16:44 fredo.faure File Added: log2.txt
2023-10-08 16:44 fredo.faure File Added: log1.txt
2023-10-08 16:50 fredo.faure Note Added: 0028156
2023-10-08 17:01 paul Note Added: 0028157
2023-10-08 19:12 x42 Note Added: 0028158
2023-10-08 20:32 fredo.faure Note Added: 0028159
2023-10-08 21:14 x42 Note Added: 0028160
2023-10-08 21:14 x42 File Added: MIDI-CC.mid
2023-10-08 21:30 x42 Note Edited: 0028160
2023-10-23 10:26 fredo.faure Note Added: 0028243
2023-10-23 10:40 fredo.faure Note Added: 0028244