Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tutorials: Final steps of march tutorial #57

Merged
merged 16 commits into from
Dec 13, 2018

Conversation

musicEnfanthen
Copy link
Member

This PR goes on tutorial branch and is ready to review.

Please do not simply merge, but let's use this PR to improve it further together.

The PR provides the basic structure with all needed files, steps, instructions and xpath rules for the advanced tutorial (march) developed at #MEIOx . It also moves the individual steps into separate subfolders for a more readable structure. It does not change the main logic (tutorials.js), view (tutorials.html) or style (CSS) in regard of @kepper working on it at the moment.

It certainly still needs the proofreading of a native speaker (would you like to have a look @siennamw ? Everyone else is invited to take a look at it, too.)

@soniawronkowska @margrethesb could you please have a look especially at the proposed "...-desc.html" files here where all the instructions are included and give your feedback here via GitHub's review function? I had to stretch the tutorial to 12 steps in favor of having a better distinction of several issues.

@kepper could you (beside everythig else ;)) have a closer look at the xpath rules provided and the correctness of the content information in the instructions?

Looking forward to your feedback.

Copy link
Member

@ahankinson ahankinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good; just a bit of tidying up for the wording needed.

![Hallingdal Bataljons Marsch](../102_march.png)

By the way: this is the beginning of _Hallingdal Bataljons Marsch_, the Opus 1 of the norwegian composer [Johan Halvorsen](https://de.wikipedia.org/wiki/Johan_Halvorsen) (1864–1935).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"norwegian" -> "Norwegian"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

{"rule": "//mei:scoreDef/mei:staffGrp", "renderanyway": false, "hint": "staffGrp element has to be a child of scoreDef element."},
{"rule": "count(//mei:staffDef) = 1", "renderanyway": false, "hint": "You need one staffDef element."},
{"rule": "count(//mei:staffDef/@*) = 0", "renderanyway": false, "hint": "You need no attribute on the staffDef element."},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You need no..." -> "You do not need an..."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


<p>To group notes under a beam within a measure, the <code>&lt;beam&gt;</code> element is to be used. The <code>&lt;beam&gt;</code> element is a container for a series of explicitly beamed events that begins and ends entirely within a measure.</p>

<p id="tutorialTask">In the editor below, please add a <code>&lt;beam&gt;</code> element at the specified position before adding the two child <code>&lt;note&gt;</code>'s separately (e flat and g).</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No apostrophe after note ("notes" not "note's")

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

<div>
<p id="tutorialGoal">In this step you will learn to encode dotted durations.</p>

<p>To encode a dotted rhythm, you need to use a <code>@dots</code> attribute on <code>&lt;note&gt;</code> element and set the number of dots as the attribute's value, e.g. <code>“1”</code> or <code>“2”</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"on a note element"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,7 @@
<div>
<p id="tutorialGoal">In this step you will learn to encode dotted durations.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You will learn how to encode..."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,23 @@
<div>
<p id="tutorialGoal">Well done, you'are almost there. In this step, you will add the last missing detail of the example: the slur in the third measure.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You'are" -> "You are"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

<div>
<p id="tutorialGoal">Well done, you'are almost there. In this step, you will add the last missing detail of the example: the slur in the third measure.</p>

<p>There are two different ways, to encode a slur in MEI:</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no comma between 'ways' and 'to'

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

<li>You can use a separate <code>&lt;slur&gt;</code> element.</li>
</ol>

<p>In this tutorial step, you will use the second approach: Like dynamics, <code>&lt;slur&gt;</code> elements are control events, too, what means, that they are not encoded as child elements of the corresponding events they are meant to control but in most cases outside the <code>staff</code> elements.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence should be broken into two sentences. "...elements are control events. They are not encoded..."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


<p>In this tutorial step, you will use the second approach: Like dynamics, <code>&lt;slur&gt;</code> elements are control events, too, what means, that they are not encoded as child elements of the corresponding events they are meant to control but in most cases outside the <code>staff</code> elements.</p>

<p>To indicate the starting point and end point of the slur, it is possible to apply a reference to the corresponding <code>@xml:id</code> of a <code>&lt;note&gt;</code> or <code>&lt;chord&gt;</code> element. <code>@xml:id</code>'s are identifiers with an arbitrary but unique character sequence that regularize the naming of an element throughout a document and thus facilitate building links between elements and other resources. For <code>&lt;slur&gt;</code>s, a reference to the <code>@xml:id</code> of an element can be given via the attributes <code>@startid</code> and <code>@endid</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No apostrophe-s after 'xml:id'

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


<p>To indicate the starting point and end point of the slur, it is possible to apply a reference to the corresponding <code>@xml:id</code> of a <code>&lt;note&gt;</code> or <code>&lt;chord&gt;</code> element. <code>@xml:id</code>'s are identifiers with an arbitrary but unique character sequence that regularize the naming of an element throughout a document and thus facilitate building links between elements and other resources. For <code>&lt;slur&gt;</code>s, a reference to the <code>@xml:id</code> of an element can be given via the attributes <code>@startid</code> and <code>@endid</code>.</p>

<p>Along with <code>@startid</code> and <code>@endid</code>, you are supposed to use the following attributes in this step:</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"are supposed to" -> "should"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@musicEnfanthen
Copy link
Member Author

musicEnfanthen commented Dec 5, 2018

@ahankinson Many thanks for your thorough eye and review. Applied all your change requests and fixed the tutorial task for step 9 that turned out to be a copy & paste error.

@ahankinson
Copy link
Member

Do you think this is ready to merge? Any other reviewers want to chime in?

@musicEnfanthen
Copy link
Member Author

Just let's wait a little so that the other requested reviewers have time to take a look.

But feel free to approve (or deny) the latest changes I made after your review meanwhile. ;)

The latest two commits this morning are just updating the PR with the reverted commit on tutorial branch.

Copy link
Member

@kepper kepper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't made my way through all the steps yet. I still find this example quite "extreme" – it really goes beyond everything that I had in mind with this technical setup. That's not necessarily negative, but I'm a little distracted by the sheer amount of information. At step 2, my first reaction was to ask to split this up into two steps. Then I saw the list of steps at the bottom, which is already huge. Before making a statement about the content of this tutorial, I would like to implement the changes to the editor and preview areas that we discussed on Slack. The presentation has greatly improved with your changes already, but maybe this could help some more.

@kepper
Copy link
Member

kepper commented Dec 6, 2018

Btw., @lpugin has found a way to validate against RelaxNG on the client. I don't know how performant that is, and it surely creates less helpful error messages, but together with an MEI-all-anystart.rng, this could greatly simplify the writing of tutorials and reduce the number of xpaths…

@lpugin
Copy link
Member

lpugin commented Dec 7, 2018

Yes: https://jsfiddle.net/lpugin/rmc18zkw/17/
It should be no problem to use anystart.rng . I will test it and see if we can get it integrated in the jekyll website.

@musicEnfanthen
Copy link
Member Author

musicEnfanthen commented Dec 7, 2018

Thanks for all your feedback. You adressed a lot of different issues that are very important.

But as this PR is only about the content of march tutorial, I suggest to keep things separated to not overload this PR with different issues. So let's discuss the visual appearance of the editor window in #64 and about simplifying file validation in #65 (I'll be happy to refactor/adapt it for the march tutorial in another PR if necessary).

@kepper I really understand your concern about this tutorial being "extreme" but I'd like to understand this rather as a compliment and as proof of concept. ;) It even works for a quite elaborated example.

Of course, this tutorial is not intended (and never was) to be the first one that a real absolute beginner is supposed to be confronted with. It is rather for "advanced beginners" that have gone through different simpler tutorials which adress the different topics of the march tutorial in separate "single topic" lectures. I would imagine to have links to these "single topic" tutorials from the different steps of the march tutorial (How to write a note, How to write a beam, How to encode scoreDef?).

The good thing about having the "extreme", or extended" tutorial first, is that we now can just break it down into smaller learning chunks, using a lot of the already existing code or descriptions. I will be happy to work on these, if you agree that this could be a way to go.

@margrethesb told me that she can have a look at this PR in the next days. So I would like to give her a chance to give some feedback before merging this PR.

Would that be OK with everyone?

@kepper
Copy link
Member

kepper commented Dec 7, 2018

I didn't want to complain about the tutorial, and I think the "extreme-ness" has the benefit that we spot problems and limitations in the technical setup right away, and not in one or two years time, when someone would come up with such an example. So it helps to make our tutorial technology future-proof, which, of course, is a good thing. I also like the content. All I tried to say is that it reveals certain aspects that we need address, and where we may have to reconsider some parts of the current setup – which we already did, and where probably no one would complain. Initially, I was hoping to get the first tutorial(s) out by the end of the year, but now I think we should take some more time to do it properly ;-) I think this sounds like a nice contribution to MEC, doesn't it? Anyone out there who wants to join @musicEnfanthen (whom I've already asked) and me?

With that additional time, I think you're absolutely right to wait for feedback from @margrethesb and others. As you said, we can separate out other issues and discuss them elsewhere…

@margrethesb
Copy link
Contributor

Sorry for my late reply, GitHub decided to deny my existence for a few days... Anyway, here goes:

  1. Merging: Go ahead.
  2. Tutorial: This needs more work. I'm not going to try to make suggestions related to the encoding issues, but there are several other things that should be reviewed. Things like lanuage/wording, pedagogy/target group, level of tutorial, whether it should be connected to an gentle text-based intro partly based on older material.
    I'm happy to participate in this work, and with the aim of having it ready for MEC.

@musicEnfanthen
Copy link
Member Author

musicEnfanthen commented Dec 13, 2018

Thanks @margrethesb .

If I understand correctly, this PR is ready to be merged now, and further work has to (and will) be done in other PR's. So anyone with a license to merge is welcome to do so :)

@ahankinson ahankinson merged commit 2b78028 into music-encoding:tutorials Dec 13, 2018
@ahankinson
Copy link
Member

Thank you everyone! This is fantastic.

Once we kick the tires and make sure it all works, an e-mail message to MEI-L from the 'tutorials group' would be brilliant. I think this also illustrates the value of having a work-focused meeting in the Autumn to help move community initiatives forward.

Once again, bravo @musicEnfanthen, @margrethesb and @soniawronkowska .

@ahankinson ahankinson mentioned this pull request Dec 13, 2018
@musicEnfanthen
Copy link
Member Author

Once again, bravo @musicEnfanthen, @margrethesb and @soniawronkowska .

Thanks, but not to forget mastermind @kepper who, beside everything else, provided idea and programmatical logic for all of this. Thanks a lot!

@musicEnfanthen
Copy link
Member Author

As already mentioned in my comment to #66, tutorials are not ready to be included on master. Once they can be released from tutorials to master branch, we will be happy to provide an email message to the community.

bwbohl pushed a commit that referenced this pull request May 9, 2022
Tutorials: Final steps of march tutorial
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants