twilly / odvr

Olympus Digital Voice Recorder Driver
GNU General Public License v3.0
28 stars 11 forks source link

Introduction

odvr is a user-space driver for Olympus digital voice recorders that do not support USB Mass Storage. Not all formats are directly supported (sandec/PULCOD), and functionality is limited, but basic download and listing capabilities are implemented.

Building

Build dependencies:

sudo apt-get update && sudo apt-get install libusb-dev libgtk2.0-dev libsndfile1-dev -y

There is no configure script at this time. Libusb and libsndfile, and their associated development headers, are required. To build, run:

$ make odvr

A static x86 linux binary is included as odvr.x86.

Installing

  1. Build odvr.
  2. Run "make install" as root.
  3. If you are not running Ubuntu, modify "41-odvr.rules" to fit your distro and install it. Don't forget to reload the udev rules. The other option is to run odvr as root, but this is not recommended.

Running

odvr requires access to the user-space USB interface. It is recommended to place "41-odvr.rules" into "/etc/udev/rules.d" or setup your own udev rules rather than running odvr as root. After changing udev rules, don't forget to run "udevcontrol reload_rules" and to replugin your DVR.

Again, root privileges are required unless udev is properly setup.

For the impatient, run the following to test odvr:

$ sudo odvr -l

Usage

Usage: odvr [options] -= Options =- -h : This help. -v : Print version. -d : Download all files in . -e : Download everything. -l : List all files. -x : Delete all recordings in . -c : Delete all recordings. -y : "yes" to all yes/no questions. -r : Reset the DVR. This may fix some sync issues. -D : Enable debug tracing. -E : Download everything in RAW format.

Examples

List recording information:

$ odvr -l

Download all recordings in folder B:

$ odvr -d b

Download all recordings in the scheduled folder:

$ odvr -d s

List and download every recording:

$ odvr -l -e

Notes

Downloaded files are signed 16 bit PCM WAV files at the recorded sample rate. Olympus DVRs internally use a 3-bit differential PCM format with 14 bit resolution. Unfortunately, the Windows software converts from this format into lossy 4bit IMA ADPCM and it resamples. Files downloaded by odvr should be of higher quality than with the Windows software, but it does result in larger WAV files. It is recommended to recompress the WAV files with MP3, Vorbis, or Speex if file size is an issue.

Some programs may have difficulty playing or reading the odd bitrate WAV files. If they do, I recommend using "sox" to resample them into something more common, such as 44100hz.

Mac/PPC support is currently non-existent. There are several places in the odvr code that are endian sensitive, and the code hasn't been tested on big-endian machines. PPC Mac/Linux/BSD developers are more than welcome to submit patches!

odvr may get out-of-sync with the attached DVR. Use "-r" to force a DVR reset when odvr runs. For example, "odvr -r -l" will reset and then list recordings.

Some Olympus DVRs have a high-quality encoding option (PULCOD). This encoding type is not directly supported and odvr will complain about it. Use a different quality level for your recordings or try the unsupported "sandec" program that that is included with this source. It requires wine, the wine development envornment, and a copy of "san_dec.dll." Use odvr to download the raw files, then run sandec with the filename of the raw file.