Jump to content
Sandor / HARD

HCM & HARDBASS tools

Recommended Posts

Hi Sandor,

 

Could you explain what kind of lowpass filter is Hardbass using, and what simplification did you use in order to implement it on Atari?

 

Also, in your Java code SAMPLE_RATE is defined to be 1950 Hz, why not a more accurate value 1773447.0 / (8 * 114), (around 1944.57 Hz)?

Edited by antrykot

Share this post


Link to post
Share on other sites

Hi Sandor,

 

Could you explain what kind of lowpass filter is Hardbass using, and what simplification did you use in order to implement it on Atari?

 

Also, in your Java code SAMPLE_RATE is defined to be 1950 Hz, why not a more accurate value 1773447.0 / (8 * 114), (around 1944.57 Hz)?

 

Hello,

 

Thanks for your questions.

 

> Could you explain what kind of lowpass filter is Hardbass using, and what simplification did you use in order to implement it on Atari?

It's not a decent/standard low pass filter anymore as it's over simplified.

First I experimented with FIR and IIR filters and various waveforms at around 16KHz in Java at 4bit.

Of course I got amazing results. Then I started to lower the frequency and when I got to the real frequency I wanted to use it turned out that multiple waveforms made no real sense and the different filter implementations & configurations all sounded kind of the same at this low frequency.

So I got the idea to drift away from a proper filter implementation as it was very resource hungry (they used multiple history values and had to re-calculate some values for their sample calculation each time you set the cutoff frequency).

I thought I'd try a single history value and simplifying the reconfiguration step into taking the scaled down values & the new value from a simple short lookup table. (also simplified the number of steps at which I let cutoff set from 256 to 16 to save memory as it gave me similar results anyways)

Then I realized this still sounded something like the lot more expensive proper filters I had implemented at this low frequency.

So that's what I implemented in assembly and that's what became HARDBASS.

> Also, in your Java code SAMPLE_RATE is defined to be 1950 Hz, why not a more accurate value 1773447.0 / (8 * 114), (around 1944.57 Hz)?

I just calculated it as 50 frames * 39 updates (there's 39 char lines per PAL frame if you count all invisible char lines = 312 scan lines).

Edited by Sandor / HARD

Share this post


Link to post
Share on other sites

and there is the first clue to something to change for NTSC to work,

I did notice that in PAL the slightly higher rate works out due to some cycling and other things so it really does sound as it should, even if you take something to the point of almost breaking it... as you pass that point you will here it affect the sound and strange noises will occur if you try to do way too much yet it tolerates it... I do like the fact that the machine will crawl rather than crash or wipe itself and other things out when you reach that point.... that allows you to go back and fine tune whatever you are brewing...

Share this post


Link to post
Share on other sites

Thank you for your answer. I am going to rewrite some part of your Java implementation into C++ to understand it better and experiment with it.

Edited by antrykot
  • Like 2

Share this post


Link to post
Share on other sites

I've recently tried to build app with that gradle.
Unfortulately I got this

c:\Users\mikerro\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10\bin>gradle --info
Starting Build

FAILURE: Build failed with an exception.

* Where:
Initialization script 'C:\Users\mikerro\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10\init.d\build.gradle' line: 21

* What went wrong:
A problem occurred evaluating initialization script.
> Could not find method task() for arguments [{type=class org.gradle.api.tasks.Delete}, clean, [email protected]] on build.

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 2.751 secs

c:\Users\mikerro\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10\bin>

I put in init.d directory following files:

 

2018-06-14 19:57 <DIR> .
2018-06-14 19:57 <DIR> ..
2017-11-25 18:21 1˙032 .gitignore
2018-06-14 19:50 <DIR> .idea
2018-06-14 19:50 <DIR> app
2017-11-25 18:21 498 build.gradle
2018-06-14 19:57 0 dir.txt
2018-06-14 19:50 <DIR> example
2018-06-14 19:50 <DIR> gradle
2017-11-25 18:21 855 gradle.properties
2017-11-25 18:21 1˙471 README.md
2017-11-25 18:21 15 settings.gradle
6 File(s) 3˙871 bytes

Am I doing something wrong?

Edited by miker

Share this post


Link to post
Share on other sites

I'm also having issues with the tracker:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not find com.android.support:appcompat-v7:24.2.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/appcompat-v7/24.2.1/app
compat-v7-24.2.1.pom
         https://jcenter.bintray.com/com/android/support/appcompat-v7/24.2.1/app
compat-v7-24.2.1.jar
     Required by:
         hardbass:app:unspecified
   > Could not find com.android.support:recyclerview-v7:24.2.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/24.2.1/
recyclerview-v7-24.2.1.pom
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/24.2.1/
recyclerview-v7-24.2.1.jar
     Required by:
         hardbass:app:unspecified

I'm no coder, I just want some yoi and wub D:

It wouldn't hurt to at least provide a compiled version of the tracker

Edited by Mr_Mary

Share this post


Link to post
Share on other sites

I don't try again...

 

It made my system unstable and caused it crash. So, sorry, no.

 

Wi32(64) port maybe?

Share this post


Link to post
Share on other sites

Cool! :D

 

Now "only" find such a device that supports it.

 

(Sorry, I'm too lazy)

Edited by miker

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...