Playing SID Files... :o

edited October 2014 in Development
S
SID File player...

Anyone else noticed this in the CPC world?...

http://www.cpcwiki.eu/index.php/Sid

On that webpage is a CPC program that allows the user to play SID files, via standard YM output...

http://www.cpcwiki.eu/forum/demos/new-release-of-sid-player/?action=dlattach;attach=3952

Version 2 (above) comes with source code... Could something like this be converted to the humble Speccy?...

Even if it couldn't, could the source perhaps provide the basis of a DOS tool or something for converting SID into YM files, maybe?...

If the Speccy isn't fast enough, maybe the routine could be adapted to preprocess the SID file BEFORE playing it, instead of translating it as it goes along?...

Anyone any thoughts...

NB: With this CPC program, ZXBLockEditor and WinAPE, one can insert ones own SID files into the DSK file, play them in WinAPE, then log the YM output... which can then be used by a certain ZX/Atari YM player knocking around here (https://dl.dropboxusercontent.com/u/33485444/YM2MYM.zip)...

PS: Anyone know of any AtariST sofware that can play SID files? - with a faster processor, it might have a chance of producing YM output?...

???
Post edited by kgmcneil on

Comments

  • oboobo
    edited September 2014
    It's based on my SAM SID player, which can drive a connected SID chip in real time. That CPC player does a remarkably good job of converting the SID registers to the AY for playback. I was interested in porting it back to drive the SAA chip in the SAM, though it's been on my 'maybe someday' list since 2011!

    The CPC struggles for speed in places, and I'd doubt the Speccy could manage real time playback. Even the SAM version does a small amount pre-buffering so it survives more demanding sections of some tunes. It'd need to be +2A/+3 specific too, to make full use of RAM for the 6510 emulation. Though it could be adapted to not need lower RAM, there would be a further performance hit from doing so. Also, C64 SID tunes can be located almost all over the 64K address range, so only some would be compatible without relocation or some kind of JIT conversion. My player hides in the Dxxx memory range where the C64 I/O is located, which I found was the only safe 4K block that wasn't used by any player code I looked at.

    You could certainly generate per-frame SID register output on the PC, perhaps even with the AY conversion applied to the data before packing it up for the Speccy. It should compress reasonably well too, but you'd probably only get a couple of full length tunes in memory at one time. Not a problem with a DivIDE I suppose...
  • edited October 2014
    There's a good tool for relocating SID files to specific addresses, works with the majority of them. http://www.linusakesson.net/software/sidreloc/index.php
  • fogfog
    edited October 2014
    suppose you could do any "pre-processing" on a pc, like algo does with his video / audio type things on c64. to help lessen the load a bit.

    the (none beeper) follin tunes were done on tatung and ported to specific machines , although he did minor changes IRC.
  • edited October 2014
    Yeah, you could use siddump and a compressor like Exomizer, I'm streaming AY stuff in a similar fashion on the c64. https://www.youtube.com/watch?v=XrltMgfVhnc
  • edited October 2014
    ...Nice work there with the UTube video... I see your essentially doing the same thing there, streaming an Atari YM file across the c64...

    Perhaps the ideal would be to have a PC program take a SIDdump and translate it into an equivilent YM file dump, which would then be run using the MYM player... In theory its quite do-able, I believe, as long as one isn't attempting to do all those sophisticated SID-like tricks that really define that chip... The CPC version, as far as I can tell, is simply substituting equivilents for each of the SID signals that it comes across (and doing it wonderfullly, I might add - its an impressive piece of work to see it work on the fly like that)...

    ...just wish I understood the SID registers and the YM registers well enough to know which bits needs to be married up with which bit in order to pull off the equivilents within a YM file...
  • edited October 2014
    Maybe this isn't helps - Amstard CPC has SID tracker(in development).
    also amstrad has AY+z80.

    http://pushnpop.net/topic-412-1.html#lastpost
  • edited October 2014
    Maybe this isn't helps - Amstard CPC has SID tracker(in development).
    also amstrad has AY+z80.

    - Your link looks interesting, but development has slowed a bit on that project by looks of it (almost as slow as my own -[cough]- )

    - My main interest personally is to find a way to grab music from SID files, in a manner that can be recycled and used on the humble Speccy... The SID chip attracted a large number of talented musicians, who produced some extraordinary pieces.... Even if the humble Speccy can't reproduce all those SID-like effects, it would be a pity to see those musical pieces stay confined to c64 scene... My personal interest is to see some of those pieces gain a new lease of life and maybe a wider audience they seeing them spread aroud on other formats, ideally, other 8-bit formats... For me, the generation of SID effects is secondary as an ideal, but thats only because I have little faith in the venture overall... The DigiSID demo proved that some interesting effects can be had on a humble speccy, but the demands on the machine (exact timings, etc) indicate that this is no small enterprise... I wish the Amstrad venture well on that one, but can see that it would require a dedicated tracker to get the most out of it... That venture Im guessing isn't about porting straight SID files but creating a new musical format for creating new music that can take advantage of whatever effects they can generate... If they do succeed in such a venture, it might be nice to see some work done on a ZX equivilent player... :)

    - Anyone know of any other emulated systems that can log YM output, other than the Amstrad and AtariST, that could be used in a humble Speccy?... And if anyone knows of any equivilent AtariST program that can play SID files directly, please let us know!!!!
  • edited October 2014
    Kgmcneil:

    > SID File player...
    Yes, I also wonder if anything changed since 2010 - http://www.worldofspectrum.org/forums/showthread.php?t=31856
    Then people finally stated it's impossible.

    > Anyone know of any AtariST sofware that can play SID files? - with a faster processor, it might have a chance of producing YM output?...
    Yes, ST has a very good SID-player, although - of course - it works without filters.
    But the truth is, even a SID-player for Atari Falcon has no filters, so it's not bad after all. ;)


    ____________EDIT___________
    Eeeeeh, You mean playing those songs with AY native synthesis.
    Naaah, Atari ST has real emulation going through the AY.
    ZX81/ZX Spectrum/Amiga/Atari music: http://yerzmyey.i-demo.pl/
  • edited October 2014
    obo wrote: »
    You could certainly generate per-frame SID register output on the PC

    That's what I did back in 2004 for my SAM Coupe SID Interface* before obo wrote his fantastic SID player!

    To do this, I coded a plugin for sidplay2/w to write the SID registers every frame. sidplay2/w has the option to play tunes via the 'HardSID' PC interface and used a .dll plugin to access it - so I wrote a new .dll to take it's place and capture the register data.

    The tunes I converted this way would vary between 100-400k of data depending on their length. Pre-conversion to AY / Compression would be a must for the Speccy.

    (* I launched an improved version of my SAM Coupe SID Interface earlier this year - www.samcoupe.com :))
    Quazar - Celebrating 27 years of Developing for the SAM Coupé
    Hardware, Software, Magazines and more for the SAM Coupé
    Website: www.samcoupe.com
    Twitter: QuazarSamCoupe
  • edited October 2014
    I launched an improved version of my SAM Coupe SID Interface earlier this year

    Why not to release version for ZX Spectrum ? :D
Sign In or Register to comment.