• Please review our updated Terms and Rules here

Audio Format for software

bettablue

Veteran Member
Joined
Feb 21, 2011
Messages
1,647
Location
Eugene, OR
I've been toying around with using my main PC as a host to save programs that were originally on cassette or other audio device. At www.allthingsdos.com, we have been receiving more than a few requests from people interested in converting their old BASIC cassette program images to either .mp3, or .wma formats, so they can connect their main system to their vintage computer and use the program again. Usually these users either don't have the equipment, like a cassette tape recorder/player, or the cable to connect one. And since, typical users have only one or two cassette tapes, buying a tape recorder and cable setup is really a waste of money. Because once the programs have been loaded, in most cases, they can then be saved to floppy, or other format.

Case in point - I have a friend who used an old Wollensak reel-to-reel tape machine to save and load programs we had written. Sadly, those original recordings don't exist any longer, or at least, he can no longer locate the tapes that held those recordings. But even if he did locate the machine, he would have no way of connecting it to his current vintage computer as he doesn't have the cable. Although, I would gladly lend him one of mine, However, I only have one cassette recorder/player, so I would have to lend him my recorder too. And, I really don't want any real hardware out of my sight. Too many things disappear that way.

To get back on topic. I've noticed that Windows Media Player, iTunes, and some other popular audio programs don't have the controls I want to modify the audio signal to any great extent. In particular, I want the ability to adjust both the high and low frequencies individually, so that some of the poorer tape recordings can be cleaned up and more readily usable. Real Player Cloud seems to have that covered. However, if any of you have a better program in mind, please feel free to let me know which program you prefer. :confused:

I would also like to take this opportunity to offer tape to audio file conversion to those interested. Besides, if I can get a few program tapes sent to me for trial purposes, that would be awesome!

At the same time, I want to start amassing a small collection of programs in audio format for different computers, mainly IBM 5150 and compatibles, TRS-80, TRS-80 Color Computer Model 1, Commodore Vic-20, and C-64, Apple lle, and finally, Mac SE, that we can add to allthingsdos.com and our software libraries. These audio recording would make a great addition. And, of course, like all of our software, these audio recordings will be freely distributed. These will be categorized by either version of DOS, and/or computer; i.e. IBM 5150, Commodore 64, etc.

In addition to adding the program to allthingsdos, I will personally email the sender with the converted audio file, in their choice of formats, either .mp3, or .wma, and will gladly return the original tape. All I ask in return is to cover any shipping charges. Other than returning a cassette tape, there will be no other charges what-so-ever.

So again, please let me know if there is a better program to use for converting cassette tape images to .mp3, and/or .wma audio files.

As always, I await your comments and suggestions.

Thanks again everyone. Cheers... :D
 
If I'm fooling with digital audio, I like Cool Edit Pro. There's a free trial version available.

I agree with Chuck. I have used Cool Edit Pro for years. Good interface and has all the tools that are required.

A few years ago I used it to restore some audio tapes from my brother when he was in Vietnam in the 60's. These were 3" reel tapes done on a rim driven tape recorder - thus they would sound extremely fast, then almost normal, then extremely slow on a normal tape recorder. Editing the audio files in 15 second chunks, I was able to adjust for the speed change and restore normal voice quality. It was very tedious - took about an hour for each three minute tape, but the results were well worth it.

Bill
Smithville, NJ
 
Last edited:
Thomas,

I agree with you 100% - these old cassette tape programs need to be archived. Fortunately, audio tapes are fairly durable and still readable after many years. Like you say, it's getting more difficult to obtain working tape decks and when you do, they don't output the volume that the old computers required. An amp can help a lot with this.

I've done quire a bit of playing around with cassette tapes and the Sharp Pocket computers. I have found that the best technique is to directly read the program into the real computer, verify that the program works, and then re-save the program out the cassette port, but this time use a computer or other digital recorder to record the nice clean wave file. In my case, I usually use a Edirol R-09 digital recorder using a wav format, and then copy the file to my PC for post processing. By doing the "round-trip" cassette to real computer and then save back to cassette (ie, digital recorder), this eliminates any hiss or defects in the original cassette tape.

When I don't have the real machine, use of an emulator that supports audio file is another way to achieve this. For the Sharp pocket computers, using the utilities bas2wav, wav2bin, bin2wav is a good way to test the resulting wav file and to create a text file of the basic program.

I've been thinking about what an archived version of a cassette tape should have:

wav files of each of the programs on the tape
text files of the basic source listing (if a basic program)
cas file for using with an emulator (or whatever type file the emulator uses)
PDF of the manual that came with the tape.
Other Info???



You've taken on a very worthwhile project ad I wish you the best with it.

Bill
Smithville, NJ
 
I hate to be so modern but why not read the data from the tape as a binary data file that can be concisely stored via online archives like other programs? I realize that some computers ONLY have audio input, put if the binary data storage conversion was the standard, and a extra step for audio users was to have a PC convert that (or any other binary data file) into a .wav file to then synthesize the tape cassette... wouldn't that be:

1). Less hardware
2). Better online archives
3). Ability of turning additional files NEVER BEFORE in cassette format into .wav files that could be loaded.

As I only have two programs to recover in Kansas City format and my Sony cassette player died... its for you all to decide on a plan of action... just giving an alternate plan.
 
Standards are great -- there are so many of them to choose from.

My experience of archiving tapes has largely been in the Spectrum community, where nearly all software was distributed on cassette tape. From what I've seen there:

Since Spectrum emulation started, the preferred method of archiving tapes has been to save a small file containing the data used to generate the waveform, rather than the waveform itself. The original format was .TAP, which holds only the bytes written by the BASIC ROM. That works only as long as the tape you want to archive uses the exact same timings as the BASIC ROM; tapes that use other timings (such as turbo loaders) can't be accurately represented by .TAP.

The replacement for .TAP was .TZX, which is a chunked format allowing any sort of square wave to be stored, with various blocks for the most common cases. There exist TZX players, that can take the digital file and play it through a computer's sound card. The TZX suite also introduced .CSW (Compressed Square Wave) which stores the original square wave from the tape, rather than trying to reverse-engineer the original data as TZX does.

The downside of TZX is that it's a complicated format that's a pain to write a parser for. So a few years later, .PZX was introduced as a simpler and cleaner way of holding the same data. I'd say PZX is a good choice if you want to start archiving tapes for a system that doesn't have an existing installed base of TZX-using emulators. The PZX tools include converters from TZX -> PZX and PZX -> WAV.

I don't think WAV was ever seriously considered as an archiving and distribution format, certainly not in the days of dialup; for a given program, the WAV might be a hundred times the size of an equivalent TZX / PZX.

Traditionally, MP3 was ruled out because the psychoacoustic compression tended to do terrible things to the square wave used by data cassettes. I believe it's possible to get one that replays accurately by tweaking the encoder settings, but it's still not in the same league as one of the specialised formats.

Other emulation communities have their own archiving formats; the Acorn community uses .UEF, which is broadly similar to .TZX (though with a saner chunk structure).
 
Standards are great -- there are so many of them to choose from.

..........

I don't think WAV was ever seriously considered as an archiving and distribution format, certainly not in the days of dialup; for a given program, the WAV might be a hundred times the size of an equivalent TZX / PZX.

If the WAV file is reduced to it's minimum required bit rate, then the files are really not that large. For example, 8 bit mono at 5000 HZ will produce fairly small and still usable files for pocket computers.

The nice thing about archiving a wav format is that a person can be reasonably assured that he could directly play them back into a real vintage computer. Storing in a binary format is nice for use with emulators. But as you mention in your post, there are many different variations of binary file formats. But a binary file is useless for use with a real vintage computer unless one has a audio player for the format or a conversion program to re-generate the audio file.


Bill
Smithville, NJ
 
I hate to be so modern but why not read the data from the tape as a binary data file that can be concisely stored via online archives like other programs?

I thought the same. It would be easy enough to convert back to audio for re-recording to tape as necessary. It should take less disk space than an audio file, and be less error-prone than a compressed audio format.
 
When I referred to binary data file, I mean the machine code that runs on the target computer. 1 Byte of machine code is stored as one byte. That's the machine code that is divided up into sectors when written to a floppy or the machine code that is encoded to store on a cassette tape. In otherwords, its the machine code of the program that gets loaded on your target host system and executes.

Talking about floppy images for a moment... most are an image of a complete disk which is used to create another disk. It would be more useful if you could selected from several online binary data files and have it create a temporary image format file that includes only the files you selected.

Back to Audio format... the idea here again is the machine code files that load into memory of the target host computer is the end result of reading an audio tape. Creating a .wav file is bigger and less efficient, but as noted, not terribly big given today's metrics.

However, .wav format becomes and obstacle to others that want to use that file but want it formatted so they can put it on a floppy, eprom, CF Card, whatever. Now they need a PC utility to undo the .wav format to convert it into the universal machine code for that target system... a more concise format, and ideally the format for all online archives for that target host machine.

On the flip-side for those that want to use .wav files, they need a UNDO program to remove just the file they want from an entire floppy image file, BEFORE using their machine code to .wav file converter. This is the status quo arrangement biased to floppy archives. A more sensible approach would be to allow the files to be independently selected and either bundled for Floppy or CF... or used directly to make a .wav file to load into the cassette portal.

In the alternate plan... everything for the target host computer is stored in machine language format (or in a hex format that has some advantage) and then anyone access that archive can take that file and use the convert program they use all the time.

Those that one use cassette would have a converter that takes that archive single file and converts it to .wav as its being loaded.

Those that use floppy image files would use a converter that creates a floppy image file with that single archive file and any others he might bundle into one floppy.

Those that use CF card users would use the converter they use all the time to convert the archive file to a file on their card...

Everyone uses one converter for the means they want to load onto their target hose system... no one needs to find and activate an UNDO .wav or .img file etc... that UNDO before conversion it just an obstacle to everyone.


Anyone that wants to load that file from floppy or eprom on CF card, whatever, now cannot access it until they have a new PC program to take the .wav file and convert it back into machine code files aka my binary data files, before then converting it to what they want it changed into.

Its just more efficient to have the format of the online storage, single file, as being that machine code version.

The main advantage to cassette users is that you wouldn't be limited to just cassette archives. You could load files of data, text or even games that were never published in cassette format but that run on your host system anyway.
 
Last edited:
KC9UDX said:
I thought the same. It would be easy enough to convert back to audio for re-recording to tape as necessary. It should take less disk space than an audio file, and be less error-prone than a compressed audio format.

Yeah, and give access to additional data stores.

Mind you the disk image archives serve a bundling purpose and no reason to upset that...
But I think we need a RIPPER program to unbundle those images for this sort of machine code or hex format file so that anyone can use it as a source file starting point, and convert it to the portal they're about to use to load into their host system.

After all, that is what the operating system did... made it an individual file that could be accessed.
 
JohnElliott said:
Standards are great -- there are so many of them to choose from.
The vintage computer operating systems just used .COM and .HEX

That's all we're talking about.

One in direct executable at the system's load address in machine code.

The other in a standard text format that allows multiple load points and used by compiler/assembler output.

Sounds simple to me.
 
The vintage computer operating systems just used .COM and .HEX

That's all we're talking about.

One in direct executable at the system's load address in machine code.

The other in a standard text format that allows multiple load points and used by compiler/assembler output.

Sounds simple to me.

Neither .COM nor .HEX are appropriate for archiving files for IBM 5150 Cassette BASIC, which is one of the systems mentioned at the start of this thread.
 
JohnElliott said:
Neither .COM nor .HEX are appropriate for archiving files for IBM 5150 Cassette BASIC...
True... but IBM cassette users are a minority among systems that use cassettes; they are mostly 8-bit systems like TRS80, S100s, Commodores and other more vintage systems.

You may have appropriately partitioned IBM outside of a good system for everyone else.

.COM and .HEX would be the right solution for the majority of people using cassettes.

You have noted an exception. I'm sure others can be found. But its no reason to avoid a good idea for most cassette users. And there is no reason to settle of a bad solution just to include everyone.
 
True... but IBM cassette users are a minority among systems that use cassettes; they are mostly 8-bit systems like TRS80, S100s, Commodores and other more vintage systems.

You may have appropriately partitioned IBM outside of a good system for everyone else.

.COM and .HEX would be the right solution for the majority of people using cassettes.

You have noted an exception. I'm sure others can be found. But its no reason to avoid a good idea for most cassette users. And there is no reason to settle of a bad solution just to include everyone.

I don't think it is a good idea. Firstly, a cassette tape often contains multiple files where the order is important, and distributing them as separate .COM or .HEX files loses that ordering. Secondly, in most of the tape systems I'm familiar with, a file is preceded by a header containing metadata, such as whether a file is a BASIC program or an arbitrary area of memory -- and, if the latter, what the load address is. When these are saved to disk, that additional information needs to go somewhere. Either it becomes a header on each file (in which case they're no longer a simple .COM or .HEX) or it gets saved in a separate file, which introduces all sorts of fragilities. Acorn cassette software archiving originally used the second system, before moving to .UEF.

The Commodore community has its own preferred archiving formats -- their preferred format is .TAP (not the same as Spectrum .TAP), which stores the waveform.

TRS80 archives appear to use .CAS, which looks like a capture of the byte stream written to the cassette interface.
 
I don't think a "universal" binary format is necessary the best way to go. While the files might be a lot smaller to store, there would need to be a utility of some sort that would need to recreate the audio file for reloading purposes. Since there was no single audio format used, this would mean a different utility for each computer audio format or a single utility that is cable of generating various audio depending on the vintage computer being used.

This just seems like a lot of additional effort. A straight WAV saved file is guaranteed to work with the system it was originally designed for. And who really cares about file sizes today. We are talking about megabytes per file, not gigabytes.

As to a cassette having multiple programs on it. Each program should be saved as an individual file. I usually just read the entire side to a cassette, save it to a wav file. And then use Cool Edit to chop the wav file into individual wav files for each program. There is a blank section between each program and it's easy to see this in the editor and then save each program segment.

Depending on the files on the cassette, these could be Basic, Machine Code, or Data Files and probably some other variations.

I'll be sticking with Wav files for my cassettes. I may convert them to other formats for use with the emulators, but my main archive will be WAV. I like to keep it simple!

Bill
Smithville, NJ
 
re: editing software... I used Cool Edit Pro for on and off for quite awhile. But it was kind've pirated. And now, it's quite outdated. These days, I use Audacity - it's free, quite powerful, and the basic interfaces were what I was used to with Cool Edit. Not that I mostly use this to chop large WAVs, or to edit out slip-ups in voice recordings for automated call-outs at work. I've never used plugins to attempt to restore audio, but for a basic noise reduction, normalization, or snip of editing, I find it to be quick and easy.

The key here is to make sure that whatever recordings you make are usable on a vintage PC, especially if you're archiving this for future use.

Also, in case you're interested, Mike Brutman has something to say on the topic, as he was archiving for a 5150 Diagnostics Cassette.
 
Yeah, and give access to additional data stores.

Mind you the disk image archives serve a bundling purpose and no reason to upset that...
But I think we need a RIPPER program to unbundle those images for this sort of machine code or hex format file so that anyone can use it as a source file starting point, and convert it to the portal they're about to use to load into their host system.

After all, that is what the operating system did... made it an individual file that could be accessed.

I use cassettes with my PET, but I've never downloaded nor uploaded cassette software online. I do believe though that other PET and CBM users are doing exactly what you propose, only because I seem to remember running across emulator support for ".T64" files alongside ".D64" files.
 
JohnElliott said:
...a cassette tape often contains multiple files where the order is important...
So simply naming the archive files something like:

Othello.bas.Load1.com - or - Othello.bas.Load1.hex
Othello.bas.Load2.com - or - Othello.bas.Load2.hex
Othello.bas.Load3.com - or - Othello.bas.Load3.hex

wouldn't work?

What I'm talking about is going to an online archive via a modern PC and seeing the files listed for the computer you want, in the directory listing format of that computer and clicking on the files you want to download.

Say they download to the PC's desktop and one by one the mouse is used to drag and drop the files onto the .wav file converter icon which sends the file in .wav format to the cassette-using computer.

Then the next file and the next file in your stated special case.

Or you can save them on the PC to download another time into your computer via the .wav file converter.

You could also use a right click SEND-TO to convert the file down the cable in .wav format.

...metadata, such as whether a file is a BASIC program or an arbitrary area of memory -- and, if the latter, what the load address is...
Which was the reason for including Intel .HEX format files. By the way, .hex format does support the extended address range of the modern XX-bit Intel computers. Its just less fun than 8-bit.

Yes there are established formats already in use... we're just discussing the possibilities to lessen some of the nonsense. We certainly don't have to do anything... just seeing if the advantages are worth a little bother.
 
KC9UDX said:
...I do believe though that other PET and CBM users are doing exactly what you propose...support for ".T64" files alongside ".D64" files...
Cool.

As there are basically two audio formats, Tarbell and Kansas City, its not really hard to have the .wav file converter initialized to support what the user uses on his vintage computer.

Drag&Drop or SEND-TO the file. Store on the hard drive of your PC and back it up when the PC files are backed-up.

And if you upgrade a floppy drive later, just get the converter to write the file on a floppy in the drive. No searching and replacing your archives for another format just for floppies or floppy images. And you can still download via .wav

Keep in simple.
 
There is a lot of information here that I hadn't thought of. I have tried using my main computer as a host and both saved and loaded cassette programs using .wav files. However, as was noted several times in this thread, getting it to "sound" just right was a bit tricky at times. The only computer I tried with this was my TRS-80 Coco 1. I haven't tried it using IBM ROM BASIC, so I don't know how feasible it is. However, I do believe that through this thread, we can come up with a standard.

I also realize that there are some programs that require multiple parts to load individually. I don't know how to handle that part, other than to do a full conversion of the tape and notate where each piece is on a counter. However, again, there are going to be issues in which order each tape component goes where. That would take a lot of trial and error.

I still want to create an archive whereby users can freely go and access these files, safely. As far as tools go, Audigy seems to be the current favorite. As to which file format to use, again, let's see if we can come to a consensus. Once a file format has been selected, and thoroughly tested, I can begin. Now that begs for a few programs to be sent to me on cassette tape. The programs would have to include the following information as advised earlier; I do not know how we're going to make a cas file though. To me, including the cas file is redundant. That is why I want to create a file, that can be played on the users main, or host computer into their vintage system.

Here is the info I will include on allthingsdos.com: This, of course assumes that the info is either included by the user, or on the cassette label itself.


Program Title
Text files of the source listing (for whichever version of BASIC, or computer for which the program was intended)
converted file for playback from the host computer to the vintage system
PDF of the manual that came with the tape. (If available)
Other Info??? (If available)

I also realize that many of the cassette programs may, or may not have a lot of information included. But, as I convert the cassette to file, I will include as much as is available to me. Of course, if I can locate the programs manual, I will include it, but if I search, and cannot locate a useable manual, then I will have no choice but to continue without it. If you look at my web page, and access the DOS archives, you will notice that there is almost no information is available with the downloadable file. Unfortunately, that is the way of things. If info was included when I received the program, it was included in our archives. I will do the same thing with the cassette conversions.

Again, please send me your comments, and recommendations. I find it very useful.

Thanks everybody.
 
Back
Top