292
QString partname = track->name();
291
293
int len = song->roundUpBar(lastTick+1);
294
sigmap.tickValues(len, &bar2, &beat, &tick);
296
QString partname = track->name();
299
int st = -1; // start tick current part
300
int x1 = 0; // start tick current measure
301
int x2 = 0; // end tick current measure
303
for (int bar = 0; bar < bar2; ++bar, x1 = x2) {
304
x2 = sigmap.bar2tick(bar+1, 0, 0);
306
// this measure is busy!
309
iEvent i1 = tevents->lower_bound(x1);
310
iEvent i2 = tevents->lower_bound(x2);
312
if (i1 == i2) { // empty?
314
MidiPart* part = new MidiPart(track);
316
part->setLenTick(x1-st);
317
// printf("new part %d len: %d\n", st, x1-st);
318
part->setName(partname);
325
st = x1; // begin new part
328
for (iEvent i = i1; i != i2; ++i) {
329
Event event = i->second;
330
if (event.type() == Note) {
331
int off = event.tick() + event.lenTick();
339
MidiPart* part = new MidiPart(track);
341
// printf("new part %d len: %d\n", st, x2-st);
342
part->setLenTick(x2-st);
343
part->setName(partname);
296
if(config.importMidiSplitParts)
301
sigmap.tickValues(len, &bar2, &beat, &tick);
304
int st = -1; // start tick current part
305
int x1 = 0; // start tick current measure
306
int x2 = 0; // end tick current measure
308
for (int bar = 0; bar < bar2; ++bar, x1 = x2) {
309
x2 = sigmap.bar2tick(bar+1, 0, 0);
311
// this measure is busy!
314
iEvent i1 = tevents->lower_bound(x1);
315
iEvent i2 = tevents->lower_bound(x2);
317
if (i1 == i2) { // empty?
319
MidiPart* part = new MidiPart(track);
321
part->setLenTick(x1-st);
322
// printf("new part %d len: %d\n", st, x1-st);
323
part->setName(partname);
330
st = x1; // begin new part
333
for (iEvent i = i1; i != i2; ++i) {
334
Event event = i->second;
335
if (event.type() == Note) {
336
int off = event.tick() + event.lenTick();
344
MidiPart* part = new MidiPart(track);
346
// printf("new part %d len: %d\n", st, x2-st);
347
part->setLenTick(x2-st);
348
part->setName(partname);
354
// Just one long part...
355
MidiPart* part = new MidiPart(track);
358
part->setLenTick(len);
359
part->setName(partname);
347
363
//-------------------------------------------------------------
348
364
// assign events to parts