Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Development of ABC/HR for Java (Read 36660 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Development of ABC/HR for Java

Reply #50
forgot to mention: i'm using Version 0.53a from rpp3po's link.
i'm eager to get this running and do some abx tests. this program seems promising. maybe i can debug the playback issue.. although i don't have much java audio coding experience.


I'm no Java guru, but the dump/traceback looks to me like some problem connecting up with the audio card.

Development of ABC/HR for Java

Reply #51
forgot to mention: i'm using Version 0.53a from rpp3po's link.
i'm eager to get this running and do some abx tests. this program seems promising. maybe i can debug the playback issue.. although i don't have much java audio coding experience.


Doesn't seem to work with 24 bit .wav files.

Development of ABC/HR for Java

Reply #52
I guess the code is build around Java's old sound system: the Java Sound Audio Engine, which doesn't support anything higher than 16 bit. If someone would rewrite the output code to employ the newer (since JDK 1.5) Direct Audio Device mixer with SourceDataLines, the only limits are those of the output device. I could have a look at it, but in my spare free time I'm working on a high quality, multi-platform stream switching library, right now. Improving old legacy code might even deserve higher respect, but writing your own stuff from scratch is certainly more fun...

Development of ABC/HR for Java

Reply #53
I guess the code is build around Java's old sound system: the Java Sound Audio Engine, which doesn't support anything higher than 16 bit. If someone would rewrite the output code to employ the newer (since JDK 1.5) Direct Audio Device mixer with SourceDataLines, the only limits are those of the output device. I could have a look at it, but in my spare free time I'm working on a high quality, multi-platform stream switching library, right now. Improving old legacy code might even deserve higher respect, but writing your own stuff from scratch is certainly more fun...


On the plus side,  the rpp3po Java ABC/hr-ABX  1.6 code generates far fewer transisents while switching than what we've seen here lately.

Development of ABC/HR for Java

Reply #54
What's the status of ABC/HR? If nobody is currently working on it, I can maybe give it a try. I did learn Java on my university, but I do not have any experiences with audio. So, I would be happy if someone can assist me:
- where can I find a proper explanation of the depreciated and current audio API from Java?
- which files should be altered? Only PlaybackThread.java?

I won't promise anything, but maybe I can give it a shot this week (I guess I can spend some hours).

Development of ABC/HR for Java

Reply #55
abchr_java_0.53a_src.zip ABXResultsPanel.java line 89
Code: [Select]
            guessingField.setText(p<0.001?"<0.001":Float.toString(((int)(p*1000))/1000.0f));
            guessingField.setBackground(p<=0.01?Color.GREEN:(p<=0.05?Color.YELLOW:Color.RED));

This yields a p-value with additional zero. For example, when the accurate p-value is 0.0078125, the text will say "0.0070".

Also, Color.RED is hard for protanopia to read the black text.
Code: [Select]
            guessingField.setBackground(p<=0.01?new Color(0,255,144):(p<=0.05?new Color(255,255,80):new Color(255,88,64)));


The improved color version is the bottom. This is easier to read, although the change is minimal.

And the explanation "Prob. you were guessing" is misleading. I'd say: "Prob. you were just lucky" or simply "p-value".

Development of ABC/HR for Java

Reply #56
abchr_java_0.53a_src.zip ABXResultsPanel.java line 90
I improved the color to be readable for all.
Code: [Select]
            guessingField.setBackground(p<=0.01?(new Color(0,232,192)):(p<=0.05?(new Color(255,248,0)):(new Color(255,80,32))));