Jump to content
BadGoldEagle

How about this: old hard drive sounds emulator?

Recommended Posts

Hi all.

 

I couldn't sleep last night because of a damn mosquito that kept buzzing around my ears so I relocated to the adjacent room's floor (there are only two beds and a couch in my one bedroom apartment, one bed was already in use and the room with the mosquito had the couch and the second bed.) ANYWAY, my life is very exciting as you can tell.

Obviously it was impossible to get some sleep so I did the next best thing: day (or rather night?) dreaming about some new Mac hacks.  |)

 

The SCSI2SD is great and all, but I miss the old hard drive sounds. I was thinking that it could be possible to record some sounds and then play them back. When you think of it, there are only two things that make noise: the heads moving back and fourth and the platters rotating. With the proper audio equipment, we could record some sample sounds (stepper motor initialisation if applicable, platters starting to rotate, platters rotating at a steady 3600rpm or whatever and also a couple of head movements).

 

The first part of the said emulator would play a couple of mp3 files in some order: first stepper motor initialisation, then platters starting to rotate and finally platters rotating. That's easy. Any mp3 player can do that.

 

Then for the actual head sound, we could use the LED activity light as a trigger. Every time the light flashes, that means the heads are moving, so if we play a couple of different head movements in a random order every time the light flashes, we should get pretty close to the sound an actual hard drive would make when used.

 

As for the hardware part, there are some mp3 players for the Arduino, so I was thinking we could use one or two of them boards and then mix the two audio channels together. Add a speaker on top of that and that would be it.

 

The best thing about this is that it would work with any emulator with an LED activity light (scsi2sd, scsi2cf, drem mfm emulator and so on...)

 

So, what do you guys think? I'm not sure I can pull this off myself, so if someone else is interested in this project, let me know. I'm gonna do some more research on the mp3 player extension and see if it could play two mp3s at once... 

I'm also going to ask advice from some of my teachers. I hope they can help.

 

 

 

Share this post


Link to post
Share on other sites

Haha... I have thought of this before too. Last night I was installing Mac OS 7.6 on my performa, and my wife could hear the hard drive all the way from the bathroom. She was like, "What the heck is that sound?! It's driving me crazy! Is it going to be going all night?" :p

Share this post


Link to post
Share on other sites

I absolutely love this idea.  Not necessarily the 3600rpm whine, but the clicks, ticks, and grinding are very nostalgic and I miss them greatly.  I think we should be able to cook something up?

 

We'd need good quality audio of the sounds.

Hardware and software to play them.

Means to control the playback based on indicator activity.

Speaker output, which may require an amplifier.

 

Another option would be to use an actual hard drive, and utilize methods others have created to make sound machines (also Arduino powered):

 

 

One thought, on the Amiga emulator (FS-UAE), there is a floppy sounds emulator.  It outputs via the computer's sound system.  It always sounds very cheesy, and I end up turning it off.  Maybe because it is stereo and being projected all around me rather than from inside the computer.

Share this post


Link to post
Share on other sites

That's one of the reasons I've hung on to spinning disks in everything besides my TAM (aside from cost), I like hearing the hard drive sounds.  It would be cool to have this with the solid-state solutions but there would need to be a big enough library of seek sounds so that you didn't eventually catch on that it's recorded.  Never mind the technical aspect of the project, I feel like getting the sounds to not sound "fake" would be pretty difficult in and of itself.  Not only would you need a small quality speaker (that's pretty difficult on its own!) you'd need to get the imaging right so that it doesn't end up sounding cheesy like joethezombie mentioned. 

You don't want to have a situation where you'd say "Oh, now it's using seek sound #7", like you get with certain TV shows and movies that terribly overuse stock SFX (apart from the Wilhelm scream which is specifically used because it's so well known).
 

Share this post


Link to post
Share on other sites

That would be cool ! Actually what first missed when putting a cf card in Pismo was a small HD noise .

Have no idea how to do it, for older machines , maybe yes it would need an external device like an Arduino.

but for something like a more powerful, maybe it could be done internally by software. 

Actually , I have WindowMaker installed on a Wallstreet, and there is a small dock app showing disk activity , but with graphics, no noises.

Same thing could certainly be done with some noises. 

Share this post


Link to post
Share on other sites

You could always go so far to break open old nonworking hard drives and unstick them so they will spin again.

Set them up to spin up once power is enabled and then have an Arduino drive the stepper/head motor on activity light flashes. This will get you the most authentic sound at probably the lowest cost possible.

Drives that are still able to spin once you clean off any goo and rubber that gets them to stick or bend away crashed heads should be cheap and widely available.

Edited by Bolle

Share this post


Link to post
Share on other sites

LisaEm had low-bitrate floppy drive sounds.

Share this post


Link to post
Share on other sites

Shhhh, you're blowing up my stealth development project!

 

Oops, guess it's not stealth any more.

 

I have been setting aside various working hard drive models to use for high-quality recordings at a later date. Including Quantum, MiniScribe, Rodime, etc. The first purpose is for historical preservation of the sounds they made. And secondarily to sample the sounds for use in a retro hdd sound emulator thing.

 

I haven't started work on it yet, but it's been percolating in my brain as my next project. I have to finish ADB Busboy first.

 

There are some challenges. Even just finding an appropriate speaker, as EvilCapitalist mentioned. A lot of the relatively inexpensive small quality speakers I have come across are overstock, and you can't buy them reliably over several years like would be required if using them in a product.

Edited by anthon

Share this post


Link to post
Share on other sites

Hmmm.. Wouldn't it be possible to make a software type thing to run on the macs? They could send signals to the speaker so you could have a real one compared to a tiny one... problem is getting high quality sound on there.

Share this post


Link to post
Share on other sites

Thanks guys for the feedback. I guess this thing could sell!

 

Well, anthon... I'm sorry for unveiling your plans so soon but that's really cool someone with as much experience as you have thought about making this a thing too. Looking forward to this and the ADB busboy! I'm studying Automotive Engineering and even though we had some classes that somewhat relate to understanding how chips work, I have very basic knowledge when it comes to designing boards. 

 

@Bolle: That's actually a great idea, and you're right it's the only way to achieve 100% true surround sound. The only drawback I can think of is that the whole device (old HD+arduino+scsi2sd) would be quite bulky and might stress some analog boards a little too much? But that idea deserves some exploring! Maybe we could remove the drive's circuit board and put the scsi2sd and the arduino in its place?

 

@Johnnya & @galgot: I don't think the original speaker can accurately reproduce those sounds (there are better speakers out there I think with a similar footprint.). And my SE/30 with its 50MHz Powercache has trouble opening and closing windows while decoding low quality mp3 files, so doing things with the MacOS on something like an SE with 1meg of RAM might be a little tricky... We'd have to code sound in assembly language or something, in any case, definitely NOT mp3.

 

@All: I'd like this device to remain universal (Mac, PC, Lisa etc). I'm about to order an MFM emulator for my 512k Hyperdrive and it'd be nice if it worked there too. Plus I bet some folks in the PC world would love it. And yes, don't forget the Lisa (thanks Falcon for bringing it up! Just imagine a 2/10 with an X/Profile with the old Widget sounds!!!)

Share this post


Link to post
Share on other sites

a DSP and synth algorithms could nail this head on without "recordings", porting solid state storage code over to a DSP-CPU combo would be the way to go, then you can use the DSP side to render the sounds which are generated based on expect seek time, and of course seek length without impacting performance. if your at sector 0 and you need the last sector, or close to it, you will get a longer/louder sound. This can all be generated via algos. 

Edited by techknight

Share this post


Link to post
Share on other sites

Yeah I would like to go the synthesis route. Personally, I'm no audio expert and wouldn't be able to just recreate the sounds by ear. So my first step regardless is to record samples so I can see what is going on in the waveforms.

 

Optimally we would have access to seek positions and read/write lengths, but realistically that's not going to happen unless Michael McMaster incorporates it into SCSI2SD. Presuming he doesn't do that, we're left with the challenge of faking it based on the drive access LED. It will be nothing close to "accurate," but we'll get our sounds. It also means there will be a bit of latency between the drive access and the sound.

Share this post


Link to post
Share on other sites

techknight's message prompted me to contact Michael McMaster about possibly making the SCSI2SD disk access data available externally. Turns out that he designed a UART header into v6 boards for future expansion purposes. Right now it's unused, but he said that he would accept contributed code to implement sending disk access information over that interface. (It would have to be a flexible protocol so that the interface could be used for other things as well.)

 

Using the disk activity indicator would also need to be implemented to make it universal. But it would be a very cool enhancement for users with SCSI2SD v6.

Share this post


Link to post
Share on other sites

Using the disk activity indicator would also need to be implemented to make it universal. But it would be a very cool enhancement for users with SCSI2SD v6.

Agreed. But we do need to make an universal version (even if it's not as good) for non scsi adapters.

Share this post


Link to post
Share on other sites

I had thought at one point using one of those little piezo speakers that have a pre-recorded message from a greeting card... get a short recording on it of reading and writing hard drive and powering it from the led activity light.. I think you can buy them on ebay.. I never investigated any further...

Share this post


Link to post
Share on other sites

Same applies to floppy noises, of course. I'd love it if my FloppyEmu made the floppy noises (including the buzz buzz buzz griiiiiiiind noise of a disk error when something goes wrong). 

 

Would the LED light on a SCSI2SD work, or is that just a power indicator? (I've never hooked a light up to one of mine.)

Share this post


Link to post
Share on other sites
15 minutes ago, elbaroni said:

Same applies to floppy noises, of course. I'd love it if my FloppyEmu made the floppy noises (including the buzz buzz buzz griiiiiiiind noise of a disk error when something goes wrong).

Funny thing is that I was thinking this exact same thing today--that it would be perfect if the FloppyEmu could synthesize or even just play MP3 recordings of the various floppy drive sounds.  I'm certainly not an expert, but I would think the FloppyEmu "knows" when something is being read or written, so I would tend to think it should be able to play the appropriate sounds.

 

Now how much added cost that would be, I don't know.

Share this post


Link to post
Share on other sites

One thing that should be doable is get one of those utilities that made a puking noise when a disk was ejected (MacPuke? Probably.) and replace the sound resource with the sound of a floppy ejecting. 

Share this post


Link to post
Share on other sites

Two things:

First, I have a number of obscure hard drives I could record if there was any interest, including a quasi-functional NEC 3.5” 105MB unit and a Sony SRD2040 (of Quantum infringement lawsuit and Apple recall for stiction infamy). 

 

Second, regarding sound length vs. data transfer speed: what happens if the time it takes to play a sound is longer than the time needed to transfer data? SSDs are markedly faster than spinning disks, especially for seeks (the process that makes the desired sounds) so it’s entirely possible the sound playback/generation will take longer than the actual data access cycle. So:  Does the system wait until the sound has completed before moving to the next data transfer task? Does the system queue sound for each access, resulting in the potential for sound generation continuing after data accesses have completed? Does it play random sounds on any access?

The answer is probably at least partly dependent on what’s generating the sounds, whether it’s the computer itself, the controller, or an external device monitoring the bus/controller accesses.

 

 I’m also interested in how authentic it would sound: anybody who has ever tried to move 10MB to/from a 20MB MiniScribe 8425 in an SE knows it involves at least 30 seconds of sound and fury, whereas an SSD would complete the same task in only a fraction of the time, likely eliciting only a couple peeps from the sound generator (assuming sounds are generated only for the duration of the data access rather than one sound per seek event). 

Share this post


Link to post
Share on other sites

You could use a 2 or 3 second sample and play the full sample for each disk access, even it it were just a split second. If the files were a couple hundred Megs and it took say 10 seconds, you could play the sample 3 times or as many times as would fill the transfer time.I don't think the sound would have to match the disk access time precisely to bring pleasure to the user.

Share this post


Link to post
Share on other sites

By "sample" do you mean "recording"? As discussed previously, it makes far more sense to me to synthesize the audio with a DSP.

 

On a Mac SE, Classic, etc. there is little to no difference in performance between an HDD and a SCSI2SD due to the 53C80 controller being so slow.

 

For a machine with a faster scsi controller, only a representative sample of operations would be synthed. The firmware would have minimum and maximum lengths for synthed seeks, reads, and writes based on real scsi drives. If the operations are too fast, then it would discard operations to meet the time constraints.

 

Another option might be to slow down the flash speed for a more realistic retro experience. ;)

Edited by anthon

Share this post


Link to post
Share on other sites
On June 5, 2019 at 9:14 PM, dcr said:

Funny thing is that I was thinking this exact same thing today--that it would be perfect if the FloppyEmu could synthesize or even just play MP3 recordings of the various floppy drive sounds.  I'm certainly not an expert, but I would think the FloppyEmu "knows" when something is being read or written, so I would tend to think it should be able to play the appropriate sounds.

 

Now how much added cost that would be, I don't know.

 

Looks like the added cost would be $18. ;)

 

https://www.bigmessowires.com/2019/06/25/introducing-noisy-disk/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×