Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 12-02-2021, 08:20 AM   #1
brunetton
Human being with feelings
 
Join Date: Nov 2021
Location: France
Posts: 18
Default [6.42]Buggy MIDI export when a time signature change in timeline

Hi! I hope this isn't a duplicate but I don't think I've seen an already reported issue for this.

In brief

Exporting MIDI file from a project that contains a second time signature somewhere after the first time signature makes export totally wrong (in term of note duration and note positionning.

Context (why I did this)

This made me crazy since yesterday 🤪 ! But I finally found the problem !

I'm working on a project with a signer. The singer sent me a track with voice and guitar; but he doesn't starts on a beat: if the metronome starts at the beginning of the file, the overall project beats would be shifted. Not ideal to work, especially with MIDI.
As I've to send him a MIDI file that corresponds to the file I received; and not a MIDI file saying him "here is my piano file; but you'll have to place the beginning of this file at 0"2'23.234" I needed to "realign" beats: define the first beat when the singer starts to play guitar.

So to "realign" the whole thing I added a time signature when the singer starts to play guitar and I'm good to go then.

But when exporting my MIDI file yesterday I re-imported it onto a new project just to check and I realized that the file is exploitable

Steps to reproduce

=> check the Proof Of Concept Reaper project joint with this Bug report !

- create a project with a MIDI track
- record some MIDI notes, not from the beginning, but leaving an empty space at the beginning
- define a tempo/time signature at the beginning of the file defining tempo
- disable snapping to place another time signature somewhere, not on a beat, after this first time signature just added, and before the first MIDI note
---- on this time signature's options, don't define a tempo, but only define time signature
- export MIDI track:
- select the track
--- file -> export project MIDI ->
------- entire project
------- selected tracks only
------- type 0 MIDI file
------- leave "embed project tempo/time signature changes" unchecked (it doesn't changes anything on my tests, but I'm not absolutely sure)
- open this exported MIDI file and constat that this file is not correct

the "----" represent sub-lists, but this forum syntax is unbearable :'(

Joint files

I joint a zip file containing an complete example project to help debugging:

.
├── POC.mp3 -> a fake singer track to align MIDI notes with
├── POC - without time signature.RPP -> the project without the second time signature
├── POC - with time signature.RPP -> the project with the 2 times signatures. This is the one that produces buggy export
└── renders -> MIDI renders from my machine, just in case you've different ones
├── POC - without time signature.mid
└── POC - with time sign.mid

Thank you

I hope that this will be useful for you and I take this opportunity to say thank you to all the dev team ! Reaper is an amazing peace of software !
(I would have preferred to see it open source; I would have paid for it too, and this would make me feel confident about the long living of this software)

PS: please consider change this forum for Discord ! (but maybe you're using some features that are not available in Discord and I've missed it; but I really miss Markdown syntax here)

Thanks a lot !
Attached Files
File Type: zip test bug reaper.zip (16.7 KB, 31 views)

Last edited by brunetton; 12-02-2021 at 08:28 AM. Reason: Sublists ..... again !
brunetton is offline   Reply With Quote
Old 12-02-2021, 08:43 AM   #2
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

Quote:
Originally Posted by brunetton View Post
------- type 0 MIDI file
------- leave "embed project tempo/time signature changes" unchecked (it doesn't changes anything on my tests, but I'm not absolutely sure)
Without looking at your project yet, if you want to preserve time signature changes, you'll definitely need to either export as type 1 (which always includes a tempo track) or enable "embed tempo/time signature changes." A type 0 file without time signature changes won't include any time signature changes!
schwa is offline   Reply With Quote
Old 12-03-2021, 07:43 AM   #3
brunetton
Human being with feelings
 
Join Date: Nov 2021
Location: France
Posts: 18
Default

Quote:
Originally Posted by schwa View Post
Without looking at your project yet, if you want to preserve time signature changes, you'll definitely need to either export as type 1 (which always includes a tempo track) or enable "embed tempo/time signature changes." A type 0 file without time signature changes won't include any time signature changes!
Thanks fir the hint. But I certainly don't want to include signature changes ! My client will integrate my work onto a mix and he don't wants that.
Anyways, I tried to enable "embed tempo/time signature changes." with type 0 but its doesn't fix the problem. There is another problem on top of time signatures: when exporting, not only all notes are not exported at correct places, but also a non-wanted note is added at the beginning of the exported MIDI file; this is quite strange and looks like a bug to me.

Anyways you'll see this looking to the POC project.

Thanks !
brunetton is offline   Reply With Quote
Old 12-03-2021, 11:14 AM   #4
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

I think the problem is that there is not a well defined meaning for a "partial measure," even though REAPER allows them (optionally). Musically, a partial measure is nonsense. MIDI is a strictly beat-based protocol, so the file export is not able to accommodate the partial first measure of the project. If you put the time signature change on the bar, the export is correct.
schwa is offline   Reply With Quote
Old 12-13-2021, 04:08 AM   #5
nicobi
Human being with feelings
 
Join Date: Jun 2009
Location: Germany, Slovenia, Croatia
Posts: 53
Default

Quote:
Originally Posted by schwa View Post
Musically, a partial measure is nonsense.
This statement is incorrect.
nicobi is offline   Reply With Quote
Old 12-13-2021, 04:49 AM   #6
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,750
Default

OK, well, I shouldn't be absolute, a partial pickup measure is not nonsense, but regardless the problem is that MIDI can't accommodate it.
schwa is offline   Reply With Quote
Old 12-13-2021, 05:43 AM   #7
nicobi
Human being with feelings
 
Join Date: Jun 2009
Location: Germany, Slovenia, Croatia
Posts: 53
Default

Well, actually it is not reduced to pickup measures. A lot of music is measure-less, like Avantgarde or Gregorian style music. In the latter you have melismatic parts at best - they derive their „measures” or rhythm from the flow and rhythm of speech.

That's why it still is a struggle to notate music measureless in Notation Software - they all suck I can tell you. In Lilypond it's high end of course.

But yes MIDI cannot picture this type of organising musical events on a timeline.
nicobi is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:05 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.