Jump to content

Chlipouni

Member
  • Posts

    909
  • Joined

  • Last visited

  • Days Won

    1
  • Country

    France
  • Donations

    0.00 USD 

Posts posted by Chlipouni

  1. Hi Guvnor513,

     

      With the DDC tab of the Toolkit, you can remove all chords in a song and keep only the root note by using the "ddc_chords_remover" ramp-up model.

     

      You can do this directly on a psarc file (without having to unpack and pack again the package).

  2. @@raynebc,

     

      The use of only one level of handShapes may have a little caveat about the displayed chord name in the game.

     

      In your last example, the first occurrence of G chord at time 1.750 has a chordId (11) which is not the same as this of the associated handShape (12).

      The RSToolkit always uses the "chordName" attribute of the chord to set the name which is displayed in the game. In this specific case, the chordTemplate of this chord has no name (or possibly another name because this chord does not have all notes of the G chord).

     

      When I have used the two levels handShapes technique for a chord, the used  name was the one referenced by the handShape.

     

      Of course, this case can also be managed in EOF.

     

    Thank you

  3. @@raynebc,

     

      My goal was to give this information for avoiding these display glitches in future developments.

      Removing unnecessary "chordNote" tags will only simplify the XML files.

      In my opinion, this could be an improvement but with a low level of priority.

     

      For your information the RSToolkit already used these few lines of code in the "addChordNotes" function :

      // don't export chordnotes if there are no techniques
      bool noTechniques = c.NoteMask.All(m => m == 0);
      if (noTechniques)
          return -1; 
  4. @@raynebc & @@firekorn,

     

     By working on the relationship between chords, chord templates and handshapes, I have found the precise case in which the display glitches appear.

     

     1) The "chordNote" tag is not mandatory

      In the XML file, the "chordNotes" tag of a chord can be omitted if the notes have no technics.

     

      The following example works fine :

    <chordTemplates count="1">
      <chordTemplate chordName="G5" displayName="G5" finger0="1" finger1="3" finger2="4" finger3="-1" finger4="-1" finger5="-1" fret0="3" fret1="5" fret2="5" fret3="-1" fret4="-1" fret5="-1" />
    </chordTemplates>
    ...
    <chord time="6.000" linkNext="0" accent="0" chordId="0" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    ... 

    2) The exception is for open notes

     If the chordTemplate contains an open note which is not defined in the "chordNote" tag, the display glitch appears.

     

     To avoid the display glitch, a solution is adding only the open notes inside the "chordNotes" tag.

     The following example works fine (without display glitch) :

    <chordTemplates count="9">
      <chordTemplate displayName="D" chordName="D" fret0="-1" fret1="-1" fret2="0" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
      <chordTemplate displayName="C" chordName="C" fret0="-1" fret1="3" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="3" finger2="2" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="2" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="G" chordName="G" fret0="3" fret1="2" fret2="0" fret3="0" fret4="3" fret5="3" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
      <chordTemplate displayName="" chordName="" fret0="3" fret1="2" fret2="0" fret3="0" fret4="-1" fret5="-1" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="-1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="0" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
    </chordTemplates>
      ...
    <chord time="6" linkNext="0" accent="0" chordId="0" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down">
      <chordNote time="6" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="2" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
    </chord>
    <chord time="7" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="7.5" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="7.75" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="8" linkNext="0" accent="0" chordId="2" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down">
      <chordNote time="8" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="3" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
      <chordNote time="8" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="5" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
    </chord>
      ... 
    • Like 1
  5. @@raynebc & @@firekorn,

     

     By working on the relationship between chords, chord templates and handshapes, I have found the precise case in which the display glitches appear.

     

     1) The "chordNotes" tag is not mandatory

      In the XML file, the "chordNotes" tag of a chord can be omitted if the notes have no technics.

     

      The following example works fine :

    <chordTemplates count="1">
      <chordTemplate chordName="G5" displayName="G5" finger0="1" finger1="3" finger2="4" finger3="-1" finger4="-1" finger5="-1" fret0="3" fret1="5" fret2="5" fret3="-1" fret4="-1" fret5="-1" />
    </chordTemplates>
    ...
    <chord time="6.000" linkNext="0" accent="0" chordId="0" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    ... 

    2) The exception is for open notes

     If the chordTemplate contains an open note which is not defined in the "chordNotes" tag, the display glitch appears.

     

     To avoid the display glitch, a solution is adding only the open notes inside the "chordNotes" tag.

     The following example works fine (without display glitch) :

    <chordTemplates count="9">
      <chordTemplate displayName="D" chordName="D" fret0="-1" fret1="-1" fret2="0" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
      <chordTemplate displayName="C" chordName="C" fret0="-1" fret1="3" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="3" finger2="2" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="2" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="1" finger5="-1" />
      <chordTemplate displayName="G" chordName="G" fret0="3" fret1="2" fret2="0" fret3="0" fret4="3" fret5="3" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
      <chordTemplate displayName="" chordName="" fret0="3" fret1="2" fret2="0" fret3="0" fret4="-1" fret5="-1" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="-1" finger5="-1" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="0" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
      <chordTemplate displayName="" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
    </chordTemplates>
      ...
    <chord time="6" linkNext="0" accent="0" chordId="0" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down">
      <chordNote time="6" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="2" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
    </chord>
    <chord time="7" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="7.5" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="7.75" linkNext="0" accent="0" chordId="1" fretHandMute="0" highDensity="1" ignore="0" palmMute="0" hopo="0" strum="down" />
    <chord time="8" linkNext="0" accent="0" chordId="2" fretHandMute="0" highDensity="0" ignore="0" palmMute="0" hopo="0" strum="down">
      <chordNote time="8" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="3" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
      <chordNote time="8" linkNext="0" accent="0" bend="0" fret="0" hammerOn="0" harmonic="0" hopo="0" ignore="0" leftHand="-1" mute="0" palmMute="0" pluck="-1" pullOff="0" slap="-1" slideTo="-1" string="5" sustain="0" tremolo="0" harmonicPinch="0" pickDirection="0" rightHand="-1" slideUnpitchTo="-1" tap="0" vibrato="0" />
    </chord>
      ... 
  6. If I use your example with the current release of the Toolkit, all chords except the first one in a handshape are not fully displayed, so I can't see the chord variations (only repeated chord boxes).

     

    If I use your example with my specific release of the Toolkit (with the fully working "chordDensity" attribute) It works fine.

     

    So, your way to do it can make the job.

     

    EDIT : #248 issue has been opened in GitHub in order to have the full control of the "chordDensity" tag

  7. I am searching the simplest way to manage this in EOF :

    - by avoiding the modification of existing chords with ghost notes (which add a lot of confusion)

    - by simply adding an handshape phrase to set the finger positions (as we are doing it for apeggios)

     

    FYI, the official DLC : "Heart Shaped Box" is using this method.

     

    In addition, the example you have referenced breaks the consistency between chords and their associated handShape ("chordId" attributes are not in consistency), and I have never seen this method in official DLCs.

     

    Nevertheless, I am curious to know how I can do this with the current release of EOF :

     

    Thanks

  8. Hey guys. New to all this business - and I must say it looks amazing.

     

    So I tried to follow the procedure above with someone elses CDLC  - as I am a beginner, I tried to add DD for personal benefit.

    It creates new CDLC psarc file, which is larger - but in game I still see one liner- with no DD added (it starts at 100%, and does not allow to change difficulty in rift viewer).

     

    Can anyone take a look or have an advice of what did I do wrong? I basically unpacked the psarc - added DD to xml and repacked it. I also tried the psarc "patching" version - the easier one. To no avail:

     

    Here are the files - that is xml WITH ADDED DD (after patching) - http://www.mediafire.com/view/cdq7mikdlvv2aps/smignrosesdontcry_lead.xml

     

    And this is the source CDLC I was trying to modify:

    http://www.mediafire.com/view/cdq7mikdlvv2aps/smignrosesdontcry_lead.xml

     

    The new XML file seems to have DD inside.

     

    When you add DD on a psarc file, don't keep the original one in the Rocksmith folder.

  9. In-game, what would be the visual difference between using nested handshapes versus using multiple adjacent handshapes?

     

    As a chordTemplate is used to define both :

    - the notes of the chord

    - the chord name

    - the finger positions

     

    Using adjacent handshapes for several variations of the same chord don't allow to fix the same finger positions for the entire handshape phrase.

    That's why nested handshapes are useful :

    - the global handshape defines the global time period and the finger positions (which are fixed all along the handshape phrase)

    - the nested handshapes define the different variations of the chord (notes which are used for each variation) inside the handshape phrase

     

    In EOF, a "handshape phrase" is used to define the finger positions of arpeggios. It can now also be used to define the finger positions of nested handshapes.

  10. I'm particularly interested in the changes about chord density. Will the toolkit now be able to explicitly honor the highDensity attribute independently of the handshape tags? For the sake of maintaining the last few years of compatibility, I think I'd like to leave the "crazy" status in use for marking a chord as low density, should I just plan on adding a new status to indicate high density?

     

    I totally agree with you about that.

    With my update, I can control the displaying of each occurrence of a chord with the "highDensity" attribute. Even for the first occurrence of an handshape ...

     

    Some of EOF's recent changes with handshapes should mean that visually similar/identical results should be achievable without overlapping handshapes, but let me know if I'm wrong about that.

     

      With the recent changes in EOF, I can't implement my second example with chord's variations and fixed finger positions.

     

      The reason is that in the game, each note or chord can be associated with two distinct handShapes, but in the current release of the Toolkit, they are never used together.

      Standard chords are associated with the first handShape level and notes in arpeggios with the second one.

     

      What I have changed for my testing purpose is to keep the current association of each chord with its usual handShape and added a new association with the global handShape at the second position.

     

      To use the nested handShapes logic, we are not so far in EOF :

      - no change about chords and their relationships with handShapes and chordTemplate 

      - when a handShape phrase is used in EOF :

         - generate a new chordTemplate (if not already exists) to indicate its finger positions

         - generate a new handShape which :

            - references the chordTemplate ("chordId" attribute)

            - has a startTime a few ms before the first chord or note in its time period

            - has en endTime a few ms after the last chord or note in its time period (sustain included)

     

      So, as you can see, the nested handShape feature should be simple to implement, the main handShape is generated by the "handShape phrase" and the nested handShapes are generated for each sequence of similar chords.

     

      Another two little things :

      - EOF should allow us to define freely the finger positions for the "handShape phrase" (remove checks to allow incomplete finger positions)

      - The use of displayed ghost notes for the first event of the "handShape phrase" to define its finger positions adds confusion :

          - I think about the use of the [Edit note frets / fingering] dialog box to define the new chordTemplate, but without displaying the notes

          - The first note of a "handShape phrase" is not always the one which defines the global finger positions

     

    EDIT : I am working on my own release of the RSToolkit. I need to share these findings before asking the RSToolkit team to add these modifications ...

  11. Hi all guys !

     

    This post is like a small gift in this Christmas time !

     

    I) Current brakes in your creativity

     

    In my opinion, the last improvements in EOF and DDC tools are difficult because we are facing some limitations about the SNG generation process in the RSToolkit.

    That's why I decided to try to understand the code of this part of the tool.

    To my surprise, I managed to obtain interesting results with only minor changes (less than 20 lines modified in "Sng2014FileWriter.cs").

     

    I need to share with you my findings as they could have some impacts on the existing tools like EOF and DDC.

    Do not hesitate to give your opinion about these possible improvements ...

     

    II) Does the "chordDensity" attribute could work as expected ?

     

      YES : I have found a way to switch between a full chord display and the repeated chord box only by setting the "highDensity" attribute and by using only one handShape !

     

    III) Is it possible to share the same finger positions for a sequence of similar chords (but not exactly the same ones) ?

     

      YES : with embedded handShapes technique (as used in some official DLCs)

     

      Let's start with the following example :

      handshapes.png

     

      There are only three main handShapes for chords D, C and G.

      In each of these main handShapes, you can have various chords variations (less strings used) :

      - 2 variations in the D chord sequence

      - 3 variations in the C chord sequence

      - 3 variations in the G chord sequence (and as you can see, the full G chord is not really used)

     

      To obtain a working solution, I had to modify the XML file like this :

    ...
      <chordTemplates count="9">
        <chordTemplate displayName="D" chordName="D" fret0="-1" fret1="-1" fret2="0" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
        <chordTemplate displayName="-nop" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="2" fret4="3" fret5="2" finger0="-1" finger1="-1" finger2="-1" finger3="1" finger4="3" finger5="2" />
        <chordTemplate displayName="C" chordName="C" fret0="-1" fret1="3" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="3" finger2="2" finger3="-1" finger4="1" finger5="-1" />
        <chordTemplate displayName="-nop" chordName="" fret0="-1" fret1="-1" fret2="2" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="2" finger3="-1" finger4="1" finger5="-1" />
        <chordTemplate displayName="-nop" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="1" fret5="0" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="1" finger5="-1" />
        <chordTemplate displayName="G" chordName="G" fret0="3" fret1="2" fret2="0" fret3="0" fret4="3" fret5="3" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
        <chordTemplate displayName="-nop" chordName="" fret0="3" fret1="2" fret2="0" fret3="0" fret4="-1" fret5="-1" finger0="2" finger1="1" finger2="-1" finger3="-1" finger4="-1" finger5="-1" />
        <chordTemplate displayName="-nop" chordName="" fret0="-1" fret1="-1" fret2="0" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
        <chordTemplate displayName="-nop" chordName="" fret0="-1" fret1="-1" fret2="-1" fret3="0" fret4="3" fret5="3" finger0="-1" finger1="-1" finger2="-1" finger3="-1" finger4="3" finger5="4" />
      </chordTemplates>
    
    ...
    
          <chords count="18">
            <chord time="6" chordId="0" highDensity="0">
              <chordNote time="6" fret="0" leftHand="-1" string="2" />
              <chordNote time="6" fret="2" leftHand="1" string="3" />
              <chordNote time="6" fret="3" leftHand="3" string="4" />
              <chordNote time="6" fret="2" leftHand="2" string="5" />
            </chord>
            <chord time="7" chordId="1" highDensity="0">
              <chordNote time="7" fret="2" leftHand="1" string="3" />
              <chordNote time="7" fret="3" leftHand="3" string="4" />
              <chordNote time="7" fret="2" leftHand="2" string="5" />
            </chord>
            <chord time="7.5" chordId="1" highDensity="1">
              <chordNote time="7.5" fret="2" leftHand="1" string="3" />
              <chordNote time="7.5" fret="3" leftHand="3" string="4" />
              <chordNote time="7.5" fret="2" leftHand="2" string="5" />
            </chord>
            <chord time="7.75" chordId="1" highDensity="1">
              <chordNote time="7.75" fret="2" leftHand="1" string="3" />
              <chordNote time="7.75" fret="3" leftHand="3" string="4" />
              <chordNote time="7.75" fret="2" leftHand="2" string="5" />
            </chord>
            <chord time="8" chordId="2" highDensity="0">
              <chordNote time="8" fret="3" leftHand="3" string="1" />
              <chordNote time="8" fret="2" leftHand="2" string="2" />
              <chordNote time="8" fret="0" leftHand="-1" string="3" />
              <chordNote time="8" fret="1" leftHand="1" string="4" />
              <chordNote time="8" fret="0" leftHand="-1" string="5" />
            </chord>
            <chord time="9" chordId="3" highDensity="0">
              <chordNote time="9" fret="2" leftHand="2" string="2" />
              <chordNote time="9" fret="0" leftHand="-1" string="3" />
              <chordNote time="9" fret="1" leftHand="1" string="4" />
              <chordNote time="9" fret="0" leftHand="-1" string="5" />
            </chord>
            <chord time="9.5" chordId="4" highDensity="0">
              <chordNote time="9.5" fret="0" leftHand="-1" string="3" />
              <chordNote time="9.5" fret="1" leftHand="2" string="4" />
              <chordNote time="9.5" fret="0" leftHand="-1" string="5" />
            </chord>
            <chord time="9.75" chordId="4" highDensity="1">
              <chordNote time="9.75" fret="0" leftHand="-1" string="3" />
              <chordNote time="9.75" fret="1" leftHand="2" string="4" />
              <chordNote time="9.75" fret="0" leftHand="-1" string="5" />
            </chord>
            <chord time="10" chordId="6" highDensity="0">
              <chordNote time="10" fret="3" leftHand="2" string="0" />
              <chordNote time="10" fret="2" leftHand="1" string="1" />
              <chordNote time="10" fret="0" leftHand="-1" string="2" />
              <chordNote time="10" fret="0" leftHand="-1" string="3" />
            </chord>
            <chord time="11" chordId="7" highDensity="0">
              <chordNote time="11" fret="0" leftHand="-1" string="2" />
              <chordNote time="11" fret="0" leftHand="-1" string="3" />
              <chordNote time="11" fret="3" leftHand="3" string="4" />
              <chordNote time="11" fret="3" leftHand="4" string="5" />
            </chord>
            <chord time="11.5" chordId="8" highDensity="0">
              <chordNote time="11.5" fret="0" leftHand="-1" string="3" />
              <chordNote time="11.5" fret="3" leftHand="3" string="4" />
              <chordNote time="11.5" fret="3" leftHand="4" string="5" />
            </chord>
            <chord time="11.75" chordId="8" highDensity="1">
              <chordNote time="11.75" fret="0" leftHand="-1" string="3" />
              <chordNote time="11.75" fret="3" leftHand="3" string="4" />
              <chordNote time="11.75" fret="3" leftHand="4" string="5" />
            </chord>
            <chord time="12" chordId="6" highDensity="0">
              <chordNote time="12" fret="3" leftHand="2" string="0" />
              <chordNote time="12" fret="2" leftHand="1" string="1" />
              <chordNote time="12" fret="0" leftHand="-1" string="2" />
              <chordNote time="12" fret="0" leftHand="-1" string="3" />
            </chord>
            <chord time="12.5" chordId="6" highDensity="1">
              <chordNote time="12.5" fret="3" leftHand="2" string="0" />
              <chordNote time="12.5" fret="2" leftHand="1" string="1" />
              <chordNote time="12.5" fret="0" leftHand="-1" string="2" />
              <chordNote time="12.5" fret="0" leftHand="-1" string="3" />
            </chord>
            <chord time="12.75" chordId="6" highDensity="1">
              <chordNote time="12.75" fret="3" leftHand="2" string="0" />
              <chordNote time="12.75" fret="2" leftHand="1" string="1" />
              <chordNote time="12.75" fret="0" leftHand="-1" string="2" />
              <chordNote time="12.75" fret="0" leftHand="-1" string="3" />
            </chord>
            <chord time="13" chordId="7" highDensity="0">
              <chordNote time="13" fret="0" leftHand="-1" string="2" />
              <chordNote time="13" fret="0" leftHand="-1" string="3" />
              <chordNote time="13" fret="3" leftHand="3" string="4" />
              <chordNote time="13" fret="3" leftHand="4" string="5" />
            </chord>
            <chord time="13.5" chordId="8" highDensity="0">
              <chordNote time="13.5" fret="0" leftHand="-1" string="3" />
              <chordNote time="13.5" fret="3" leftHand="3" string="4" />
              <chordNote time="13.5" fret="3" leftHand="4" string="5" />
            </chord>
            <chord time="13.75" chordId="8" highDensity="1">
              <chordNote time="13.75" fret="0" leftHand="-1" string="3" />
              <chordNote time="13.75" fret="3" leftHand="3" string="4" />
              <chordNote time="13.75" fret="3" leftHand="4" string="5" />
            </chord>
          </chords>
    
          <anchors count="3">
            <anchor time="6" fret="2" width="4" />
            <anchor time="8" fret="1" width="4" />
            <anchor time="10" fret="2" width="4" />
          </anchors>
    
          <handShapes count="14">
            <handShape chordId="0" endTime="7.9" startTime="5.9" />
            <handShape chordId="0" endTime="6.875" startTime="6" />
            <handShape chordId="1" endTime="7.875" startTime="7" />
            <handShape chordId="2" endTime="9.9" startTime="7.9" />
            <handShape chordId="2" endTime="8.875" startTime="8" />
            <handShape chordId="3" endTime="9.475" startTime="9" />
            <handShape chordId="4" endTime="9.875" startTime="9.5" />
            <handShape chordId="5" endTime="13.9" startTime="9.9" />
            <handShape chordId="6" endTime="10.875" startTime="10" />
            <handShape chordId="7" endTime="11.475" startTime="11" />
            <handShape chordId="8" endTime="11.875" startTime="11.5" />
            <handShape chordId="6" endTime="12.875" startTime="12" />
            <handShape chordId="7" endTime="13.475" startTime="13" />
            <handShape chordId="8" endTime="13.875" startTime="13.5" />
          </handShapes>
    

    The XML chord tags has been simplified to clarify this example (all other attributes are used in the original file).

     

    All the magic is in the handShapes section :

    - The main handshapes start at 5.9, 7.9 and 9.9 and never have a note or a chord at their startTime position. They are used to define the handShape period and the finger positions.

    - The embedded handshapes are used as usual, and associated to each sequence of chord variation (the highDensity attribute of chords tells which occurrences need to be fully displayed).

     

    Here is the final result in the game (package generated with my specific release of the RSToolkit) :

     

    IV) A handShape should allow to define partial finger positions

     

    YES : as requested by Berneer a few weeks ago, sometimes we want to indicate only the fixed hand positions to play a sequence of notes (but not for all strings)

     

    handshapes2.png

     

    In this example, the chords (with ghost notes) are only here to indicate the finger positions of the handShape phrase.

    In the second handShape phrase, I didn't want to have the note on the lower string (I removed it from the XML file).

     

    The XML code looks like this :

      <chordTemplates count="2">
        <chordTemplate chordName="Amadd4" displayName="Amadd4" finger0="-1" finger1="1" finger2="3" finger3="1" finger4="1" finger5="1" fret0="-1" fret1="5" fret2="7" fret3="5" fret4="5" fret5="5" />
        <chordTemplate chordName="A7sus4/C" displayName="A7sus4/C" finger0="-1" finger1="1" finger2="1" finger3="1" finger4="1" finger5="1" fret0="-1" fret1="5" fret2="5" fret3="5" fret4="5" fret5="5" />
      </chordTemplates>
      ...
      <notes count="38"> ... </notes>
      <chords count="0"/>
      ...
      <handShapes count="4">
        <handShape chordId="0" endTime="9.251" startTime="5.9" />
        <handShape chordId="1" endTime="11.626" startTime="9.5" />
        <handShape chordId="0" endTime="15.251" startTime="11.5" />
        <handShape chordId="1" endTime="17.626" startTime="15.5" />
      </handShapes>
      ...
    

    And the final result in game is :

     

    Now, the votes are open  :D

    • Like 8
  12. Sorry for my questions about handshape phrases and repeated chord boxes, I was using the previous release of EOF (12-2-2015)  :huh:

     

    Nevertheless, the following requests are still valid :

    - HandShape phrase need to be adjusted when its starting note is resnaped

    - RS2 XML export generates a lot of similar chordTemplates (majority of them are never referenced by a "chordId" attribute)

    - "Precise select like" doesn't make the difference between chords with ghost notes and the same chords without ghost notes

     

    Thank you

  13. @@Berneer,

     

      I have a similar sequence which works in the custom I am making.

      As in your example, the first occurence of the repeated chord is not the starting one of my handshape phrase.

      By chance, this is a result of the resnap function I have used on the starting chord of the handShape phrase (as EOF automatically add new notes at the beginning of the HandShape phrase when existing ones are moved)

     

      I will try to investigate more this day to understand the mechanics inside ...

     

    Thank you

×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. - Privacy Policy