Giter Club home page Giter Club logo

willow385 / tapelion Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 2.0 36 KB

A collection of programs for reading and writing data on cassette tapes with modern computers. Can also be used for storing data on other audio recording mediums and for transmitting data via audio cables.

License: GNU General Public License v3.0

Python 61.08% C++ 35.03% Shell 3.89%
cassette cassette-player python python3 python37 cpp cxx bash bash-script bash-scripting

tapelion's Introduction

/* NOTICE posted 30 December 2019

I am archiving much of my old code from when I was first learning to program. The code in this repository is embarassingly bad, and it's not how I would write code to do something similar today. Please don't take this repository as an example of my programming habits and knowledge; look at my more recent repositories instead. */

Tapelion

A collection of programs for reading and writing data on cassette tapes with modern computers. You should definitely fork the hell out of this and ask me all about it! My email is dante.j.falzone(AT-SIGN)protonmail.com

HOW TO USE THESE PROGRAMS.

  1. It is advised that you should make a directory called "tapelion", like so:

    mkdir ~/tapelion

  2. Place all the programs into the tapelion directory.

  3. Source the "scripts.sh" file, like so:

    source scripts.sh

  4. To write to a tape, use the following steps:

    1. Plug the line out (headphones/speaker jack) of your computer into the line in (microphone jack) of your tape deck. Make sure that a writable tape is loaded in the tape deck. Also make sure that sox is installed and will work with your line out.

    2. Use the command tapelion_write to write information to the tape. It will prompt you to type in a string. As of version 3, valid characters include the full ascii character set.

    3. Make sure that your tape deck is recording when you press ENTER to record your string. It is advised that you should listen to the data transfer because data is beautiful so that you know when to stop recording.

  5. To read from the tape, use the following steps:

    1. Plug the line out from your tape deck into the line in to your computer.

    2. Use the command tapelion_read. Enter in the amount of the tape you wish to read. The program will give you a prompt asking if you would like to use error checking; you can try this, but it is slower, more complicated, and more prone to bugs.

    3. Play the tape while Tapelion loads data from it. Stop the tape when the data transfer is finished. The data stored in the tape will be printed to stdout at the bottom of your terminal.

Dependencies:

Python:
    pip3, aubio, pyaudio, numpy, wave
C++:
    g++
Other:
    Bash
    portaudio19-dev (for Pyaudio)
    sox

tapelion's People

Contributors

willow385 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

nxsluci lemonhall

tapelion's Issues

v.0 doesn't do K and N

The program demod.py recognizes the letters K and N but doesn't add them to the output.

Slow

The bitrate for reading and writing is two bytes per second. At that rate, it would take almost ten minutes to read or write a single kilobyte of data. Possible fixes include increasing the bitrate (up to a point) or finding a way to compress more information into each byte.

It should be noted that this might simply be an unavoidable consequence of using cassette tapes as a medium for storing information. But that doesn't mean I won't think of interesting optimizations and compressions that would allow for increased data storage and faster loading times.

High error rate

Roughly 10% of the data stored on the tapes gets lost or corrupted when reading it out. This might just be because my tapedeck and tapes are old. A good solution would be to find a way to make everything more robust to errors, since most tapes and tapedecks are very old.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.