Direkt zum Inhalt

Synfire not detecting Time Signature changes correctly

Posted

I have imported a MIDI file into Synfire that is generally 4/4 but has some changes to 2/4, 5/4 and 6/4 (for one bar only) throughout.

I noticed after the first 5/4 change that the harmony was out, i.e. the chord changes were on the 2nd and 4th beat of the bar (that had subsequently reverted to 4/4).  This means the result sounds very bad with the harmony chamges in the wrong places.

I could tell just by looking at some of the notes (e.g. drums, strings) that the change to 5/4 had happened one bar too late.

I thought there must be some corruption in the MIDI file so I loaded the same file to Cubase.  However Cubase has correctly placed the signature changes and confirmed my suspicion that Synfire was detecting them one bar too late.

For example:

Bars 13 and 19 - change to 2/4 for one bar (Synfire does this at bars 14 and 20)

Bar 28 - change to 5/4 for one bar (Synfire at bar 29)

Bars 39 and 44 - change to 6/4 for one bar (Synfire at bars 40 and 45)

etc.

It doesn't matter so much for the 2/4 and 6/4 changes, but it's after the 5/4 changes that things start to sound messy.

Have I missed a setting somewhere regarding signature changes?

EDIT: I've subsequently noticed that the file in Cubase contains a lot of MIDI information in bar 1 (such as instrument, etc.) so the 'music' doesn't start until bar 2.  Synfire doesn't contain this pre-bar on import so the nusic starts on bar 1, but it hasn't adjusted the time-signature track accordingly.  Could this be why it is mis-aligned and if so, how can it be fixed?


So., 10.11.2013 - 16:20 Permalink

Yep. That 1 bar lead-in is probably the cause.

The solution is to import the whole file and not skip the lead-in.

I don't have SFP at hand right now, but if I remember correctly, you can set the time span to be imported in the top bar of entry fields on the import dialog. Just let it start from zero.

So., 10.11.2013 - 22:58 Permalink

Oh dear, I left this loading while I went out, now I've come back and it's gone the other way!

The music now starts at bar 3 in Synfire (I was expecting bar 2) and the signature changes are now a bar early rather than a bar late.  I did it this time in 1.7.4 so maybe it's changed now?  I'll try again in 1.7.4 but leave the offset at 1m.

Isn't this a bug?  Shouldn't Synfire also adjust the signature changes depending on the offset?

EDIT: Wait a minute, think I got that wrong ...  Doing it again at Offset 0m ....

So., 10.11.2013 - 23:03 Permalink

Shouldn't Synfire also adjust the signature changes depending on the offset?

Yes, it should. My suggestion is just a workaround.

So., 10.11.2013 - 23:25 Permalink

Ok, final report (I think)

With offset 0m, the music does now start at bar 2 as expected.

The signature changes are now at the correct bars.

However for the first bar where the signature changes to 5/4, the chord changes are at beats 1, 3 and 5 for the 5/4 (looks like it should be beats 1 and 4 only), and for the subsequent 4/4 they are at beats 2 and 4 (should be 1 and 3).

So hopefully the bug fix will correct this as I can't really import this file correctly into Synfire at the moment.  I'll try and work with files without signature changes for the time being.

 

Mo., 11.11.2013 - 12:44 Permalink

I've attached a screen snip of the arrangement to better illustrate the problem.  This is with the offset changed to 0m to get round the signature bug.

You can see at bar 29 it changes to 5/4 but the harmony changes occur on beats 1, 3 and 5 of that bar.  You can see from the notes of the guitar and harpsicord that it should be on beats 1 and 4.

Then it changes back to 4/4 from bar 30 but the harmony changes are incorrectly at beats 2 and 4.

Attachments

Mo., 11.11.2013 - 14:44 Permalink

Thanks. That's tough input for the harmonizer ;-)

Signature changes within a single container are not supported. There needs to be a separate container per each signature. Otherwise he progression inside can not adopt it.

I put this on the bugs list.

Mo., 11.11.2013 - 15:13 Permalink

Great, thanks Andre.  My screen shot doesn't show it, but Synfire did automatically put all the signature changes into separate containers so that bit is fine.