View Issue Details

IDCategoryLast Update
0005438bugs2016-09-15 08:57
ReportersvictorAssigned To 
Reproducibilityalways 
Status newResolutionopen 
Product Version3.0 
Fixed in Version 
Summary0005438: Missing first note when midi region looped
DescriptionArdour 3.0 built from rev14207 (binary downloaded from ardour.org)

1) Create a midi track and a 1 bar region on it.
2) Put 1 note on each beat (quantized/snapped to the beat).
2) Connect outputs of track to linuxsampler (as external program, not LV2 plugin)
3) Loop region.
--> Result: The 4 notes are correctly played on first iteration but when loop starts over again, 1st note cannot be heard.

(Expected result: all 4 notes should be heard on each iteration)
Additional InformationWhen an LV2 instrument is used on the same track as the midi data, Ardour loops the region as expected.
If the plugin is on a different track, to which initial track sends its midi data, bug appears (1st note missing when looping)
If track sends data to external program, bug appears too.

Here is the output of qmidiroute:
First play of region [everything normal]
00:54:26.448 Ch 1, Note On 47, Vel 64
00:54:27.635 Ch 1, Note Off 47
00:54:27.636 Ch 1, Note On 47, Vel 64
00:54:28.835 Ch 1, Note Off 47
00:54:28.836 Ch 1, Note On 47, Vel 64
00:54:30.035 Ch 1, Note Off 47
00:54:30.036 Ch 1, Note On 47, Vel 64
00:54:30.636 Ch 1, Note Off 47
[Looping from begining: notice that 1st "Note On" is missng]
00:54:32.438 Ch 1, Note Off 47
00:54:32.439 Ch 1, Note On 47, Vel 64
00:54:33.634 Ch 1, Note Off 47
00:54:33.636 Ch 1, Note On 47, Vel 64
00:54:34.835 Ch 1, Note Off 47
00:54:34.837 Ch 1, Note On 47, Vel 64
00:54:35.436 Ch 1, Note Off 47

If let to loop on for long, the 1st note of the region is sometimes correctly heard: maybe once in 20 iterations or so.

Attached is a very minimal session where the described behaviour occurs.
TagsNo tags attached.

Relationships

related to 0006666 new MIDI notes get stuck when region is looped 
related to 0006389 confirmed MIDI Loop triggers the first note of the bar AFTER the loop end 
has duplicate 0006397 new Looped MIDI-region skips notes on iteration 
related to 0006140 resolvedccaudle first loop playback is incorrect, subsequent are correct 

Activities

2013-04-07 23:15

 

test.tar.bz2 (11,255 bytes)

svictor

2013-04-12 20:14

reporter   ~0014858

Bug still here in version 3.1

bluebell

2013-04-20 14:36

reporter   ~0014871

This could basically be the same bug or at least a bug with a common cause like 0005421. There might be a compare-error for the note positions that shows up on the regions' borders.

svictor

2013-04-20 16:29

reporter   ~0014872

There are significant differences with 0005421 however:
- here the problem is when routing the midi of the track somewhere else (to another track or to an external synth). When the plugin is on the same track as the notes, everything is fine.
- here the first note is played correctly the first time. It is only ommited when the loop starts over again. As if it didn't go back right to the very begining.
- I couldn't replicate the note being deleted when changing tempo as in 0005421

tlat

2015-03-13 14:27

reporter   ~0016424

(git b58c1df)

The problem seems related to `_global_port_buffer_offset', incremented
during `split_cycle'.

The follow test uses `-p1024' for jackd but it also fails with a lower
period (i.e. 64):

  - bpm 135

  - loop an arpeggio legato 60 64 67 71 (0x3c 0x40 0x43 0x47)

    (the duration is 1 beat for all the notes)

  - loop start 0, loop length 85333 (sr = 48000)

Output:

(added the info for cycle start/split/end)

[...]
DEBUG: cycle_start(1024) => _global_port_buffer_offset is 0
DEBUG::MidiDiskstreamIO: MIDI 1 MDS pre-read read 277 @ 84992..85269 from 133 write to 247, LOOPED ? 0-85333
DEBUG::MidiDiskstreamIO: looped, effective start adjusted to 84992
DEBUG::MidiDiskstreamIO: loop read #3, adjusted start as 84992 for 277
DEBUG::MidiDiskstreamIO: MRB event @ 85332 past end @ 85269
DEBUG::MidiDiskstreamIO: MIDI 1 MDS events read 0 range 84992 .. 85269 rspace 114 wspace 47885 r@133 w@247
DEBUG: split_cycle(277) => _global_port_buffer_offset is 277
DEBUG::MidiDiskstreamIO: MIDI 1 MDS pre-read read 64 @ 85269..85333 from 133 write to 247, LOOPED ? 0-85333
DEBUG::MidiDiskstreamIO: looped, effective start adjusted to 85269
DEBUG::MidiDiskstreamIO: loop read #3, adjusted start as 85269 for 64
DEBUG::MidiDiskstreamIO: MRB event @ 85332 in range 85269 .. 85333
DEBUG::MidiDiskstreamIO: wrote MidiEvent to Buffer (time=63, start=85269 offset=0)0x80 0x47 0x40
DEBUG::MidiDiskstreamIO: MRB event @ 0 before start @ 85269
DEBUG::MidiDiskstreamIO: MIDI 1 MDS events read 1 range 85269 .. 85333 rspace 95 wspace 47904 r@152 w@247
NOTE: the last note-off (0x47) with time 63
drop flushed event on the floor, time 63 too early for 277 + 0 80 47 40
DEBUG: split_cycle(64) => _global_port_buffer_offset is 341 (277 + 64)
DEBUG::MidiDiskstreamIO: MIDI 1 MDS pre-read read 683 @ 85333..86016 from 152 write to 247, LOOPED ? 0-85333
DEBUG::MidiDiskstreamIO: looped, effective start adjusted to 0
DEBUG::MidiDiskstreamIO: loop read #3, adjusted start as 0 for 683
DEBUG::MidiDiskstreamIO: MRB event @ 0 in range 0 .. 683
DEBUG::MidiDiskstreamIO: wrote MidiEvent to Buffer (time=0, start=0 offset=0)0x90 0x3c 0x40
DEBUG::MidiDiskstreamIO: MRB event @ 21333 past end @ 683
DEBUG::MidiDiskstreamIO: MIDI 1 MDS events read 1 range 85333 .. 86016 rspace 76 wspace 47923 r@171 w@247
NOTE: drop the first note-on (0x3c)
drop flushed event on the floor, time 0 too early for 341 + 0 90 3c 40
DEBUG: cycle_end(1024) x 6 times
DEBUG::MidiSourceIO: MidiSource::midi_read() MIDI 1-1.mid sstart 0 start 46635 cnt 2048 tracker 0x7f6ff00d09d0
DEBUG::MidiSourceIO: MIDI 1-1.mid: reached end with event @ 63999 vs. 48683
DEBUG: cycle_start(1024) => _global_port_buffer_offset is 0
[...]

hg87

2015-04-24 17:04

reporter   ~0016640

This problem is still persistent in Ardour 4.0.
When the 1st note is on the 1st beat, the loop recording does not record the 1st note.

The note is visible on the MIDI signal indicator.

zettberlin

2015-06-27 17:29

reporter   ~0016812

Similar behaviour here in 4.1: a looped MIDI region does not play any notes or just seems to skip the first 5-6 quarter notes in the iterations.

magnetophon

2015-11-28 00:37

reporter   ~0017665

Still present in Ardour 4.4

x42

2015-11-29 00:32

administrator   ~0017667

some progress in Ardour 4.4-340-g7a5cea4

please test.

hg87

2015-12-19 09:33

reporter   ~0017730

Dear Robin,

I've tested the recent git version 4.4-564-g7b6ef41 with sessions where I noticed this problem before.

So far I can say that it works now like expected.

The old sessions do still miss the 1st beat on loop when loaded in g7b6ef41. As soon as I move the note back & forth to the same position it will be recognized during loop.


Many thanks for your efforts!


Best regards,
Harald

timbyr

2016-02-22 10:00

developer   ~0017992

This still seems to be an issue with 4.7.

Testing with a simple session with one midi track and 2 bar region with a note on each beat and then looping the region results in notes not being played at the start of the region after several loops.

paul

2016-09-14 00:27

administrator   ~0018635

MIDI looping should now be either completely fixed in git (nightly builds) or just massively improved.

Feedback welcomed.

timbyr

2016-09-14 02:29

developer   ~0018637

I can not reproduce this issue anymore using version 5.3.97.

Tested using seamless and non-seamless looping with a-Reasonable Synth, synthv1 and MDA DX10 instruments and a variety of loop lengths and notes overlapping with loop boundaries. All seems to work as expected.

Nice work.

rutsch

2016-09-15 08:34

reporter   ~0018644

Last edited: 2016-09-15 08:56

View 2 revisions

Good work!

Just one thing is still not working for me. When I enable 'Play loop is a transport mode' the loop just plays once. The playhead is moving but there is no audio output.

This is related to http://tracker.ardour.org/view.php?id=6734

Issue History

Date Modified Username Field Change
2013-04-07 23:15 svictor New Issue
2013-04-07 23:15 svictor File Added: test.tar.bz2
2013-04-12 20:14 svictor Note Added: 0014858
2013-04-20 14:36 bluebell Note Added: 0014871
2013-04-20 16:29 svictor Note Added: 0014872
2015-01-22 16:21 x42 Relationship added related to 0006140
2015-03-13 14:27 tlat Note Added: 0016424
2015-04-24 17:04 hg87 Note Added: 0016640
2015-06-27 17:29 zettberlin Note Added: 0016812
2015-08-05 00:24 x42 Relationship added has duplicate 0006397
2015-11-25 02:09 x42 Relationship added related to 0006666
2015-11-25 02:09 x42 Relationship added related to 0006389
2015-11-28 00:37 magnetophon Note Added: 0017665
2015-11-29 00:32 x42 Note Added: 0017667
2015-12-19 09:33 hg87 Note Added: 0017730
2016-02-22 10:00 timbyr Note Added: 0017992
2016-09-14 00:27 paul Note Added: 0018635
2016-09-14 02:29 timbyr Note Added: 0018637
2016-09-15 08:34 rutsch Note Added: 0018644
2016-09-15 08:56 rutsch Note Edited: 0018644 View Revisions