The signal on the cassette should be clean (free from extra noise and other sounds), otherwise voc2tzx will have difficulty decoding it.
voc2tzx /maxp 20 /pilot 2048 <voc filename> <cdt filename>
Replace <voc filename> with the filename of the VOC sample file.
Replace >cdt filename> with the name for the resulting CDT tape-image file.
The "/maxp 20" defines the maximum % difference between each pilot pulse. I found the value 20 to be about right for most programs, although I did need to change this for some programs to decode.
I found that if the value is too small or too large, then voc2tzx will fail to find any blocks. There should be a value where voc2tzx will decode the blocks correctly.
If "/cpc" option is specified, then voc2tzx will report the filenames of data stored by the standard OS loading/saving method. This option will also insert a block which identifies this file for CPC464 only.
Using this I transfered "OH MUMMY" and got the resulting output:
ZXTape Utilities - VOC to TZX Converter v0.53b Sampling Rate: 22222 Hz Loading File (6168221 bytes) ... Actual RAW size of file in memory: 6168188 bytes Creating 1.02 version Amstrad CPC .CDT file ... *OH MUMMY P-2388,4092 S-1260/1260 0-1233,1-2465 F-2C B7 L- 263 Cù P-0.019 *------------ P-2391,4092 S-1260/1260 0-1224,1-2448 F-16 B7 L- 2069 Cù P-2.650 *OH MUMMY P-2393,4093 S-1260/1260 0-1237,1-2474 F-2C B7 L- 263 Cù P-0.021 *------------ P-2396,4090 S-1260/1260 0-1229,1-2459 F-16 B7 L- 521 Cù P-11.809 *MUMMY1 P-2395,4092 S-1260/1260 0-1236,1-2472 F-2C B7 L- 263 Cù P-0.019 *------------ P-2395,4092 S-1260/1260 0-1216,1-2434 F-16 B7 L- 2069 Cù P-2.652 *MUMMY1 P-2399,4093 S-1260/1260 0-1237,1-2473 F-2C B7 L- 263 Cù P-0.020 *------------ P-2399,4091 S-1260/1103 0-1217,1-2434 F-16 B7 L- 2069 Cù P-2.650 *MUMMY1 P-2399,4093 S-1260/1260 0-1237,1-2474 F-2C B7 L- 263 Cù P-0.021 *------------ P-2400,4090 S-1260/1260 0-1218,1-2437 F-16 B7 L- 2069 Cù P-2.649 *MUMMY1 P-2398,4093 S-1418/1103 0-1236,1-2472 F-2C B7 L- 263 Cù P-0.020 *------------ P-2395,4090 S-1260/1260 0-1221,1-2443 F-16 B7 L- 2069 Cù P-2.655 *MUMMY1 P-2406,4094 S-1260/1260 0-1240,1-2479 F-2C B7 L- 263 Cù P-0.020 *------------ P-2404,4093 S-1418/1260 0-1237,1-2473 F-16 B7 L- 2069 Cù P-2.647 *MUMMY1 P-2394,4092 S-1418/1103 0-1237,1-2474 F-2C B7 L- 263 Cù P-0.019 *------------ P-2395,4092 S-1418/1260 0-1226,1-2452 F-16 B7 L- 2069 Cù P-2.648 *MUMMY1 P-2396,4092 S-1260/1260 0-1236,1-2470 F-2C B7 L- 263 Cù P-0.019 *------------ P-2395,4092 S-1260/1260 0-1236,1-2471 F-16 B7 L- 1037 Cù
In this example, "OH MUMMY" takes 2 blocks and "MUMMY1" takes 7 blocks.
If there are more than one "------------" line between a line with a name on it, then voc2tzx may have had problems identifying that data block. Adjust the percentage until the listing is good.
Always test the tape image completely with a emulator that supports tape-images before accepting the tape image as good.
I found that voc2tzx does not appear to include a pause at the start of the tape-image. The Amstrad waits for the tape-motor to achieve full speed before attempting to read it. Therefore you might need to "rewind tape to start" for the emulator to detect the first block properly.
This method can be used to transfer any program stored using the standard Amstrad loading system.
For preservation purposes I suggest the following options are not used: "/cpc" and "/force".
It is possible to transfer other loading systems using this method and I have been successful transfering lots of different types.