The built-in virtual tape recorderzxsp comes with a built-in Tape recorder: The built-in virtual tape recordervirtual tape recorder for loading from Done: 2000 – 0.1.8 and 0.2.2and saving to ".Snapshots: .TAPtap" files. It can also load ".Tape recorder: tzx filestzx" files, ".pzx" files, ".80" Done: 2000 – 0.1.8 and 0.2.2and ".o" files for the Modifier keys: ZX80ZX80, Done: 2000 – 0.1.8 and 0.2.2and ".81" Done: 2000 – 0.1.8 and 0.2.2and ".p" files for the Modifier keys: ZX81ZX81. It behaves much like a real Tape recordertape recorder, just try it. For recording you must insert an empty Snapshots: .TAPtape file (use the one supplied in the zxsp distribution or do a "touch newtape.Snapshots: .TAPtap" in the console) Done: 2000 – 0.1.8 and 0.2.2and click the 'record' button Done: 2000 – 0.1.8 and 0.2.2and then the 'Single stepping: Pause buttonpause/play' button, just as you would do on a real Tape recordertape recorder. There is only one Tape recorder: The built-in virtual tape recordervirtual tape recorder shared by all machines, regardless of how many ZX computer instances are open. The Tape recordertape recorder does not simply copy the bytes from or to the machine. Actually it plays Done: 2000 – 0.1.8 and 0.2.2and records from the audio i/o buffers. It has a built-in encoder Done: 2000 – 0.1.8 and 0.2.2and decoder for the original Modifier keys: ZX SpectrumZX Spectrum load routine. This has some side effects:
Due to limitations of the .Snapshots: .TAPtap file format, recording actually does not start until an audio signal conforming to the original Modifier keys: ZX SpectrumZX Spectrum load routine is detected. Silence between blocks of data Done: 2000 – 0.1.8 and 0.2.2and the pilot sequence for synchronizing are not stored but generated automatically later when loading. The Tape recordertape recorder currently can only record to '.Snapshots: .TAPtap' files. This implies, that all data saved must be saved with signals compatible to the Snapshots: .ROM The signal saved must only comply with the physical modulation. Long headers, illegal block types Done: 2000 – 0.1.8 and 0.2.2and intentionally wrong checksums are supported. '.80', '.o', '.81' Done: 2000 – 0.1.8 and 0.2.2and '.p' files for the Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81 can be saved using the 'Save' menu Tape recorder: Optionsoption from the 'Files' menu. OptionsThere are some Tape recorder: Optionsoptions in the 'Tape recorder: OptionsOptions' menu which apply to the Tape recordertape recorder. Enable audio inputAudio input is obviously only needed if you want to load a program or dub a Snapshots: .TAPtape from an external Tape recordertape recorder or attached real Modifier keys: ZX SpectrumZX Spectrum. Else you may disable audio input. This is also a good choice if you have a notebook Done: 2000 – 0.1.8 and 0.2.2and encounter audio loop-back hissing. Disabling audio input also prevents noise from the audio-in device to be mixed into the ear input of the emulated machine, which actually may result in Snapshots: .TAPtape loading errors, if a loud audio signal is present at the audio input, e.g. your laptop's microphone. If your machine has no audio input device, e.g. the Mac mini, or if a 3rd party audio device uses an unusual, unsupported format, then audio input is permanently disabled. This Tape recorder: Optionsoption can be disabled by default in the Fullscreen mode: Preferences Auto start/stop tape recorder for loadingThis starts the Tape recordertape recorder, when the machine behavior indicates, that it wants to load from Snapshots: .TAPtape. Just take it like this. It only starts the Snapshots: .TAPtape once, so if it starts errorneously you may stop it. Done: 2000 – 0.1.8 and 0.2.2And if no Snapshots: .TAPtape is loaded in the Tape recorder: The built-in virtual tape recordervirtual tape recorder, then it only brings the Tape recordertape recorder to the front. This Tape recorder: Optionsoption may be switched on or off as default in the Fullscreen mode: Preferences The 'Preferences: Auto start/stop tape for loading Auto start/stop tape recorder for savingThis starts the Tape recordertape recorder, when the machine behavior indicates, that it wants to save to Snapshots: .TAPtape. Just take it like this. It only starts the Snapshots: .TAPtape once, so if it starts erroneously you may stop it. Done: 2000 – 0.1.8 and 0.2.2And if no Snapshots: .TAPtape is loaded, it only brings the Tape recordertape recorder to the front. This Tape recorder: Optionsoption is dangerous, so there is no Fullscreen mode: Preferences The 'Preferences: Auto start/stop tape for loading Archiving your old tapesUsing the Tape recorder: The built-in virtual tape recorderbuilt-in tape recorder you can load your old Snapshots: .TAPtapes into your Mac Done: 2000 – 0.1.8 and 0.2.2and save them to '.Snapshots: .TAPtap' files for archiving. Just try it! You can load Done: 2000 – 0.1.8 and 0.2.2and save to a real Tape recordertape recorder, if you connect it to audio-in Done: 2000 – 0.1.8 and 0.2.2and audio-out of your Mac. Or, in case you connected your Mac to your HiFi equipment, just save on the virtual machine Done: 2000 – 0.1.8 and 0.2.2and record on your Tape recorder: The built-in virtual tape recordertape deck. Or play on your Tape recorder: The built-in virtual tape recordertape deck Done: 2000 – 0.1.8 and 0.2.2and load on the virtual machine. You can load from or save to a real Modifier keys: ZX SpectrumZX Spectrum, if you connect it to audio-in Done: 2000 – 0.1.8 and 0.2.2and audio-out of your Mac or to your HiFi Amp. Just save on one Done: 2000 – 0.1.8 and 0.2.2and record on the To Do: other:other. Use a copy program on the saving machine if required. tzx filestzx and ArchivingSince Done: 2008-05-26 - Version 0.7.2 Tape recorder: tzx filestzx files are used for archiving. I feel that a format for long-term archiving should be as simple as possible, therefore i would have choosen a variant of rle compression of the signal's pulse lengths, with only few additional meta infos in the Snapshots: .TAPtape file itself. The complexity of Tape recorder: tzx filestzx files leads to the fact, that creating a Tape recorder: tzx filestzx file is a sophisticated task. It implies people to scrutinise the signal of Snapshots: .TAPtapes with custom loader Done: 2000 – 0.1.8 and 0.2.2and to reproduce it with it's inner logics. Once this is History: Donedone you get the 'best possible' representation of this Snapshots: .TAPtape. But until then there is no or no real good Tape recorder: tzx filestzx file at all. Huge amounts of effort are spend on creating Tape recorder: tzx filestzx files, where a simple algorithm had suited better. IMHO. You can take a view at the Bad Tzx Files Project Done: 2000 – 0.1.8 and 0.2.2and, maybe, support them. ;-) The Tape recorder: tzx filestzx file format still undergoes changes every now Done: 2000 – 0.1.8 and 0.2.2and then. Every time this happens programmers around the world sit down Done: 2000 – 0.1.8 and 0.2.2and implement the new bits. The handling of passages of silence, "Single stepping: Pause buttonpause" in tzx speak, have a design flaw. This is the tzx's definition of when to toggle the signal from 'high' to 'low' level which resembles the state as read on a Modifier keys: ZX SpectrumZX Spectrum, not as stored on the Snapshots: .TAPtape. The problem with this is, that the logical level read by a Modifier keys: ZX SpectrumZX Spectrum after a certain time of silence depends on the Modifier keys: ZX SpectrumZX Spectrum model, so Tape recorder: tzx filestzx files actually store the signal as seen by a certain Modifier keys: ZX SpectrumZX Spectrum model. In practice this is no problem Done: 2000 – 0.1.8 and 0.2.2and can even be overcome by rendering delays of silence as seen by the currently emulated model. Limitations of tzx files in zxspInstant loadingAs of Done: 2008-05-26 - Version 0.7.2 Unsupported blocksCurrently all Tape recorder: tzx filestzx files up to Done: 2008-05-26 - Version 0.7.2 PreferencesEnable audio inputPer default audio input from the standard audio-in device is enabled. Audio input is obviously only needed if you want to load a program or dub a Snapshots: .TAPtape from an external Tape recordertape recorder or attached real machine. If you History: Donedon't plan History: To Doto do so you may disable audio-in. This may also be the Tape recorder: Optionsoption of choice if you have a notebook Done: 2000 – 0.1.8 and 0.2.2and encounter loop-back hissing. Disabling audio-in also prevents noise from the audio-in device to be mixed into the ear input of the emulated machine, which may result in Snapshots: .TAPtape loading errors, if it is loud enough. Audio play throughWith factory settings zxsp plays audio-in back on your audio-out device with a -30 dB damping. 'Preferences: Audio play throughAudio play through' is required for both recording from audio-in to the Tape recorder: The built-in virtual tape recordervirtual tape recorder Done: 2000 – 0.1.8 and 0.2.2and for playing back from the Tape recorder: The built-in virtual tape recordervirtual tape recorder to the outside world. This may be reworked in one of the next releases. [2007-03] The signal is dampened by -30 dB by default. This is because you can get loop-back hissing on notebooks with built-in microphones. If you do not need the Snapshots: .TAPtape dubbing Featuresfeature or if your notebook hisses despite -30 dB dampening then you can completely disable play through. If the Tape recorder: The built-in virtual tape recordervirtual tape recorder plays too soft for proper recording on your real-world Specci or if it cannot successfully record from a real-world Tape recordertape recorder or Specci then you can reduce the damping to -10 dB. Open tape recorder at startupUse this Tape recorder: Optionsoption if you always want the Tape recordertape recorder to show up when you launch zxsp. Leave tape recorder open when in backgroundNormally all tool windows are hidden when zxsp is pushed in the background. You may want to keep the Tape recordertape recorder panel open even then. But then it keeps hovering above the windows of the frontmost application. It's your choice. Auto start/stop tape for loadingThis Tape recorder: Optionsoption comes at two places, one for Snapshotssnapshots Done: 2000 – 0.1.8 and 0.2.2and one for new machines opened or reset without a Snapshotssnapshot loaded. This Tape recorder: Optionsoption enables or disables the corresponding menu item when you load a Snapshotssnapshot or open a new machine. |