C3 Automatic Rules Validator (CARV) for REAPER [v1: Jan 21]

  • This topic is empty.
Viewing 15 posts - 1 through 15 (of 62 total)
  • Author
    Posts
  • #389784
    pksage
    Keymaster

      Download CARV v1 (January 21, 2014)

       

      Back at the peak of RBN, a very helpful guy named Casto21 made a script for REAPER that automatically detected “hard” violations of the RBN rules. It was a really useful way to make sure you didn’t derp and include obvious errors in your charts. The script, which is run by REAPER’s ReaScript library, was written in Perl, but Cockos removed Perl support from REAPER in version 4.13. Alexof was the white knight this time, converting Casto’s script to Python. And now here we are — RBN is (mostly) dead, but customs live on! I patched up some issues with the script (it was crashing when I got it) and tweaked it to work with the C3 customs template, and now I’m calling it the C3 Automatic Rules Validator (CARV). I’ll try to add additional validations to it as we come up with useful ones (and I figure out how the hell to code them in Python).

       

      CARV cannot catch everything wrong with your charts. Not even close. CARV detects a handful of specific errors, and is very useful for checking out overdrive and vocals lyrics at a glance, but it’s no substitute for quality authoring. Its main purpose is just to catch silly mistakes you might have forgotten about.

       

      CARV should work with both REAPER 3.x and REAPER 4.x, but we have some reports of it not working in 3.x right now. If you use 3.x, give it a try and let me know.

       


      How to Install/Use

       

      1. Download and install Python 2.7.6. (Filehippo mirror) This is necessary for REAPER to run scripts. It is not malware and will not mess up your computer. Download it from the Python site if you’re paranoid, but the Filehippo mirror generally goes way faster.
      2. Download the CARV script package and extract it wherever you want. (It is a RAR archive; these archives are opened with WinRAR or other free tools. Google it.)
      3. In REAPER, go to Options -> Preferences… -> ReaScript, check the “Enable” box, and click OK. This screen should detect Python, i.e. “Python: python27.dll is installed.” If it’s not, try restarting REAPER. If it’s still not, make sure you got the right version of Python. Python 3.3 has issues with REAPER.
      4. In REAPER, go to Actions -> Show action list… and click New/load… under ReaScript. Browse to the CARV file from step 2 (RBNCheck.py) and click Open.
      5. Double-click “Custom: RBNCheck.py” in the actions list to run the script. It should open the results page in your default web browser after ~5-10 seconds. From now on, you can just run this custom action to execute the script.

      To update CARV, just replace RBNCheck.py with the new version. When you run the REAPER action, it will automatically use the new script.

       


      Here’s everything CARV should catch, if I haven’t broken anything:

       

      General

      • Generates an Overdrive visualization chart for all instruments (example)
      • Checks for EVENTS entries other than text events or the track name

      Vocals/Harmonies

      • Generates a full lyrics sheet for PART VOCALS and all HARM parts (example)
      • Highlights mid-phrase capitalized words that shouldn’t be capitalized (Jan 21: now correctly ignores “I”, “God”, etc.)
      • Highlights words with illegal characters (commas, periods, quotation marks)
      • Checks for space between each note tube

      Guitar/Bass

      • Checks that gem colors used on Expert are used in all reductions
      • Checks for gems under each solo marker
      • Expert: Checks for four-note chords
      • Expert: Checks for three-note chords with both G and O
      • Hard/Medium: Checks that all chords on Expert are chords here
      • Hard: Checks for three-note chords
      • Hard: Checks for GO chords
      • Medium: Checks for GB, RO, and GO chords
      • Medium: Checks for forced HOPOs
      • Easy: Checks for chords

      Drums

      • Checks for OD or drum rolls that overlap a drum fill
      • Checks for OD that starts at the end of a drum fill
      • Checks for tom animation gems without corresponding Pro Drums markers
      • Checks for notes on E/M/H that do not exist on Expert
      • Medium: Checks for three-limb hits (kick with two gems)
      • Easy: Checks for kicks paired with a gem

      Keys

      • Checks that Keys OD matches Pro Keys OD
      • Checks that gem colors used on Expert are used in all reductions
      • Checks for gems under each solo marker
      • Expert/Hard: Checks for four-note chords
      • Medium: Checks for three-note chords
      • Easy: Checks for chords

      Pro Keys

      • Hard: Checks for four-note chords
      • Medium: Checks for three-note chords
      • Easy: Checks for chords

       


      Update History

      • January 21, 2014: Original release. Changes from Alexof’s version include a bugfix for HARM1/2/3 detection and better mid-phrase capitalization detection.

      Known Issues

      • Vocals: It should probably ignore the note-spacing rule for phrase markers and OD
      • The tag needs fixin’

      Future Enhancements

      • Guitar/Bass/Keys: Correct sustain lengths on all difficulties
      • Guitar/Bass: Check for consecutive forced HOPOs on a single gem (thanks, ws54)
      • Vocals: Spacing at the start and end of phrases
      • PK: Chord spacing on MHX
      • PK: Note-to-note range spacing on EMH

       


      If you have any issues with the script, have a problem with any of the existing rules, or would like to see any new rules added, post in this thread!

      #412617
      ws54
      Participant

        Pretty Useful stuff.

         

        Two small things:

         

        “Guitar: Hard/Medium: Checks that all chords on Expert are chords here” – I was under the assumption that this was a suggestion and not a rule. There are times when the chart is too difficult to play on Medium when following this rule. In those instances I think it should be relaxed so that chords could become single notes.

         

        “Guitar/Bass/Keys: Correct sustain lengths on all difficulties” – This is fairly dependent on BPM. There are also many situations where the song has a sustained note and you want to make it so but to follow the rule on sustains would make the sustain stubby. So you extend the sustain a little

        #412621

        In REAPER, go to Actions -> Show action list… and click New/load… under ReaScript.

        REAPER closes/crashes when I click on “New/load”

        I think I may be fudging up here somewhere.

         

        Running REAPER 4.591.

        #412624
        Farottone
        Keymaster
          I patched up some issues with the script (it was crashing when I got it) and tweaked it to work with the C3 customs template, and now I’m calling it the C3 Automatic Rules Validator (CARV). I’ll try to add additional validations to it as we come up with useful ones (and I figure out how the hell to code them in Python).

           

          Your awesomeness cannot be overstated.

           

          Download and install Python 2.7.6.

           

          This cannot be stressed enough. Do NOT download v3.x, it will cause issues. If you see V3 and think “Hey, it’s new, it’s shinier!” you will casue grief to yourself.

          #412625
          Farottone
          Keymaster
            Pretty Useful stuff.

             

            Two small things:

             

            “Guitar: Hard/Medium: Checks that all chords on Expert are chords here” – I was under the assumption that this was a suggestion and not a rule. There are times when the chart is too difficult to play on Medium when following this rule. In those instances I think it should be relaxed so that chords could become single notes.

             

            “Guitar/Bass/Keys: Correct sustain lengths on all difficulties” – This is fairly dependent on BPM. There are also many situations where the song has a sustained note and you want to make it so but to follow the rule on sustains would make the sustain stubby. So you extend the sustain a little

             

            Just to clarify: this is a check reporting what’s offending the RBN general rules. You are correct in pointing out those exceptions, and when you do encounter those exceptions you can ignore them if they actually are exceptions. <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_wink.gif”>

            #412628
            ws54
            Participant

              Another Future Rule should be:

               

              Guitar/Bass: Checks HOPOs so that identical notes as the previous note are not HOPOs. (to make sure there is some sort of lane change.)

              #412636
              pksage
              Keymaster

                Two small things:

                 

                “Guitar: Hard/Medium: Checks that all chords on Expert are chords here” – I was under the assumption that this was a suggestion and not a rule. There are times when the chart is too difficult to play on Medium when following this rule. In those instances I think it should be relaxed so that chords could become single notes.

                 

                “Guitar/Bass/Keys: Correct sustain lengths on all difficulties” – This is fairly dependent on BPM. There are also many situations where the song has a sustained note and you want to make it so but to follow the rule on sustains would make the sustain stubby. So you extend the sustain a little

                This tool doesn’t automatically make any changes, so I’m going to err on the side of catching too much rather than catching too little. I’ll probably make the INI file a little more robust so you can turn “suggestion”-level checks on or off.

                 

                Sustains on X and H would be “does it incorrectly touch the following note?” The E/M check would just be “is there at least 1/4th of space before the following note?” Nothing else.

                 

                REAPER closes/crashes when I click on “New/load”

                I think I may be fudging up here somewhere.

                 

                Running REAPER 4.591.

                No idea offhand, sorry. Have you restarted your PC since installing Python? That might help. Otherwise, try searching the Cockos forums for ReaScript-related crashes.

                 

                Guitar/Bass: Checks HOPOs so that identical notes as the previous note are not HOPOs. (to make sure there is some sort of lane change.)

                Agreed.

                #412756

                May I suggest that you add a check to make sure no two notes more than an octave apart are played simultaneously on Pro Keys? (This issue has come up more than once in a C3 chart)

                #412757
                pksage
                Keymaster

                  Ooh, good one. We can also do that for Hard and Medium. I’d like to check for quick jumps that are too far on EMH, too, like…”if next note is outside of range and is

                  #413366

                  Any idea why this is happening?

                  http://i.imgur.com/XcSv8wZ.png

                  (Assuming that CARV works even if not everything in the chart is finished since that is what I tested it on)

                   

                   

                  Windows 8.1

                  REAPER v.4.402

                  #413371
                  pksage
                  Keymaster

                    Do you have any tracks with no content in them at all, especially EVENTS? I didn’t write the original script, but it looks like at least one practice section might be required in EVENTS for the script to run. Put in a dummy practice section if you don’t have any and run it again; if that fixes it, I’ll update it to work without practice sections.

                     

                    If that’s NOT it, please upload your RPP (just the RPP, don’t need the media file) and I’ll take a look.

                    #413373
                    Do you have any tracks with no content in them at all, especially EVENTS? I didn’t write the original script, but it looks like at least one practice section might be required in EVENTS for the script to run. Put in a dummy practice section if you don’t have any and run it again; if that fixes it, I’ll update it to work without practice sections.

                    My EVENTS and VENUE sections didn’t have anything but it seems adding a practice section got it working. Thanks!

                    #413374
                    pksage
                    Keymaster

                      Cool! I’ll try and get a fix in for that when I have time.

                      #414561

                      In REAPER, go to Actions -> Show action list… and click New/load… under ReaScript.

                      REAPER closes/crashes when I click on “New/load”

                      I think I may be fudging up here somewhere.

                       

                      Running REAPER 4.591.

                      Yep, me too, same (latest) version of REAPER, it detects the python dll, I’ve installed the 32-bit version of Python 2.7.6.

                       

                      edit: I’ve tried everything I can think of, installed 2.7.6 multiple times, also tried pointing it at the python 2.7 install I have set up on my work drive, nope, Reaper instantly closes.

                       

                      This is literally the case every time I try to use python for anything. The amount of install fuckery python requires is absolutely ridiculous, and it’s impossible to debug. I’m a professional software developer who (has to) use python at work, and it’s notorious for never working for arcane reasons there too. I could not hate it more.

                       

                      edit2: okay now that I’ve vented, I started a thread with more info over on the Reaper forums, hopefully someone has seen it before.

                      #414569
                      Farottone
                      Keymaster

                        Guys, do NOT go over Reaper 4.22. It will break things (quantizing, track title, etc.) and it will prevent you from using CARV and other future neat features.

                      Viewing 15 posts - 1 through 15 (of 62 total)
                      • You must be logged in to reply to this topic.
                      Back to top button