DIY CD drive based on a computer CDROM

Variac said:
Kuei etc.

On page 12 they talk about getting the clock reference from SPDIF

http://www.m-audio.com/support/manuals/pdf/Audiophile_manual.pdf

Were you talking about this?
If not please specify exactly what you need. Is it a sound card?MAudio does seem to have good value


You need to go to the Delta 1010 series of cards to find an M-Audio card with an external reference input. An external reference is a signal that synchronizes multiple cards or channels by locking to common reference. It is usually the same frequency as the wordclock or sample rate (48/96 Khz) but it can be derived from AES-EBU/SPDIF or Video sync or a 256Fs signal.

ray.
 
Konnichiwa,

Variac said:
http://www.m-audio.com/products/m-audio/1010lt.php

This 1010 model has word clock in out and is $399 MSRP
Is word clock the spec we are looking for?

Yes and no.

One option is to use an expensive card with a Wordclock input.

Another would be to operate under linuX and use any generic card which has bidirectional S/P-DIF. In this case it should be possible to modify existing driver software (if it has not already been done) to actually use the S/P-DIF input as clock source.

To actually continue as to how see the system working....

We use a clock (LC Clock, Superclock, Kwakklok etc.) with a small PCB that reclocks the S/P-DIF stream directly ahead of the DAC in a small box. The Clcok is send via one cable (even optical) to the Soundcard, the output is taken via another cable (even optical).

The MSI PC actually has S/P-DIF optical in (sadly on the front, but it should be easy to move to the back) so probably can be used like this WITHOUT requiring an external soundcard anyway.... You would probably need a soundcard for high performance 5.1 though, except I want 5.1 put out as virtual surround on 2 channels anyway....

Sayonara
 
Kuei Yang Wang said:
Konnichiwa,

Yes, initally. But the unfriendly staff at the Tottenham Court Road shop almost turned me off it.

it's mixed blessings at Bayswater. Some staff are really nice and friendly, some have no idea and like to take their time.
the price I sas there was £279 in the window - no idea whether VAT is included and what's in the package..
Well, that's too expensive for me but otoh they had mini motherboards for £40-50 that looked just the ticket.


The "Memory Buffer" will be very easy, we have a whole ******** P4 PC with two Memory slots to nothing but that Job!!!! Actually, I'll probably just put the whole thing under windoze or linuX control with a basic Monchrome LCD Screen for display if advanced functions are needed.

right, I have no idea how you do that using software.. I suppose, you'd start by installing EAW and perhaps create a RAMdisk (would that help ?) and lastly attack the SPDIF o/p by hacking the clock. Dunno how doable the latter is - is it independent of the PC clock ?
I would guess yes.. The last thing to improve would be to replace the PSU with a linear PSU and then do sth about the fans and the spinning hd, the case etc.


The key, I need a Digital Interface Card that accepts an external clock. I know such exist for the studio market where you MUST be able to sync the whole studios various digital devices to an external clock sync source.


I don't know how much these cards cost and what software you need for them. They would be very useful if you ever need to do your own mixed recordings though.


I have seen it on-line @ £ 200 + Vishously Added Tax for the "bare bone" system, meaning no CD-Drive, no CPU, no Memory and no HDD. I can probably get most if not all those items from dead computers at work for free....

Sayonara

yes, and as I'm not really fussed about remote and display at the moment so I'm thinking about the possibility of using the whole throwaway PC minus the PSU. I have a choice of : a SG Indigo, a SUN sparc station and my old AMD 150MHz. No doubt the # of choices will multiply in the future...

S
 
Hi to all, I've just discovered this thread and read it all through in one go. Tis fascinating! It seems to have petered out a little in the last day or so though, which is a bit of a shame. Hopefully the thread won't die here.
Anyway, the project started out as a custom-designed solution for a decent CD transport to include custom hardware and software in a neat little package. True DIY style.
Now it appears to be sliding towards a PC motherboard-based solution using Linux and already-written Open-source software. Ask yourselves - is this the spirit of DIY? While certainly not wanting to illicit flames from everybody, I'd have to say no. Surely this sort of idea - using a motherboard, an old CPU, and a pre-built pro soundcard with a 'jitter-free' clock already in it can be done by just anybody. It may be simpler, and easier, and quicker.... but it's just so much less interesting. And it costs a small fortune.
Flame me if you wildly disagree, but in my utterly humble opinion, and in the spirit of DIYaudio.com, our CD transport should be totally custom, value-for-money, and still good. I know the people here have the skill and the inclination to do it. So let's get going!

By the way, I should probably add that I'm starting my EE degree in about 5 weeks. This means that I currently have no pricticable skills whatsoever, except a logical mind, and a very keen interest. Despite this, there are a few things I'd like to put to the critique of the group:

Everyone seems to be wallowing in the fact that the S/PDIF output of a CDROM drive is very jittery. Now, I'm utterly convinced that it is. However, if we're implementing a buffer of any reasonable size I see no way whatsoever in which this can be problem. A PC WILL GET ALL OF THE DATA OFF A CD. If even one bit was wrong in the transfer of a binary file, the software we install every day on our PCs would simply not work, period. AFAIK, audio CDs have error correction data embedded into the data stream, but data CDs can't afford to waste the space and so do not. What this means is that PC CDROM drives ARE CAPABLE of extracting the data bit-perfectly off the disk. Maybe it takes a re-read or two (could we run our drive at 4x - which is still quiet - read the data four times and simply take a poll on what it thinks the bit is at the end? I would imagine this is what the PC does if it's not sure). The only thing they are not capable of doing is delivering it in a jitter-free manner.
A jitter-free source is not necessary for IDE data transfers - so long as the computer can lock onto the data stream, it can tell what the data is. How difficult is it to construct a controller which is able to do this and just pass each bit into the memory? Once this job is done the data in memory simply needs to be clocked out with the assistance of our low-jitter crystal.

Job done? Sounds like it to me. This is my current understand of the situation which, given my background in this area, is very likely wrong on several counts.

Regards,
Wingfeather
 
Konnichiwa,

I'll leave the polemic out for now.... Just some key points.

Wingfeather said:
A PC WILL GET ALL OF THE DATA OFF A CD.

So it will, thanks actually to error correction mechanisms VASTLY superior to those on CD, plus the ability to read the same section multiple times untill the request foir data either times out or is copmpleted.

Syncronous CD Replay via CD Rom Drives does not work like this, simply because it lacks the PC's CPU, memory and program to do the job.

So yes, a well programmed PC will get all the data off the disk, a CD-Rom drive not working in DAE mode however will not. In fact, in such a case it is by far less accurate than a decent CD Transport even for error levels (never mind jittery clocks).

Wingfeather said:
What this means is that PC CDROM drives ARE CAPABLE of extracting the data bit-perfectly off the disk.

Of course, as long as you run it outside syncronous mode CD-Replay and instead in DAE mode.

Wingfeather said:
Maybe it takes a re-read or two

Which the CD Drive will do only under PC control or more precisely in DAE mode.

Wingfeather said:
The only thing they are not capable of doing is delivering it in a jitter-free manner.

Without attended hardware processing external to the drive they are not capable of low error reads, never mind the jitter.

Wingfeather said:
How difficult is it to construct a controller which is able to do this and just pass each bit into the memory?

Not very. You take a spare P500 or the like motherboard with old 72-Pin Sims (worth absolutely nothing these days) a suitable piece of software and a small (discarded) harddrive. The load an OS and programm you "real time" DAE player in VB or if you want to be perverse in C++.

Wingfeather said:
Job done? Sounds like it to me.

Me too, except of course, we need a PC of some description to make it work. And if we do, why not do the job properly and include DVD and DVD-A replay and a good looking case?

Maybe I am missing something here?

Sayonara
 
With the simple programmed controller that was proposed, wouldn't it be possible to make the drive read the data 4 times over and take an average. I don't see how it could not be.
And what about DAE control of a drive? Surely the theory behind this is a standard (set maybe by JEDEC??) and could be applied by any programmer (albeit with some effort) to a DSP/uC system?

"Not very. You take a spare P500 or the like motherboard with old 72-Pin Sims (worth absolutely nothing these days) a suitable piece of software and a small (discarded) harddrive. The load an OS and programm you "real time" DAE player in VB or if you want to be perverse in C++."

That didn't really answer the question. The device I was referring to was a single component (I believe it is called a PLL?) which is used to lock onto data streams in practically every piece of S/PDIF equipment ever created. Once this has the data and fed it into memory, the problem of jitter is basically removed.

*sighs* actually, I'm going in circles here.

OK, my proposal is this. Assuming a totally custom solution. We make the drive read at 4x, and read the data 4 times over. (Whether this is done with DAE controls or normal controls can be discussed later - let's just assume this is what happens.) After the fourth read, the majority vote is taken as the "final data". If there are two votes on either side, the process is repeated. The final data is taken and placed into the memory buffer, where it is clocked out to the output with a high-precision crystal.

I think this is well within the limits of the people here. The question is, how accurate a reproduction would this give? How could this extraction method be improved?
 
Konnichiwa,

Wingfeather said:
With the simple programmed controller that was proposed, wouldn't it be possible to make the drive read the data 4 times over and take an average.

Of course not, because instead of the external computer reading directly all the processing is on-board of the CD-Rom Drive.

Wingfeather said:
And what about DAE control of a drive?

It means you treat the CD-Drive like a hard drive. You need a controller that issues commands to the CD-Drive like "read block 00001110001001" stores the result in memory and then performs if neccesary error correction in software and which then based on external clock passes digital audio data on. In other words a PC or a PIC etc based solution that does about the same thing.

Wingfeather said:
Surely the theory behind this is a standard

No standard as such. DAE simply means you let your "controller" handle the workl and use the Drive as mere dumb device. Like this (in pseudo code)

Gosub read
read next sector
Issue command to drive to read sector x+1
place read byte in memory
check checksum
if checksum valid gosub read
Else gosub reread data until reads = 16

I mean the above for arguments sake. It only reads data of the CD and places it in memory for other software to deal with and re-reads invalid data until valid or 16 reads have passed. In reality this is a lot more complex but I hope it illustrates my point.

Wingfeather said:
That didn't really answer the question. The device I was referring to was a single component (I believe it is called a PLL?) which is used to lock onto data streams in practically every piece of S/PDIF equipment ever created. Once this has the data and fed it into memory, the problem of jitter is basically removed.

SO, you need to build an external memory buffer that buffers tyhe S/P-DIF signal. I proposed this, despite being not in favour of it as solution for completeness. The issuing silence still rings my ears.....

Wingfeather said:
OK, my proposal is this. Assuming a totally custom solution.

Looking at the current cost of a barebone "AV PC" type shell and it's much more extended abilities, do you mind if I "DIY" in software rather than hardware? The thread started by saying "CD Drives will become extinct, so what shall we DIY'ers do".

Using a CD-Rom drive in syncronous mode strikes me as **** poor solution (you are likely better off buying a budget priced DVD Player - sub $ 100 units are everywhere). So, we have to do it properly, meaning either designing from scratch our own PC and OS or just buying off the shelf from our Wintel brothers.

Call me reactionary and friend of Bill Gates, but doing the same thing myself looks like hard work and more importanmtly expensive enoiugh that I can afford and Asus Pundit or MSI "MEGA" barebone with DVD Drive, DVD and DVD-A replay, a harddrive to record music or TV and all sorts more.

Wingfeather said:
Whether this is done with DAE controls or normal controls can be discussed later

You can't discuss it later, it's fundamental.

You either use DAE which implies a moderatly powerfull DSP Chip, PC type assembly or the like, or you just take what comes out of the drives S/P-DIF connector and control merely the drive functions (play/pause/skip/stop) and an external display.

Sayonara
 
I've read the entire post with much interest.

Appearantly there are two streams: one stream would like a total DIY solution with basically no more standard items than the CD-rom drive itself and one that is towards a solution looking at a kind-of motherboard solution.

The latter I've been looking into myself a bit and came acros VIA motherboards of 170mm*170mm, oncluding a fanless cpu. I was thinking of running the thing without a harddrive with a small OS running from a disk-on-chip solution. Although the board has a built in sound chip I think an external DAC is to be preffered. I know that VIA is working on a board with a new internal DAC with 24 bit/192kHz capabilities but until it is proven that it works like a good external one an external DAC might have the preference.

The power requirements might be less than 35 watts so the powersupply could be fanless as wel. There also is a built in 100Mb/s network connection so in case the software in the disk on chip is not sufficient one could load additional software from a "server" pc

But maybe some people have already done this. I would be interested in their ideas if they succeeded.
 
diyAudio Editor
Joined 2001
Paid Member
Like these Mo boards:

http://www.viaarena.com/?PageID=254

http://www.wintecindustries.com/reseller/Products/default.asp?classif_id=772&classif_type=1

I'm in the computer camp- too much of this stuff laying around that needs to be used.

This guy uses Linux with a RAMdisk to keep noise down:
http://www.seanm.ca/eden/index.html

I assume Kuei , that you are planning on having an external DAC?

One reason to use one of the higher end cards such as the Maudio is that if one used one of the 24/96 external models or even one of the better internal, the audio out might be good enough sound quality for some..they are said to sound quite good
(if you give Stereophile any credit at all)

I realize there are other high end card brands, it's just that I studied the Maudio site a bit. Another cool thing they have is an external 24/96 mutichannel HT box
 
are we possibly missing the point?..... PC based cd players and so on........there are so many such projects... a microcontroller based cdrom is what i think the original issue of the discussion was.... ok... do the ìC guys out there think a atmel at90s2313 would be sufficient, just to spin the disc & basic functions? (2k flash memory)... the pins could suffice, using a 82c55 chip, as follows...
probably full of errors schematicc...:rolleyes: :rolleyes: :(
 

Attachments

  • cd.gif
    cd.gif
    14.8 KB · Views: 2,378
Konnichiwa,

costiss said:
a microcontroller based cdrom is what i think the original issue of the discussion was....

The original discussion was to replace the discontinued Philips CD-Engines with generic CD-ROM Drives.

I for one do not give flying french coitus how it is done, but using the S/P-DIF output from the Drive will only work with serious external jitter rejection and the SYNCRONOUS Redbook CD-Replay error correction may be fair at best, with chances that the mechanism aimed at other purposes will actually cause a lot more errors in that mode than a even a cheap dedicated CD-Player.

One way that is "low tech" in the implementation is using in effect a PC, as this put's all the "High tech" design work (Mother Board, Interfaces etc.) in the hand of large global metanational concerncs with suitable resources.

The other optiuon is to do the job ourselves, devising auP/DSP platfrom that will asyncronously read the CD and re-read as many times as possible without violating the minimum data rate (even so - EAC usually runs at >> 1 Speed on my PC on the worst condition CD's) and buffer the data with a view of having it clocked out by an external clock.

The whole argument "Oh, Meridian is using ROM Drives, so they must be 'High End' capable" only holds if you use them like Meridian.

Sayonara

PS, I repeat, enough PIC controlers for simple drive functions and display have been linked in this thread already to save any need to develop another.