1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
libnetmd.py - A python implementation of NetMD protocol.
DISCLAIMER
In short: If it break, you get to keep the pieces.
This library implements a proprietary, non-documented protocol.
Some methods are not tested [enough], so they might just not work, or cause
data loss, or brick your NetMD. Use at your own risk.
REQUIREMENTS
libusb1
python2.4 or later (not compatible with python 3.x), ctypes (required by
python-libusb1, included here)
A NetMD minidisc player.
An USB cable.
Linux:
Your distro should package everything you need (python2.4 + ctypes).
Windows:
As of this writing, Windows XP, 2003, Vista & later are supported by
libusb-1.0, both in 32 and 64 bits.
- Go here:
http://code.google.com/p/libusb-winusb-wip/downloads/list
and download:
- latest libusb release (libusb_2010.10.14.7z as of this writing)
- zadig.exe
- Extract libusb-1.0.dll to your system32 folder (should be something like
C:\windows\system32).
- Plug your NetMD via USB
- Run zadig.exe, and select your inidisc in the drop-down list, then click
"install". You will be prompted for confirmation that you really want to
install this non-certified driver, then installation will happen.
If you get errors, it might mean a driver is already installed for this
device, you should uninstall it and retry installing zadig's driver.
- If prompted, reboot.
- Run python NetMD tools (example: c:\Python26\python.exe lsmd.py)
Note: wait for the driver to be loaded before running commands, otherwise
you will get errors, like "LIBUSB_ERROR_NOT_SUPPORTED".
Note: by default, python does not package the Crypto package, required to
download track to NetMD devices. (TODO: add Crypto URL here.)
For dump_md.py:
sox (and plugins to access your audio system)
A sound card with analog input.
An audio cable.
FILES
Libraries:
libnetmd.py Python implementation of NetMD protocol.
libusb1.py Ctypes-based python wrapper around libusb1.
usb1.py Object definitions for libusb1.py functions.
Utils:
lsusb.py Sample implementation of lsusb command using usb1.py.
mdctl.py Stupid pdb-based command line to test libnetmd.py methods.
lsmd.py Display disc title, tracks, ... of connected NetMD.
dump_md.py Play tracks on a connected NetMD and record them to files.
NOTES
You need to be root to access a device on the USB bus (or at least, to have
read/write permission on the /proc/bus/usb/*/* corresponding to your NetMD).
dump_md.py contains some Works-For-Me values, it might require some tweaks
for tracks to be properly recorded (depends on noise level, minidisk player
reactivity...).
|