Jump to content
IGNORED

FujiConvert 0.1


Xuel

Recommended Posts

Carts are fairly limiting in terms of run-time length, so you're going to get more long-term use out of an IDE solution, IMO. All you have to do is create a FAT-formatted VHD, copy the player and the PDM files into it, and mount it as a CF card with SIDE/SIDE2. I'm not sure why setting up SIDE2 seems so intimidating: it's not intended to be. Mass storage may not be your thing, but it's a requirement for massive media files like these, and much more convenient than re-flashing a cartridge every time you want to listen to a different tune.

  • Like 1
Link to comment
Share on other sites

Hi Jon,

 

Its not so intimidating, just that I'd be using it so little it seems a bit of a waste other peoples time to help me.

 

I'd listen to the tunes and maybe that would be the last time for ages, I'm not at all dismissive of the whole idea at all, I love this little machine being 'tricked out', its awesome and people like you etc adding extra's just makes me smile a lot but its like owning a Ferrari and driving it at 40mph all the time, a bit of a waste but nice to have while others would belt down the road which is great for them.

 

To quote the Dirty Harry series and Clint in particular, "A man's got- sta ta know him limitations"...I'm happy that way :)

Edited by Mclaneinc
Link to comment
Share on other sites

Caught this and the whole sound threads in a patchy way, saw the carts on here and booted them in Altirra and the noise was not stunningly good, ie there was something I had not done (?) unlike the early examples I had tried in another thread.

 

For carts from FujiConvert, you may have to press 'A' during playback to toggle the calibration between hardware and Altirra versions 3.10-test27 and prior. phaeron changed the hi-pass timing in 3.10-test28 so that it matches hardware, so you need to be in hardware calibration mode when using that version and later. In FujiConvert 0.2, hardware calibration mode corresponds to a black background and, let's call it "old-Altirra" mode corresponds to a white background. FujiConvert 0.1 was reversed. Very confusing, I know. :)

  • Like 1
Link to comment
Share on other sites

I'm relying on WebAudio to perform the resampling operation. I haven't found a whole lot of configuration knobs in the API for this operation, so I'm not sure what technique it's using, e.g. Lanczos, sinc, cubic, linear, etc. Probably something fast since it seems to be geared towards real time games in the browser. Another option would be to compile sox or just the filter from C to WebAssembly and use that instead.

 

Another option might be libavresample (from the ffmpeg project).

 

I do plan on trying out WebAudio's DynamicsCompressorNode to normalize to the available dynamic range of the target playback method.

 

If you do, please make it optional, as a dynamics compressor can really mess up your sound. Compression/limiting is not the same as normalization. For normalization purposes, just find (min,max) and adjust the values to max out the available range.

 

I would like to play with noise shaping. Another benefit of compiling sox to WebAssembly would be to take advantage of its noise reshaping features.

 

Yes, although I seem to remember it only supports certain sample rates and bit-depths.

 

The code is a mess at the moment but if you'd like to try your hand at javascript and would like to contribute then I wouldn't mind having your expertise on board. :)

 

I have done some javascript in the past, but that was not an experience I'd like to repeat ;) Looks like you are doing fine :)

 

I did look at the WebAudio API though, and it seems BiquadFilterNode is what you need to create a proper lowpass filter. IIRFilterNode can be used for odd-ordered IIR filters, but BiquadFilterNode is mentioned as being of higher quality and less sensitive to numerical quirks. A single instance has a 12dB roll-off per octave, but filters can be concatenated to increase their effect. So, for example, you are targeting a 15.6kHz output file. That means no frequencies above half that number (7.8kHz) can be represented. If you leave the higher frequencies in, depending on the resampling method, those higher frequencies can turn up as false low frequencies in the end result. Filtering them out as much as possible, reduces that problem. Usually, one tends to select the cut-off frequency slightly lower, f.e. 7-7.5kHz in this case.

 

Regards,

Ivo

 

  • Like 1
Link to comment
Share on other sites

sorry for my stupid question but how can I use full converted music on real atari ? Sizes are 16 up tu 32Mb or more, but I do not find any cart which can run it.

 

UnoCart - NO

UltimateCart - NO

The!Cart - NO (http://www.mega-hz.de/Angebote/THE!CART/THE!CART_EN.htm)

SIDE II - NO (i can not play pdm files, i dont know why or how? :) )

 

And listen it on emulator? why ? :)

 

is it possible?

Link to comment
Share on other sites

SIDE II - NO (i can not play pdm files, i dont know why or how? :) )

Which loader is on the SIDE2? Are you launching the PDM player from said loader, or via SDX?

 

EDIT: more to the point, did you generate the PDM file as a mono PCM 4+4 at 44KHz?

Edited by flashjazzcat
Link to comment
Share on other sites

Which loader is on the SIDE2? Are you launching the PDM player from said loader, or via SDX?

 

EDIT: more to the point, did you generate the PDM file as a mono PCM 4+4 at 44KHz?

 

Yes, i converted it as you wrote and lad pdm player from SIDE loader. When player strat music play i can hear only bzzzzzzzzzzzzsssss but equaliser showing right music, i think.

post-18200-0-40368300-1527703572_thumb.jpg

London Boys - I'm Gonna Give My Heart pcm44 mono 44270Hz ide pal.rar

Edited by Poison
Link to comment
Share on other sites

Well, I do not own SIDE/SIDE-2 nor U1MB, so a PDM player for SIDE is not usable for me.

 

Instead I would either need a solution/player for a max. 1MB cart image (atarimax or something the Ultimate Cart. can use) or a solution/player for an IDE+/IDE-2...

 

[Think Mathy and several other Atarians also need a solution/player for the Ultimate Cart. or IDE+/IDE-2]

Edited by CharlieChaplin
  • Like 1
Link to comment
Share on other sites

 

Yes, i converted it as you wrote and lad pdm player from SIDE loader. When player strat music play i can hear only bzzzzzzzzzzzzsssss but equaliser showing right music, i think.

 

Interesting. Perhaps you have a POKEY chip with different timings. Can you try running this calibration program and try setting X=5 and Y=7 and play the sine wave (#1) and report if it sounds like a clean tone? If not, maybe you could try some other X/Y settings and let us know which one sounds good?

 

sorry for my stupid question but how can I use full converted music on real atari ? Sizes are 16 up tu 32Mb or more, but I do not find any cart which can run it.

 

UnoCart - NO

UltimateCart - NO

The!Cart - NO (http://www.mega-hz.de/Angebote/THE!CART/THE!CART_EN.htm)

SIDE II - NO (i can not play pdm files, i dont know why or how? :) )

 

And listen it on emulator? why ? :)

 

is it possible?

 

I'll look into an option to write out a series of smaller carts and a workbook file for The!Cart Studio so that you can generate a flashing .ATR file suitable for flashing real hardware.

 

As for UnoCart and UltimateCart cart emulation, you're limited by the available ram, 128K and 1M respectively. Perhaps flashjazzcat/electrotrains can work out a fast path directly from the SD Card to a memory register ala IDE?

Link to comment
Share on other sites

Well, I do not own SIDE/SIDE-2 nor U1MB, so a PDM player for SIDE is not usable for me.

 

Instead I would either need a solution for a max. 1MB cart image (atarimax or something the Ultimate Cart. can use) or an IDE+/IDE-2...

The player should be easy enough to convert to IDE Plus. The only governing factors are time and motivation, but I had intended to provide support for multiple IDE devices from the outset. The to-do list remains quite long, unfortunately...

Link to comment
Share on other sites

 

Interesting. Perhaps you have a POKEY chip with different timings. Can you try running this calibration program and try setting X=5 and Y=7 and play the sine wave (#1) and report if it sounds like a clean tone? If not, maybe you could try some other X/Y settings and let us know which one sounds good?

 

 

I'll look into an option to write out a series of smaller carts and a workbook file for The!Cart Studio so that you can generate a flashing .ATR file suitable for flashing real hardware.

 

As for UnoCart and UltimateCart cart emulation, you're limited by the available ram, 128K and 1M respectively. Perhaps flashjazzcat/electrotrains can work out a fast path directly from the SD Card to a memory register ala IDE?

 

X5 and Y7 play nice clear tone, no bzzss or something like that:)

Link to comment
Share on other sites

Any metal lovers out there? Here's "Awaken" from Deathklok's 2007 The Deathalbum, featuring the Atomic Clock himself, Gene Hoglan on drums.

 

03 - Awaken pcm44 stereo 22135Hz ide pal.zip

 

Editing to also include the mono file. I think it sounds much better due to the higher sample rate.

03 - Awaken pcm44 mono 44270Hz ide pal.zip

  • Like 2
Link to comment
Share on other sites

Any metal lovers out there? Here's "Awaken" from Deathklok's 2007 The Deathalbum, featuring the Atomic Clock himself, Gene Hoglan on drums.

 

attachicon.gif03 - Awaken pcm44 stereo 22135Hz ide pal.zip

 

Editing to also include the mono file. I think it sounds much better due to the higher sample rate.

attachicon.gif03 - Awaken pcm44 mono 44270Hz ide pal.zip

 

Excellent. :music:

 

Note that I don't think that flashjazzcat has released a stereo-capable version of his PDM Player yet. If you use it to play a stereo file then you're actually playing interleaved left/right data on a single channel.

  • Like 1
Link to comment
Share on other sites

 

X5 and Y7 play nice clear tone, no bzzss or something like that:)

 

Hmm, OK, then maybe you're running into the problem where the cluster table overwrites the hi/lo PCM4+4 tables. Can you try playing a shorter file, like around 5MB?

Link to comment
Share on other sites

The cluster table is shorter than I thought: only 3072 entries until it runs into the hi/lo lookup tables. I'll sort out stereo playback and larger cluster tables next. ;)

 

EDIT: Assuming 4K clusters, 3072 entries equates to 12MB.

Edited by flashjazzcat
  • Like 1
Link to comment
Share on other sites

Another option might be libavresample (from the ffmpeg project).

Thanks for the pointer!

 

If you do, please make it optional, as a dynamics compressor can really mess up your sound. Compression/limiting is not the same as normalization. For normalization purposes, just find (min,max) and adjust the values to max out the available range.

Agreed. I see a lot of cases where the min/max values span the whole dynamic range in short bursts but large portions of the song are much quieter. That's where I could see either using clamping or compression as a way to improve the overall dynamic range in exchange for distorting the short sections of loudness.

 

I did look at the WebAudio API though, and it seems BiquadFilterNode is what you need to create a proper lowpass filter. IIRFilterNode can be used for odd-ordered IIR filters, but BiquadFilterNode is mentioned as being of higher quality and less sensitive to numerical quirks. A single instance has a 12dB roll-off per octave, but filters can be concatenated to increase their effect. So, for example, you are targeting a 15.6kHz output file. That means no frequencies above half that number (7.8kHz) can be represented. If you leave the higher frequencies in, depending on the resampling method, those higher frequencies can turn up as false low frequencies in the end result. Filtering them out as much as possible, reduces that problem. Usually, one tends to select the cut-off frequency slightly lower, f.e. 7-7.5kHz in this case.

Looks like both Chromium (sinc_resampler.cc) and WebKit (SincResampler.cc) use sinc resamplers which are "brick-wall" filters. So we don't need to apply another low-pass filter before resampling, right?

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...