Viewing Issue Advanced Details
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|07094||Media Support||Major||Always||Sep 4, 2018, 22:57||Sep 6, 2018, 00:56|
|Version||0.201||Fixed in Version||Build|
|Summary||07094: laser500: cassette WAV files cannot be loaded/saved from/to a real machine|
WAV files produced by the tape emulator are about 15% faster than they should be, and thus cannot be loaded onto a real machine.
At the same time a file from a real machine won't load in the emulator unless it's slowed down by 15% via some external audio tool.
|Steps To Reproduce||
0) unzip the attached file "07094.zip"
1) open laser500 emulator
2) at READY prompt type CRUN and press RETURN
3) "WAITING" in reverse is displayed one row below
4) open UI Panel -> File Manager -> cassette (cass) (might need pressing Scroll Lock to enable UI panel)
5) choose the file "from_real_hardware.wav" from unzipped folder
6) at this point you should be hearing the waveform playing but nothing happens, the program is not loaded
7) open UI Panel -> File Manager -> cassette (cass)
8) choose the file "from_real_hardware_speeded_15_percent.wav" or "from_emulator", and see how both load
This proves the emulator can load its own files or files from real hardware that are speeded up by ~ 15%
The attached file "07094.zip" contains:
from_emulator.wav: waveform generated in MESS
from_real_hardware: waveform generated on a real Laser 500 and sampled on a PC
from_real_hardware_speeded_15_percent: the real hardware waveform increased in speed by 15% with the audio tool "Audacity".
There is also the image "compared.png" which shows MESS vs REAL waveform side by side, where it can be seen that MESS is visibly shorter / faster.
One more info: I checked the file "src/lib/formats/vt_cas.cpp" and the numbers seem correct. According to the reference manual, the shortest HI or LO duration should be 277 microseconds, which indeed correspond to 3 samples at 10800 Hz in the source code.
I should mention also that vt1 (Laser110 family) and vt2 (Laser500 family) share the same numbers, and they could be reunited into one single common code in vt_cass.cpp. In VT1, the numbers are: 1 sample at 3600 Hz which is 277 microseconds as in VT2. The bit encoding is also the same.
|Affected Sets / Systems||laser500|
bug07094.zip (963,185 bytes) Sep 5, 2018, 16:03 Uploaded by nippur72
waveforms for reproducing the bug
|There are no relationship linked to this issue.|
Sep 4, 2018, 23:33
|Could you please provide an example "from original hardware" wave and "from emulation" wave (attach them as a .zip) and some instruction on how to use the machine to load/save cassette images? It would go some way to allow people to confirm the issue and help devs by providing those example images.|
Sep 5, 2018, 16:30
|@Tafoid I've updated the report with an attached file and all the info that might help. I tried to be more detailed as possible. I tried to look for the bug in the source code myself, but all seems correct to me.|