Jump to content

Photo

FujiConvert 0.1


172 replies to this topic

#26 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 5:00 AM

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.



#27 Mclaneinc ONLINE  

Mclaneinc

    Quadrunner

  • 5,879 posts
  • Location:Northolt, UK

Posted Wed May 30, 2018 5:35 AM

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, Wed May 30, 2018 5:36 AM.


#28 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 5:42 AM

Sorry: I misunderstood. If you just want to listen to a single tune in order to evaluate the playback quality, rigging up a cart is a perfectly reasonable aim. :)



#29 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 5:44 AM

I put pdm music file and pdm.xex on CF, than run it from SIDE2 but atari plays only some bzzzzzzzz, no music :( I try to switch on or off stereo and covox, but I have still the same result.



#30 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 6:06 AM

Did it claim to build a file map first?



#31 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 6:19 AM

Did it claim to build a file map first?

 

yes, for cca one minute or a bit more


Edited by Poison, Wed May 30, 2018 6:23 AM.


#32 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 6:25 AM

How big was the PDM file? It can only handle 4096 clusters at the moment. I need to update it so that it can store the cluster map in multiple extended banks for very large files.



#33 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 6:38 AM

How big was the PDM file? It can only handle 4096 clusters at the moment. I need to update it so that it can store the cluster map in multiple extended banks for very large files.

10,4 MB



#34 Xuel OFFLINE  

Xuel

    Dragonstomper

  • Topic Starter
  • 719 posts
  • Location:US

Posted Wed May 30, 2018 7:06 AM

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



#35 ivop OFFLINE  

ivop

    Dragonstomper

  • 722 posts
  • Location:The Netherlands

Posted Wed May 30, 2018 9:47 AM

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

 



#36 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 11:04 AM

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?



#37 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 11:39 AM

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, Wed May 30, 2018 11:40 AM.


#38 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 12:06 PM

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.

Attached Thumbnails

  • fuji.jpg

Attached Files


Edited by Poison, Wed May 30, 2018 12:07 PM.


#39 CharlieChaplin OFFLINE  

CharlieChaplin

    River Patroller

  • 2,914 posts

Posted Wed May 30, 2018 12:34 PM

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, Wed May 30, 2018 12:46 PM.


#40 Xuel OFFLINE  

Xuel

    Dragonstomper

  • Topic Starter
  • 719 posts
  • Location:US

Posted Wed May 30, 2018 12:46 PM

 

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?



#41 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 12:48 PM

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

#42 Poison OFFLINE  

Poison

    Moonsweeper

  • 345 posts
  • Location:Czech Republic

Posted Wed May 30, 2018 12:56 PM

 

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:)



#43 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 12:59 PM

Perhaps flashjazzcat/electrotrains can work out a fast path directly from the SD Card to a memory register ala IDE?


I am working on something...

#44 Stephen OFFLINE  

Stephen

    Quadrunner

  • 7,133 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Wed May 30, 2018 1:15 PM

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

 

Attached File  03 - Awaken pcm44 stereo 22135Hz ide pal.zip   8.57MB   38 downloads

 

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

Attached File  03 - Awaken pcm44 mono 44270Hz ide pal.zip   8.36MB   40 downloads



#45 Xuel OFFLINE  

Xuel

    Dragonstomper

  • Topic Starter
  • 719 posts
  • Location:US

Posted Wed May 30, 2018 2:30 PM

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.



#46 Xuel OFFLINE  

Xuel

    Dragonstomper

  • Topic Starter
  • 719 posts
  • Location:US

Posted Wed May 30, 2018 2:32 PM

 

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?



#47 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,760 posts
  • Location:United Kingdom

Posted Wed May 30, 2018 2:45 PM

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, Wed May 30, 2018 2:46 PM.


#48 Stephen OFFLINE  

Stephen

    Quadrunner

  • 7,133 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Wed May 30, 2018 4:35 PM

Yes - don't listen to this tune while driving!!

1497299459_George-Thorogood_t1070_h0e81d

Attached File  George Thorogood - Gear Jammer pcm44 mono 44270Hz ide pal.zip   10.89MB   37 downloads



#49 rdea6 ONLINE  

rdea6

    River Patroller

  • 2,723 posts
  • Location:Arizona USA

Posted Wed May 30, 2018 4:56 PM

Attached File  LeAnn Rimes-Blue pcm44 stereo 22305Hz ide ntsc.zip   5.98MB   34 downloads

Attached File  Ray Stevens-Power Tools pcm44 stereo 22305Hz ide ntsc.zip   7.09MB   31 downloads

 

A couple of Vocals

 

 



#50 Xuel OFFLINE  

Xuel

    Dragonstomper

  • Topic Starter
  • 719 posts
  • Location:US

Posted Wed May 30, 2018 11:21 PM

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?




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users