denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: revision of Re: Importing other file formats


From: Richard Shann
Subject: Re: revision of Re: Importing other file formats
Date: Wed, 24 Mar 2021 09:01:14 +0000

On Tue, 2021-03-23 at 18:19 +0000, Richard Shann wrote:
> On Tue, 2021-03-23 at 12:20 -0500, Jeremiah Benham wrote:
> > Richard,
> > Here is an example of the type of thing that I am often needing to
> > open.
> 
> I think there is a bug in Denemo's musicxml import - several bars in
> the second staff just before bar 60 should have a tuplet close at the
> end of the bar but do not.

I think I can see why this bug happens, the TuxGuitar MusicXML has no
indicators to say where triplets start and end - it just starts using
notes with <time-modification> fields(*).

It needs to have entries like this:

        <notations>
          <tuplet type="start" number="1"></tuplet>
        </notations>

and a "stop" one
to indicate how the triplet brackets should group the notes.

Fixes:
        1) modify TuxGuitar's output to include them (are the start and
end of triplets inidcated when there are successive triplets in a piece
in TuxGuitar's TAb?)
        2) make importmusicxml.c work in the absence of the markers
        3) post process the imported music inserting trailing tuplet
close markers at the end of bars if a tuplet is open.

Those are in reverse order of difficulty ....

Richard
(*). This may be a bug - musicXML is so ill-defined that it is not easy
to say.


>  Putting those in just leaves a problem in
> bar 88 of the second staff where Tux appears to have output a 1/32
> note
> instead of a 1/64 note (at the note before the last, the F).
> Correcting
> that and putting in the end tuplet gives the attached output. Is it
> what was expected?
> I notice that this musicxml causes Musescore to crash - can anything
> else import this musicXML?
> 
> It would be nice to have a cut-down version of this musicxml to debug
> the problem with the tuplet ends being missing - perhaps just the
> second staff and just the few bars around bar 60? Finale? Sib? ...
> 
> Richard
>  
> 
> 
> >  There are several reasons that I find tuxguitar annoying so I
> > would rather work on it in denemo instead if I can. I know there
> > are
> > likely to be problems with the the original notation. They are
> > always
> > written by amateurs but they are at least peer reviewed. I find
> > that
> > much of this stuff tends to be homorhythmic with frequent
> > parallelisms. Sometimes there is implied polyphony but not exactly
> > written as such.
> > 
> > Thanks,
> > Jeremiah
> > 
> > 
> > On Fri, Mar 19, 2021 at 3:34 AM Richard Shann <richard@rshann.plus.
> > co
> > m> wrote:
> > > 
> > > On Thu, 2021-03-18 at 16:12 -0500, Jeremiah Benham wrote:
> > > > Richard,
> > > > I just tried exporting a few files in tuxguitar into musicxml
> > > > and
> > > > importing that into denemo. It went rather well. There were a
> > > > few
> > > > details that did not transfer over. With limited testing I
> > > > found
> > > > notehead type, note ties, and tremlondo did not transfer over.
> > > > I
> > > > am
> > > > not sure if that tuxguitars fault or denemo.
> > > 
> > > It is Denemo that has stuff still to add - not difficult for me
> > > to
> > > do
> > > that as I upgraded that code a few months ago, if you like to
> > > send
> > > some
> > > examples.
> > > I'm surprised you didn't hit the fact that I have not implemented
> > > the
> > > import from MusicXML of single-staff polyphony, as guitar music
> > > is
> > > nearly always several parts on a single staff. It's easy enough
> > > to
> > > do
> > > by hand (Staff to Voice), and for a solo guitar piece you could
> > > just
> > > put the cursor at the top and run
> > > 
> > > (while (d-MoveToStaffDown) (d-SetCurrentVoiceAsStaff)))
> > > 
> > > to put all the voices on the top staff.
> > > 
> > > You mention "note ties" - these are imported by Denemo - if you
> > > send an
> > > sample MusicXML file where they are missed I can investigate (I
> > > got
> > > quite used to deciphering MusicXML while writing the exporter a
> > > few
> > > months ago...)
> > > 
> > > Richard
> > > 
> > > 
> > > 
> > > > I am going to test more
> > > > later.
> > > > 
> > > > Thanks,
> > > > Jeremiah
> > > > 
> > > > On Thu, Mar 18, 2021 at 11:57 AM Richard Shann <richard@rshann.
> > > > pl
> > > > us.c
> > > > om> wrote:
> > > > > 
> > > > > This email bounced for me, and anyway I thought of a post-
> > > > > script to
> > > > > it
> > > > > so here it is, revised:
> > > > > 
> > > > > On Thu, 2021-03-18 at 10:52 -0500, Jeremiah Benham wrote:
> > > > > > Richard,
> > > > > > I was wondering what the preferred method of inputting
> > > > > > other
> > > > > > file
> > > > > > formats is. I have been using tuxguitar to open up these
> > > > > > files. I
> > > > > > then
> > > > > > would hide the tab because I want my students reading the
> > > > > > music
> > > > > > and
> > > > > > not looking at tabs. Tuxguitar can export to lilypond and
> > > > > > midi. I
> > > > > > could probably import it with this but I was wondering how
> > > > > > I
> > > > > > can
> > > > > > go
> > > > > > about it with less steps or if I can open it up denemo. I
> > > > > > have
> > > > > > been
> > > > > > looking over tuxguitar source code specifically the portion
> > > > > > of
> > > > > > the
> > > > > > gpx
> > > > > > file parser. My question is, If I were to write something
> > > > > > to
> > > > > > import
> > > > > > it
> > > > > > denemo should I make it a separate utility that converts it
> > > > > > into
> > > > > > lilypond and then have denemo import it. Is that how the
> > > > > > musicxml
> > > > > > and
> > > > > > midi import works?
> > > > > 
> > > > > Both musicxml and midi are imported by custom C-code routines
> > > > > (*).
> > > > > LilyPond
> > > > > is imported by a mixture of Scheme (a lexer-parser in Scheme)
> > > > > and
> > > > > C.
> > > > > I would forget about MIDI import if Tuxguitar can export
> > > > > LilyPond.
> > > > > But
> > > > > whether the Tux->Lily->Denemo route is feasible would depend
> > > > > on
> > > > > what
> > > > > sort of Lily output syntax is exported by Tux - the simplest
> > > > > thing
> > > > > would be to give it a try on a piece with the most complexity
> > > > > you're
> > > > > interested in and if creates valid LilyPond but fails in the
> > > > > import
> > > > > to
> > > > > Denemo just post the LilyPond syntax in case it's just a
> > > > > trivial
> > > > > problem.
> > > > > 
> > > > > The other route would be to write a musicxml exporter for
> > > > > Tuxguitar
> > > > > - I
> > > > > just did this for Denemo, so I'm up to speed on how to write
> > > > > out
> > > > > MusicXML so I cold probably help there.
> > > > > 
> > > > > Richard
> > > > > (*) to be more precise, import musicxml uses C routines to
> > > > > import
> > > > > the
> > > > > musicxml and then generates a scheme script which is executed
> > > > > to
> > > > > create
> > > > > the Denemo score. MIDI import is straight C.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]