Locking Synthesia into Score View only?

Collaborate with other modders to make Synthesia the way you want it.
Always the latest versions: [ colors.xml | ui.xml ]
Read the Getting Started topic to learn how important it is to MERGE YOUR CHANGES every time you download a new dev preview.
Post Reply
sladeburns
Posts: 13

Post by sladeburns »

Hi,

Is there any way someone could help me lock Synthesia into Score View only mode?

I normally teach a Music Technology/Garageband class in a public school setting where piano skills are just a part of the curriculum. I have been fine with using Synthesia in the past to develop agility and finger independence but it is impossible to keep kids from "cheating" with the falling blocks when I want them to focus on score reading. My school has decided that I am going to teach a pure Piano class as well this year so any help would be appreciated. The best solution for me would be to be able to turn the lock on or off at an admin level or at the file level but permanently off is acceptable.

Thanks!
Bavi_H
Posts: 121

Post by Bavi_H »

On the Windows version, I was able to use a resource editor app to modify the graphics resources used for the falling notes to be transparent images.

I don't have a Mac, so I'm not sure how possible that is to do on the Mac version. I know it's possible to right click on the Synthesia app and choose "Show Package Contents" to see the resources inside of it, but I don't know if it's possible to modify the resources without causing a problem. In particular, I can download the Mac version and peek inside of it using 7-Zip, and I noticed the "_CodeSignature" folder contains a file that lists a hash of every resource file. So I'm afraid modifying any resources might cause the app to fail a code signature check?


In the Windows version, the graphic resources for the falling notes are embedded TGA files called:

PLAY_NOTES
PLAY_NOTES@2X
PLAY_NOTES@2X@2X


In the Mac version, they're the following files in the Resources folder of the app package:

play_Notes.tga
play_Notes@2x.tga
play_Notes@2x@2x.tga
Bavi_H
Posts: 121

Post by Bavi_H »

Here's another method that involves putting the following customized files in the system-wide Synthesia folder on each computer:
  • An override.xml file to turn on the sheet music display setting and turn off the falling notes display setting.
  • A bindings.xml file to remove the F5 shortcut key to toggle the falling notes display.
  • A ui.xml file to do the following:
    • Hide the switch on the game play screen to turn on the falling notes display.
    • Hide the "Settings" button on the main screen to prevent your students from going into the Shortcut settings to re-add a shortcut key to toggle the falling notes display.
    • Hide the "Manage Profiles" button at the bottom of the list of profiles shown when you click on the profile name on the main screen. This is another way to get into the Settings screen.
    • Hide the "Get More Songs" button at the bottom of the songs list. This is another way to get into the Settings screen.

Background Information

Read the page Classroom Setup Guide for the basic procedure of copying settings files to the system-wide Synthesia folder on each computer.

Read the post Getting Started with Modding Synthesia for an introduction about the ui.xml file.
  • * Note: the link in that post will always provide the most recent ui.xml which may be for a development preview version. You can get the ui.xml for the Synthesia version you are currently using by extracting the default ui.xml from within Synthesia itself. On Windows, use 7-Zip or a resource editor to extract a copy of the SETTING_UI item and rename it to ui.xml. On Mac, go to the Applications folder, right click on the Synthesia app, choose "Show Package Contents", look in there for the ui.xml file and make a copy of it somewhere else so you can customize it.


Custom File Details

Make an override.xml file that contains the following:

Code: Select all

<?xml version="1.0"?>
<Settings version="1">
  <setting key="Gameplay.ShowFallingNotes">0</setting>
  <setting key="Gameplay.ShowSheetMusic">1</setting>
</Settings>

Make a bindings.xml file that contains the following:

Code: Select all

<?xml version="1.0"?>
<InputBindingList version="1">
  <Action name="Toggle All Notes Hidden" version="1" />
</InputBindingList>

Open your working copy of ui.xml and find each one of the following four lines at various places in the file:

Code: Select all

<ui id="falling" inherit="settingsArea" size="470, 44" />

<ui inherit="leftTitleButton" id="settings" tid="settings" />

<ui id="profileEditButton" inherit="settingsButton" autoWidthPadding="-1" size="388, 44" position="9, 212" tid="manageProfiles" />

<ui id="moreSongs" inherit="button" position="10, 742" align="left, center" anchor="left, bottom" tid="libraryMoreSongs" size="0, 38" autoWidthPadding="6" fontSize="14" />
For each of these lines, add an item visible="0" before the closing /> like this:

Code: Select all

<ui id="falling" inherit="settingsArea" size="470, 44" visible="0" />

<ui inherit="leftTitleButton" id="settings" tid="settings" visible="0" />

<ui id="profileEditButton" inherit="settingsButton" autoWidthPadding="-1" size="388, 44" position="9, 212" tid="manageProfiles" visible="0" />

<ui id="moreSongs" inherit="button" position="10, 742" align="left, center" anchor="left, bottom" tid="libraryMoreSongs" size="0, 38" autoWidthPadding="6" fontSize="14" visible="0" />

Now you can put these custom override.xml, bindings.xml, and ui.xml files in the system-wide Synthesia folder on each computer as described at the bottom of the Classroom Setup Guide page.
sladeburns
Posts: 13

Post by sladeburns »

Wow! Now that is some useful detail!

I'll experiment on a computer not in use to see how it works for me. It seems doable though.

Thanks Bavi_H!
Post Reply