FAQ

Organizing Songs – How To…

Avoid program crashes

Most likely you have tried opening a song with incompatible audio/video data. Converting the problematic audio to standard MP3 (CBR, 128kbs, 44.1khz, joint stereo) and video to standard MPG or AVI (DivX, XVid) might help.

Earlier Yass versions (v0.9.9 and less) use the Fobs package for rendering video data, which causes the Java Runtime Environment to crash with an EXCEPTION_ACCESS_VIOLATION for incompatible audio/video data. You can verify if this problem applies to you by checking the Java stack trace: If it includes com.omnividea.media.parser.video.VideoTrack.readFrame or a similar Fobs-specific method, please re-encode your song data.

You can also remove the Fobs library (fobs4jmf.dll, libfobs4jmf.so, or libfobs4jmf.jnilib) from the Yass program folder. Yass will then start without video functionality.

Avoid “Out of Memory”

The Windows EXE’s heap is initally 48MB, and maximal 512MB. Use the following command line option in case you are using the JAR program version and require a larger amount of memory.

java -Xms=48m -Xmx=512m -jar yass.jar

Move articles to the end of artist

Example: “The Howlers” should be listed as “Howlers, The” in the library.

  1. Goto preferences, library sorting tab. Is the option “Move articles to end of artist” checked?
  2. Enable details view. Did you set the song’s language? Articles are only appended if the language is set correctly.
Set entire folder to respective edition

Example: Tag all songs in folder “Greatest Hits” with edition “Greatest Hits”

  • Group by folder
  • Select folder “Greatest Hits”
  • Select all songs
  • Set edition to “Greatest Hits”
Compare similar songs
  • Select multiple songs in the library
  • Edit
Exclude foreign-language songs from print

Example: Print only English and German songs.

  • Group by Languages
  • Goto “English;German” (if the item doesn’t exist, add it to the language group in the preferences)
  • Print
Correct all songs with a misspelled language

Example: Set language “Englisch” to “English” for all songs.

  • Group by languages
  • Goto “Englisch”
  • Select all
  • Drag and drop to “English” (or use menu)

Auto-correct invalid medley start/ends

Medley start/end positions are given in beats in the comments section (MEDLEYSTARTBEAT, MEDLEYENDBEAT tags). If they do not correspond to an existing note beat or respective note end (note beat + note length), the song is marked with a tag error.

You can detect invalid medley values by switching to the “Errors” filter.

Auto-correction moves the invalid medley value to the closest preceding note. To execute it on selected songs, either click

  • Correct tags: then all safe tag auto-corrections are executed
  • Correct song: only the medley auto-corrections are executed
The “Correct Tags” action includes medley start/end.
Correct only medley-start/end errors, nothing else. 

Editing Songs

File encoding changes to UTF-8 without BOM (Ubuntu, MacOS)

You have a song that plays well with Ultrastar, but after storing the file with Yass you cannot use the song anymore in Ultrastar.

Most likely, your system-default encoding is incompatible with Ultrastar, as it is in the case of MacOS (AppleRoman) or Ubuntu (UTF-8 without BOM). Please check if the file is encoded as ASCII, Latin-1, Latin-9, or ANSI (CP-1252). Yass will store such files using the the system-default encoding. You can either

  • change the file encoding manually to UTF-8
  • use the option “always-store-as-utf-8” in preferences->filetypes
  • start Yass with the option -Dfile.encoding=ISO-8859-15. This will enforce Latin-9, a superset of Latin-1 containing additional European characters. Thanks to Hermann for reporting this!

Since January 2024 (v2.5.0), Yass uses UTF-8 for changing saves in the song editor and for creating new files (library > file > new…). For compatibility, the encoding is not changed by batch-correcting multiple files (library > errors > multiselect/all > correct).

Audio playback does not work (Linux, OpenJDK)

On Linux, when playing the song, nothing happens. The editor and the piano work, but you will hear no audio.

The default Java version is OpenJDK on most Linux systems. OpenJDK does not yet support master gain and playback will fail. You can resolve the problem by installing Oracle’s Java.
To switch from OpenJDK to Oracle Java on Kubuntu Saucy:

sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Exchange the digit in the last line if you want to install Java 7 or 6.

MIDI playback does not work

First check if MIDI works with other tools, for example by playing a MIDI file with your default audio player.

  • A) Cannot hear MIDI with other tools:
    Check the hardware settings of your MIDI/Synthesizer device and its gain/mute settings in your system’s audio mixer. Some users reported that MIDI worked after stopping their ICQ.
  • B) MIDI works, but not with Yass:
    Check if your Java installation is missing a soundbank. Try to install it manually, see here: java.sun.com/products/java-media/sound/soundbanks.html

Yass version 1.0.1 includes a piano soundbank, check if you are using the required JDK7 (Java 1.7).

Strange timing in Ultrastar editor

You have finetuned your notes perfectly in the Yass editor. The song plays fine with Ultrastar, only in the Ultrastar editor the notes seem misplaced.

Most likely, your song is encoded with variable bitrate (VBR) instead of constant bitrrate (CBR). You can check the encoding in the Yass library’s song information window. If you see VBR instead of CBR, please re-encode to CBR.

Re-encoding to CBR can be done, for example, with the free audio editor Audacity and the LAME MP3 encoder plugin. You can set the MP3 bitrate (128-192 kbps) in the Audacity preferences, under MP3 export settings.

Sometimes I cannot hear very short notes

Silent playback for some short notes results from an MP3 Layer III optimization called “bit reservoir”. In these cases audio information is compressed in earlier frames, outside the range of playback.

You can resolve this issue by re-encoding the MP3 with disabled bit reservoir, using for example RazorLame (see tools) or directly the Lame option -nores. The Fraunhofer MP3 codec does not have such an option, but a 320kbs rate is reported to work there, too. Details can be found here: How accurate is Yass?

Avoid program crashes

Most likely you have tried opening a song with incompatible audio/video data. Converting the problematic audio to standard MP3 (CBR, 128kbs, 44.1khz, joint stereo) and video to standard MPG or AVI (DivX, XVid) might help.

Earlier Yass versions (v0.9.9 and less) use the Fobs package for rendering video data, which causes the Java Runtime Environment to crash with an EXCEPTION_ACCESS_VIOLATION for incompatible audio/video data. You can verify if this problem applies to you by checking the Java stack trace: If it includes com.omnividea.media.parser.video.VideoTrack.readFrame or a similar Fobs-specific method, please re-encode your song data.

You can also remove the Fobs library (fobs4jmf.dll, libfobs4jmf.so, or libfobs4jmf.jnilib) from the Yass program folder. Yass will then start without video functionality.

Avoid “Out of Memory”

The Windows EXE’s heap is initally 48MB, and maximal 512MB. Use the following command line option in case you are using the JAR program version and require a larger amount of memory.

java -Xms=48m -Xmx=512m -jar yass.jar

Show notes outside visible area

Solution: Switch to multi-page view (Page-Down) or manually toggle heights alignment (press L).

Explanation: In single-page view only 10 height lines are shown above the page baseline. If notes span a larger height range, they fall outside the visible area. Multi-page views always show the full range of heights.

Define startup file

Example: Start editor with C:\song.txt

  • Mouse: Drop file on Yass executable (Windows)
  • Command line: yass.exe C:\song.txt
Page trimming rules

In the preferences, you can set the minimum number M of beats before+after pagebreak manually. Default is M=0, which sets pagebreaks automatically using these trimming rules for pauses between page breaks:

  • Less than 2 beats: break immediately.
  • 2-8 beats: break 2 beats before new line.
  • 9-12 beats: break 3 beats before new line
  • 13-16 beats: break 4 beats before new line
  • More than 17 beats: break after 10 beats
  • More than 2s: break after 1s.
  • More than 4s: break after 2s.

These rules do not ensure a smooth transition between levels; you might experience jumps when dragging notes in automatic-trim mode. Contact me if you think you have developed a better algorithm.

Golden bonus formula

Yass supports golden bonus (for notes) and phrase bonus (full lines hit).

The default maximum score without any bonus is 8.000. If the maximum phrase bonus is 1.000, that gives you 1.000 for a golden bonus to sum up to 10.000.

Notes span one or more beats, points are given per beat. Golden beats give double points.

But you will hardly be able to mark golden notes with an exact 1.000 golden bonus. Therefore Yass checks only if you are near that value.The default allowed variance is 200 points, resulting in a 800-1200 bonus range.

This is the formula:
GoldenScore / MaxScore = 2*GoldenBeats / (TotalBeats + GoldenBeats)

Example:
Golden=1000, MaxScore=8000, TotalBeats=1500--> GoldenBeats=100

Which is roughly 7% of the beats or every 15th note if they would have equal length. The 200 golden score variance then allows a variance of less than 19 beats. (1/79 TotalBeats).

Why don’t you use samples instead of synthesized clicks?

I don’t know how. A bug in the Java sound system (see e.g. here: 6251460) prevents short sound clips to be played correctly.
Samples would definitively improve finetuning. If you can produce a working example that can play many small clicks very close together – for example this sample from Freesound -, send me the code and I’ll integrate it.

Text is blurred on hi-dpi monitors

See DoubleDee73’s comment here: This can be mitigated by right-clicking on the .exe file in the explorer > Properties > Compatibility > Change high DPI settings > Check the checkbox “Override high DPI scaling behavior” > “System (enhanced)”

Can you help me finetuning this song?

No, but I can give some advice.

  • before finetuning
    • assure you have 300-400 bpm
    • start with separating words into syllables, one note for each syllable
    • then move each line to its estimated position
  • then start finetuning
    • always separate words (by gaps)
    • separate syllables, if possible
    • shorten the notes as much as possible, especially for words having silent endings.
    • auto-correct minor errors (there is an option to auto-adjust page breaks when moving notes)
    • if a page break seems impossible, rehear your line and move/shorten the last note, or move the next note
  • remember you can copy/paste repeating melodies