Skip to content

Inconsistent rhythm analysis when using HumdrumFile.read() #96

@malcolmsailor

Description

@malcolmsailor

There seems to be an issue reading certain humdrum files using the approach given in the example in the readme.

Here, the test file I'm using is humdrum-data/polish/toeschi-carl-joseph/pl-sa--236-a-vi-40--001-001_sinfonia-allegro.krn. I save the following code copied from the example in README in cli/testread.cpp and compiling and running it on the test file:

#include "humlib.h"

using namespace std;
using namespace hum;

int main(int argc, char **argv) {
  if (argc != 2) {
	 return 1;
  }
  HumdrumFile infile;
  if (!infile.read(argv[1])) {
	 return 1;
  }
  return 0
}

When I run that, I get

Error: Inconsistent rhythm analysis occurring near line 722
Expected durationFromStart to be: 190 but found it to be 377/2
Line: 8G\       .       8B-/    .       16dd\yy .       16f/    .       .       .       .       .

On the other hand, if I use the file-reading approach that I found in cli/durations.cpp, as follows, I don't get any error:

#include "humlib.h"

using namespace std;
using namespace hum;

int main(int argc, char **argv) {
  Options options;
  options.process(argc, argv);

  HumdrumFileStream instream(options);
  HumdrumFile infile;
  while (instream.read(infile)) {
  }

  return 0;
}

I'm not sure whether this is a bug in the code in the README, a bug in the HumdrumFile.read method, or an error in the file (although I found similar behavior with a number of files in the polish/ folder).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions