Skip to content

Commit

Permalink
Merge pull request #15 from DoubleDee73/2024.9
Browse files Browse the repository at this point in the history
2024.9
  • Loading branch information
DoubleDee73 authored Sep 13, 2024
2 parents 19fa059 + 87bee58 commit 4ec32e1
Show file tree
Hide file tree
Showing 32 changed files with 990 additions and 286 deletions.
55 changes: 54 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,40 @@ Binaries can be found in the [Release Section](https://github.com/DoubleDee73/Ya

Min. Requirement is Java 21 with JavaFX (e. g. Open JDK ZuluFX https://www.azul.com/downloads/)

For Yass Reloaded to offer fully fledged audio format support, it is recommended, that you install FFmpeg:
https://www.ffmpeg.org/download.html
- Windows (<code>winget install --id=Gyan.FFmpeg -e</code>) - Check out: https://www.gyan.dev/ffmpeg/builds/
- MacOS (<code>brew install ffmpeg</code>)
- Linux (<code>sudo apt install ffmpeg</code>)
While Yass also works without FFmpeg, there are known issues, such as:
- On Windows, if using MP3 or M4a and if the GAP is less than 1000 (aka singing starts immediately), the notes will seem out-of-sync
- On Mac, notes are generally out-of-sync, unless WAV is used

Also, it is highly recommended to download Ultrastar Creator to get you started (https://github.com/UltraStar-Deluxe/UltraStar-Creator)

# Starting Yass Reloaded
If you install Yass Reloaded with the Windows installer, you can simply run <code>Yass.exe</code>

Alternatively, you can download the jar file and start it from the console:

On Windows, you can simply do this: <code>java -jar Yass-Reloaded-2024.9.jar</code>

On Mac/Linux, it is recommended, that you add a runtime variable like so:

<code>export PATH_TO_FX=path/to/javafx-sdk-[whateverversion]/lib</code>

and then start the jar like so:

<code>java --module-path $PATH_TO_FX --add-modules javafx.swing,javafx.media -jar Yass-Reloaded-2024.9.jar</code>

# Developers

Basic setup is described in the Wiki: https://github.com/SarutaSan72/Yass/wiki/Developers

# Yass uses
- Java FX
- Java Look & Feel Graphics Repository
- JavaZoom JLayer / MP3SP / VorbisSPI and Tritonus Sequencer
- FFmpeg
- iText
- Jazzy Spell Checker
- JInput
Expand Down Expand Up @@ -51,3 +75,32 @@ GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

# Troubleshooting
## Cannot find FFmpeg?
Yass Reloaded has a built-in auto-detection for FFmpeg.
It will look in any PATH environment variables and try to find both ffmpeg and ffprobe.
If you are sure, you have installed ffmpeg, maybe you did not choose to have the PATH variable automatically configured.
If this is the cae, then it is recommended, that you add the FFmpeg path to your PATH variables

You can also add the path to FFmpeg to the Yass Reloaded configuration file. The user.xml should be in the ~/.yass/ folder

There should be an entry:

<code>&lt;entry key="ffmpegPath">&lt;/entry></code>

If it's not, add it, and put the FFmpeg path before &lt;/entry>, e. g.:

<code>&lt;entry key="ffmpegPath">/usr/bin&lt;/entry></code>

or

<code>&lt;entry key="ffmpegPath">C:\ffmpeg\bin&lt;/entry></code>

depending on your OS.

It is also possible, that when you use Automator on Mac to start Yass Reloaded,
that due to restrictions to the PATH variables, the auto-detection fails.

In this case, start Yass Reloaded from the console. If FFmpeg is then detected, the path
will be written into the user.xml, and you can use Automator again.
10 changes: 5 additions & 5 deletions launch4j.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>gui</headerType>
<jar>.\target\Yass-Reloaded-2024.6-jar-with-dependencies.jar</jar>
<jar>.\target\Yass-Reloaded-2024.9-jar-with-dependencies.jar</jar>
<outfile>.\target\yass.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
Expand All @@ -27,12 +27,12 @@
<timeoutErr>true</timeoutErr>
</splash>
<versionInfo>
<fileVersion>2.5.6.0</fileVersion>
<txtFileVersion>Yass Reloaded 2024.6</txtFileVersion>
<fileVersion>2.5.7.0</fileVersion>
<txtFileVersion>Yass Reloaded 2024.9</txtFileVersion>
<fileDescription>Yass Reloaded - Karaoke Editor</fileDescription>
<copyright>(C)2023 DoubleDee</copyright>
<productVersion>2.5.6.0</productVersion>
<txtProductVersion>2024.6</txtProductVersion>
<productVersion>2.5.7.0</productVersion>
<txtProductVersion>2024.9</txtProductVersion>
<productName>Yass Reloaded</productName>
<companyName>yass-reloaded.com</companyName>
<internalName>yass</internalName>
Expand Down
2 changes: 1 addition & 1 deletion nsis-installer.nsi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name "Yass"

OutFile ".\target\yass-installer-2024.6.exe"
OutFile ".\target\yass-installer-2024.9.exe"

Unicode true
SetCompressor lzma
Expand Down
24 changes: 15 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

<groupId>yass</groupId>
<artifactId>Yass-Reloaded</artifactId>
<version>2024.6</version>
<version>2024.9</version>
<dependencies>
<dependency>
<groupId>com.danielreese</groupId>
Expand All @@ -33,13 +33,6 @@
<scope>system</scope>
<systemPath>${project.basedir}/lib/nsisant-1.3.jar</systemPath>
</dependency>
<dependency>
<groupId>javazoom.jl</groupId>
<artifactId>JLayer</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jlayer.jar</systemPath>
</dependency>
<dependency>
<groupId>net.davidashen.text</groupId>
<artifactId>Hyphenator</artifactId>
Expand Down Expand Up @@ -134,7 +127,7 @@
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>2.4-M1-groovy-4.0</version>
<version>2.4-M4-groovy-4.0</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -179,6 +172,19 @@
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-exec -->
<dependency>
<groupId>net.bramp.ffmpeg</groupId>
<artifactId>ffmpeg</artifactId>
<version>0.8.0</version>
</dependency>

</dependencies>

<properties>
Expand Down
2 changes: 1 addition & 1 deletion src/yass/SongHeader.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ public void windowClosing(WindowEvent e) {
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createHorizontalStrut(5));
int duration = actions.getMP3() != null ? (int)(actions.getMP3().getDuration() / 1000) : 10000;
startSpinner = new TimeSpinner(I18.get("mpop_audio_start"), (int)table.getStart(), duration);
startSpinner = new TimeSpinner(I18.get("mpop_audio_start"), (int)table.getStart() * 1000, duration);
startSpinner.setLabelSize(labelSize);
startSpinner.setSpinnerWidth(100);
startSpinner.getSpinner().setFocusable(false);
Expand Down
52 changes: 52 additions & 0 deletions src/yass/UsdbFile.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Yass Reloaded - Karaoke Editor
* Copyright (C) 2009-2023 Saruta
* Copyright (C) 2023 DoubleDee
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package yass;

import java.math.BigDecimal;

public class UsdbFile {
private String fname;
private BigDecimal mtime;
private String resource;

public String getFname() {
return fname;
}

public void setFname(String fname) {
this.fname = fname;
}

public BigDecimal getMtime() {
return mtime;
}

public void setMtime(BigDecimal mtime) {
this.mtime = mtime;
}

public String getResource() {
return resource;
}

public void setResource(String resource) {
this.resource = resource;
}
}
104 changes: 104 additions & 0 deletions src/yass/UsdbSyncerMetaFile.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/*
* Yass Reloaded - Karaoke Editor
* Copyright (C) 2009-2023 Saruta
* Copyright (C) 2023 DoubleDee
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package yass;

public class UsdbSyncerMetaFile {
private int song_id;
private String meta_tags;
private boolean pinned;
private UsdbFile txt;
private UsdbFile audio;
private UsdbFile video;
private UsdbFile cover;
private UsdbFile background;
private int version;

public int getSongId() {
return song_id;
}

public void setSongId(int song_id) {
this.song_id = song_id;
}

public String getMetaTags() {
return meta_tags;
}

public void setMetaTags(String meta_tags) {
this.meta_tags = meta_tags;
}

public boolean isPinned() {
return pinned;
}

public void setPinned(boolean pinned) {
this.pinned = pinned;
}

public UsdbFile getTxt() {
return txt;
}

public void setTxt(UsdbFile txt) {
this.txt = txt;
}

public UsdbFile getAudio() {
return audio;
}

public void setAudio(UsdbFile audio) {
this.audio = audio;
}

public UsdbFile getVideo() {
return video;
}

public void setVideo(UsdbFile video) {
this.video = video;
}

public UsdbFile getCover() {
return cover;
}

public void setCover(UsdbFile cover) {
this.cover = cover;
}

public UsdbFile getBackground() {
return background;
}

public void setBackground(UsdbFile background) {
this.background = background;
}

public int getVersion() {
return version;
}

public void setVersion(int version) {
this.version = version;
}
}
Loading

0 comments on commit 4ec32e1

Please sign in to comment.