Adding Color Themes

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
Nicholas
Posts: 13170

Post by Nicholas »

Be sure to read the Getting Started guide if you haven't already.

There are some comments near the top of the file that describe the format and range of values you're allowed to use for each <color> element. Be sure to read them carefully.

Beyond that, skip down a ways in the file until you find a <theme id="Synthesia Classic"> section. This is all there is to defining new themes. Add a new <theme> element after that one with some id (which is the name that will appear in Synthesia). You can then redefine as many or few of the existing top-level colors as you like.

One really easy way to reuse values (like a particular hue) in color themes is to use a <scalar> element. They only contain a single value, but that value can be reused as many times as you want. Here is one example:

Code: Select all

<scalar id="baseHue" value="200" />
<color id="someColor" hsv="baseHue, 70, 30" />
<color id="anotherColor" hsv="baseHue, 20, 60" />
You can even add, multiply, and divide scalar values to achieve certain effects:

Code: Select all

<color id="accentColor" hsv="baseHue + 180, 20, 60" />
Once you define a theme that relies heavily on just a handful of scalars, it becomes incredibly easy to base new themes off those. For example, the "Crystal Blue" theme makes heavy use of a scalar named "baseHue". So, to change almost every color you only need to add one line to your new theme:

Code: Select all

<theme id="My New Theme">
  <scalar id="baseHue" value="20" />
</theme>
That single line is nearly the only difference between the "Crystal Blue" and "Tangerine" themes!
User avatar
DC64
Posts: 830

Post by DC64 »

I think a theme for the general layout is great. Also maybe we could create a theme for falling notes.
I like the automatic colors made, but I think some custom combo colors for instruments would be cool.
(like for 3 pianos: bass is blue, yellow is middle, green is high treble instead of the blue/green/orange)
"And now for something completely different."
Colorchanger
Posts: 5

Post by Colorchanger »

I suggest that we will add more note colors, like Pink, White, Black, Grey and more. Sorry I'm new here.
mohit
Posts: 2

Post by mohit »

DC64 wrote:Also maybe we could create a theme for falling notes.
Hi..Does this mean we can change the color of the falling notes? How can we do that?
Any help is really appreciated.

Mohit
Nicholas
Posts: 13170

Post by Nicholas »

Not yet. I solved some technology hurdles in 8.4 to make it possible, but didn't have quite enough time to get all the way there. I hope to allow custom key/note coloring soon.
robin2
Posts: 1

Post by robin2 »

Is it already possible to have custom key/note coloring

I like to have 4 colors 1 for each string of my violin
so starting from G D A and E and going up :)
Nicholas
Posts: 13170

Post by Nicholas »

I'm always interested when I hear from people using Synthesia with instruments other than the piano. Violin, huh? I'm curious if it's very helpful to you. I always imagined Synthesia would be really hard to use with non-piano instruments.

Otherwise, unfortunately the answer is still "Not yet". Though like I mentioned in the previous post, all the technology hurdles are out of the way. It's really come down to me being busy with other features.

For your purposes, you could simulate it by putting all the same notes into different MIDI channels in your song file. So all the G's might use channel 1, all the D's use channel 2, and so on. Then in Synthesia the notes would show up in different colors. You'd need a MIDI editor like Sekaiju and it'd be a lot of manual effort, but it's possible.
ShackledBehemoth
Posts: 1

Post by ShackledBehemoth »

Cool Idea, but how long ees dees project going to take? :ugeek:
Nicholas
Posts: 13170

Post by Nicholas »

Which project did you mean? Custom color themes are in the latest Synthesia 10 development preview and can be created in just a few minutes, each.
Zwoop
Posts: 1

Post by Zwoop »

It'd be nice to be able to have the full spectrum color from the lowest note, to the highest note. Or at the very least an individual color for each note of the octave.

That way you could learn to "read" notes as colors and play faster. There's a chilean girl who has developed such system.
Nicholas
Posts: 13170

Post by Nicholas »

Do you mean like this video? :D
Chompy
Posts: 184

Post by Chompy »

What about using gradients and patterns? :idea:

e.g, select pattern from directory, must be an image, and the image will be applied as a colour theme. A gradient can have as many as 256 colours, or 2 colours in it. (you can even have 4 colours or 16 colours to add a retro look!) 8-)

Take a look here. https://en.wikipedia.org/wiki/List_of_v ... e_palettes

Patterns MUST be a greyscale image with alpha transparency, or they won't look right. ;)
Chompy
Posts: 184

Post by Chompy »

I forgot to mention that this would look good on the notes too, as well as everything.
Nicholas
Posts: 13170

Post by Nicholas »

I do likes me some old-timey color palettes. :D

One of my tiny hobby projects defaults to giving you the old, DOS EGA palette. Lots of fond memories in those colors.
2headogre
Posts: 1

Post by 2headogre »

I might have missed the topic somewhere, but is a wider palette of colors for falling notes available now, other than the given blue, green, orange, yellow, purple and red?
Thanks.
Nicholas
Posts: 13170

Post by Nicholas »

The video (from 2015 :? ) that I linked a few posts up is still the latest news. Although since then I've taken on the help of a part-time graphics engine programmer and they've cleared all the major remaining obstacles. Now all that's left is for me to actually sit down and add the feature.

The bad news is that the "Proper, arbitrary note colors!" task is currently on line 1551 of the list. (So the graph there will have to be considerably below zero before it'll be time to work on the feature. Sorry for the delay!)
Post Reply