Jump to content
mike_z

TI99 will not read cassette tape

Recommended Posts

The tape recorder's speaker output likely expects to be plugged into an 8 or 16 ohm speaker, so the TI-99 is apparently set up to match impedance.  It has the input pin going through a choke, then a 15 ohm resistor to the input return pin.  So that's where your 15 ohm reading comes from.  So yeah, you need an output amplifier that is capable of driving a speaker directly rather than a powered speaker, to get a good signal to the TI-99.

 

As others have mentioned though (but maybe replacing the drive belt will be enough), you can isolate the record vs playback process using a digital recorder to record your TI-99 save.  Once it's recorded to a .WAV, you can use a program to decode it to a file.  This project is a Python program that claims to do it.

 

Then you can try playing back a known good .WAV into the TI (using a powered amplifier, of course... maybe a home stereo with its output wired into the DE9 plug).

 

Share this post


Link to post
Share on other sites

You know, I saw that Python program on GitHub, but am unsure of how to use it. I've used Python on an Arduino and Raspberry PI. DO I need Python on my PC to run the program? Have you tried this software? Mike

Share this post


Link to post
Share on other sites
3 hours ago, mike_z said:

You know, I saw that Python program on GitHub, but am unsure of how to use it. I've used Python on an Arduino and Raspberry PI. DO I need Python on my PC to run the program? Have you tried this software? Mike

I haven't personally tried it, but yeah you'll need a Python interpreter on your PC to run it.  You can find a Windows version at https://www.python.org/downloads/windows/

Share this post


Link to post
Share on other sites

A couple other threads on the general topic of recorders. I know I sound like a tape loop, repeating my meter-dongle mantra :sleep: but there's lots of good comments.

 

https://atariage.com/forums/topic/278341-calibrating-cassette-players-with-a-multimeter-for-old-computers/?tab=comments

 

https://atariage.com/forums/topic/307408-new-cassette-recorders/#comments

 

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Ed in SoDak said:

A couple other threads on the general topic of recorders. I know I sound like a tape loop, repeating my meter-dongle mantra :sleep: but there's lots of good comments.

 

https://atariage.com/forums/topic/278341-calibrating-cassette-players-with-a-multimeter-for-old-computers/?tab=comments

 

https://atariage.com/forums/topic/307408-new-cassette-recorders/#comments

 

I was thinking of this too, don't use a recorder so don't know where these links were, but it's good not to rehash this again.

Share this post


Link to post
Share on other sites

Star, this morning I downloaded python 3.8.8. This is not the newest version, but the latest version of python that will run on WIN7. I downloaded the TI99 decode file and tried to run it. An error occurred saying I need PyAudio. It took a while to figure out which PyAudio I needed. pyaudio-0.2.11-cp38-cp38-win-amd64.whl. The cp refers to the python version. I downloaded a few others prior to learning this and received plenty of errors. Eventually I got pyaudio installed and python would run. I tried the program ti99_4a_tape_decode.py first.wav ---- this resulted in another error that appears to be a program attribute error. There is no append attribute to some program object. Seems there are a lot of road blocks here. I don't know python that well to understand this. I'll take some time to look at it, it says it is at line 754. Mike

Share this post


Link to post
Share on other sites
Posted (edited)

Here is the area where the error occurs. Line 754

parser.add_argument(
    '--profile',
    dest="profile", default=DEFAULT_PROFILE,
    choices=profiles.keys().append('?'),	<-- line 754
    metavar='P',
    help="Use given decoder configuration profile. Use '?' to get "
         "a list of available profiles. Default: " +
         DEFAULT_PROFILE)

Python is complaining about the append. Stating that keys() doesn't have an attribute called append. Mike

 

I also see that keys() is only mentioned twice in the code. Line 754 and 778.

Edited by mike_z

Share this post


Link to post
Share on other sites

Wow, that's some bad programming, even for the "correct" version of Python (my guess is 2.x).  The line would need to look like this:

parser.add_argument(
    '--profile',
    dest="profile", default=DEFAULT_PROFILE,
    choices=list(profiles.keys()) + list('?'),
    metavar='P',
    help="Use given decoder configuration profile. Use '?' to get "
         "a list of available profiles. Default: " +
         DEFAULT_PROFILE)

 

Share this post


Link to post
Share on other sites

Star, this code was posted on GitHub 4 years ago, so maybe it is Python2. I'm aware that Python 2 and Python3 are not the same and 3 may not run 2. I wonder if I need to try and run this code with Python2. Thanks for the help, Mike.

Share this post


Link to post
Share on other sites

I downloaded Python 2.7.12 and the pyaudio for cp27. I could get Python loaded and could run it, but for some reason I could not load the module pyaudio. I uninstalled both 2.7 and 3.8 and started over, but I've been struggling all afternoon getting Python 2.7 installed with pyaudio. Time to give up for today, Mike

Share this post


Link to post
Share on other sites

Just for grins, I downloaded 2.7.10 and 2.7.18 and tried them. Get the same syntax error when I try and install the module pyaudio. Rats.

Share this post


Link to post
Share on other sites

Yeah older Pythons used to present the list of keys of a dictionary as a "list" type, but now they present it as a "dict_list" type.  The latter is not modifiable, so that's why I used the list() function, to make it a proper list.  Then the '+' operator can concatenate two lists.

 

But the 'append' function never returns anything.  It just adds the appended value to the list.  So that was never appropriate.

Share this post


Link to post
Share on other sites

  This morning, I tried to load Python 2.7.18, this worked, but could not load PyAudio, kept getting a syntax error. So, I tried the same procedure on a different Windows 7 machine. For some reason, on this second machine, everything worked first try. Sometimes computers can really baffle me. Went back to the original Win7 machine and the same error........ Back to the TI99. I made a short 5 line basic program and tried to save it using my Audacity program. Made three copies and transferred them to the 2nd Win7 machine. Loaded up the files and tried the tape decode program. It worked was the good news, the bad news is that the recording is bad.

  This is the response of the tape decode program

607415: Training COmplete, symbol len. = 31.9875
791876: Successfully parsed header: rec count = 1
810812: WARNING: record 1a incorrect checksum
830162: WARNING: record 1b incorrect checksum
830162: ERROR: Record 1 both primary and secondary records corrupted
830162: ERROR: data received bu corrupt
830162: --------------------------------

  The second recording was similar, but included a syncronization error. Another recording with more records had all four records bad. Then the last recording reported Header record count mismatch. This seems to imply that the records, without regard to the method (cassette or Audacity) results in a bad recording. This is in line with the inability of reading them. Can I believe this? I'd like to have a wave file recording that I know works. Can anyone make a short TI99 wave file recording using Audacity and email it to me. I'd like to try a known good recording on the tape decode program. In every run of the tape decode program, using my recording, it only reported errors and never made a TAPE_xxx.dat file. I appreciate your efforts, thanks, Mike

Share this post


Link to post
Share on other sites

The really disgusting part there is that you only need PyAudio if you are analyzing data straight from the sound card.  If opening a file, it's completely unnecessary.

 

It might also help to know if your recording is clipping.  That will ruin your day too.

Share this post


Link to post
Share on other sites

Star, the Audacity recording has a low volume setting. At least the graphic it provides indicates no clipping. The Audacity program allows me to amplify the signal if necessary. Maybe the next test is to increase the volume a db or so at a time. Let you know, thanks for the help. Mike

Share this post


Link to post
Share on other sites

I made a bunch of recording, ranging from -18db to 0db. Then tried to use the tape decode program on all of them. The program reported that it successfully parsed the header and found 2 records, but sync failed on record 1a and all records were corrupt. So it appears that the volume needed for the tape decode program needs is not that important. Mike

Share this post


Link to post
Share on other sites

Well..... I'm out of ideas on solving this problem. So I ordered a TMs9901 from ebay. Maybe a stab in the dark is worth the effort. Let you know, Mike

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...