All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family
@ 2015-03-15 16:00 Takashi Sakamoto
  2015-03-15 16:00 ` [PATCH 01/11] ALSA: digi00x: add skelton for Digi 002/003 device driver Takashi Sakamoto
                   ` (10 more replies)
  0 siblings, 11 replies; 41+ messages in thread
From: Takashi Sakamoto @ 2015-03-15 16:00 UTC (permalink / raw)
  To: clemens, tiwai, robin, damien; +Cc: alsa-devel, ffado-devel

This patchset adds an experimental driver for Digidesign 002/003 family.
If you have any models, please test with this driver and report the result.

Currently, this driver correctly supports these major functionalities:
(as long as I tested)
 * PCM sample capture
 * MIDI messages capture
 * MIDI messages playback

And functionalities which need to be tested:
 * streaming with S/PDIF, ADAT and work clock source
 * MIDI device control

And includes a bug which should be fixed:
 * PCM sample playback

For a driver for these models, there was a preceding implementation by
Robin Gareus and Damien Zammit.
[alsa-devel] draft -- ALSA firewire + digi003
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-January/058177.html

This patchset includes their implementation, called-as double-oh-three,
to multiplex PCM samples into CIP packet. As long as I test, their
implementation may includes any bugs and this driver still causes noisy
sound in several cases, while I confirm to get the same data block pattern
which Robin explains.
http://gareus.org/wiki/digi003

If you interested in this bug and tries to fix it, my packet dump may be
helpfull. Please see:
http://subversion.ffado.org/wiki/digi003rack
 * 96khz-24bit-1ch.log (27.5 kB)
 * 44khz-24bit-1ch.log (49.8 kB)
 * 44khz-24bit-2ch.log (49.8 kB)

And DKMS package is available on my github repository.
https://github.com/takaswie/snd-firewire-improve

Takashi Sakamoto (11):
  ALSA: digi00x: add skelton for Digi 002/003 device driver
  ALSA: digi00x: add streaming functionality
  ALSA: digi00x: add proc node for clock status
  ALSA: digi00x: add PCM functionality
  ALSA: digi00x: add MIDI functionality
  ALSA: digi00x: add hwdep interface
  ALSA: digi00x: support unknown asynchronous message
  ALSA: digi00x: support MIDI ports for device control
  ALSA: firewire-lib: allows to implement external MIDI callback
    function
  digi00x: improve MIDI capture/playback
  ALSA: digi00x: apply double-oh-three algorism to multiplex PCM samples

 include/uapi/sound/asound.h               |   3 +-
 include/uapi/sound/firewire.h             |   1 +
 sound/firewire/Kconfig                    |  10 +
 sound/firewire/Makefile                   |   1 +
 sound/firewire/amdtp.c                    |  30 ++-
 sound/firewire/amdtp.h                    |   5 +
 sound/firewire/digi00x/Makefile           |   3 +
 sound/firewire/digi00x/digi00x-hwdep.c    | 192 ++++++++++++++
 sound/firewire/digi00x/digi00x-midi.c     | 199 +++++++++++++++
 sound/firewire/digi00x/digi00x-pcm.c      | 336 +++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-proc.c     |  71 ++++++
 sound/firewire/digi00x/digi00x-protocol.c | 361 +++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-stream.c   | 398 ++++++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x.c          | 179 ++++++++++++++
 sound/firewire/digi00x/digi00x.h          | 126 ++++++++++
 15 files changed, 1907 insertions(+), 8 deletions(-)
 create mode 100644 sound/firewire/digi00x/Makefile
 create mode 100644 sound/firewire/digi00x/digi00x-hwdep.c
 create mode 100644 sound/firewire/digi00x/digi00x-midi.c
 create mode 100644 sound/firewire/digi00x/digi00x-pcm.c
 create mode 100644 sound/firewire/digi00x/digi00x-proc.c
 create mode 100644 sound/firewire/digi00x/digi00x-protocol.c
 create mode 100644 sound/firewire/digi00x/digi00x-stream.c
 create mode 100644 sound/firewire/digi00x/digi00x.c
 create mode 100644 sound/firewire/digi00x/digi00x.h

-- 
2.1.0

^ permalink raw reply	[flat|nested] 41+ messages in thread
* [RFC v2][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family
@ 2015-03-29 15:05 Takashi Sakamoto
  2015-03-29 15:05 ` [PATCH 09/11] ALSA: firewire-lib: allows to implement external MIDI callback function Takashi Sakamoto
  0 siblings, 1 reply; 41+ messages in thread
From: Takashi Sakamoto @ 2015-03-29 15:05 UTC (permalink / raw)
  To: clemens; +Cc: damien, robin, alsa-devel, ffado-devel

This patchset is revised version of my previous set.

[alsa-devel] [RFC][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-March/089141.html

Improvements from the previous set:
 * improve double-oh-three (DOT) application
 * extend hwdep interface for asynchronous messaging
 * limit sampling rate for PCM substream when clock source is external or
   any PCM substreams are running
 * support s16 samples for PCM playback

In this time, I test PCM functionality with my test programs. As a result,
I can confirm that S/PDIF and ADAT output from my Digi 002 Rack includes
expected PCM samples as my programs generates. I think we can judge the
implementation of DOT is proper for Digi 002 rack.

Currently, several issues remains:
 * The port for MIDI machine control message is not tested yet, because
   002/003 console model are required.
 * When allocates 2 or more channel numbers for the device, after 15 to 20
   seconds from playbacking, any PCM samples causes noisy sound. Then, all
   of LED on the front panel light. The streaming still continues correctly.
 * The actual effects of external clock source is not clear. When set the
   clock source is somewhat external, even if stopping the clock source,
   the device continues to sound PCM samples against my expectation.
 * The meaning of asynchronous messages is unknown. This patchset adds
   a functionality to receive it in userspace. You can test it with
   updated libhinawa sample script.
   https://github.com/takaswie/libhinawa

Well, I'll stop my work for this driver in this developing period
(for Linux 4.0), because this work is not in my original plan. I hope any
users test this driver and report the result till Linux 4.2 merge window.
If not, this driver will not be merged into upstream, naturally.

I prepare for DKMS package to test this patchset. Please use it if needed.
https://github.com/takaswie/snd-firewire-improve

Takashi Sakamoto (11):
  ALSA: digi00x: add skeleton for Digi 002/003 device driver
  ALSA: digi00x: add streaming functionality
  ALSA: digi00x: add proc node for clock status
  ALSA: digi00x: add PCM functionality
  ALSA: digi00x: add MIDI functionality
  ALSA: digi00x: add hwdep interface
  ALSA: digi00x: support unknown asynchronous message
  ALSA: digi00x: support MIDI ports for device control
  ALSA: firewire-lib: allows to implement external MIDI callback function
  ALSA: digi00x: improve MIDI capture/playback
  ALSA: digi00x: apply double-oh-three algorithm to multiplex PCM samples

 include/uapi/sound/asound.h               |   3 +-
 include/uapi/sound/firewire.h             |   8 +
 sound/firewire/Kconfig                    |  10 +
 sound/firewire/Makefile                   |   1 +
 sound/firewire/amdtp.c                    |  30 ++-
 sound/firewire/amdtp.h                    |   5 +
 sound/firewire/digi00x/Makefile           |   3 +
 sound/firewire/digi00x/digi00x-hwdep.c    | 200 +++++++++++++++
 sound/firewire/digi00x/digi00x-midi.c     | 199 +++++++++++++++
 sound/firewire/digi00x/digi00x-pcm.c      | 344 +++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-proc.c     |  86 +++++++
 sound/firewire/digi00x/digi00x-protocol.c | 406 ++++++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x-stream.c   | 393 +++++++++++++++++++++++++++++
 sound/firewire/digi00x/digi00x.c          | 179 +++++++++++++
 sound/firewire/digi00x/digi00x.h          | 167 ++++++++++++
 15 files changed, 2026 insertions(+), 8 deletions(-)
 create mode 100644 sound/firewire/digi00x/Makefile
 create mode 100644 sound/firewire/digi00x/digi00x-hwdep.c
 create mode 100644 sound/firewire/digi00x/digi00x-midi.c
 create mode 100644 sound/firewire/digi00x/digi00x-pcm.c
 create mode 100644 sound/firewire/digi00x/digi00x-proc.c
 create mode 100644 sound/firewire/digi00x/digi00x-protocol.c
 create mode 100644 sound/firewire/digi00x/digi00x-stream.c
 create mode 100644 sound/firewire/digi00x/digi00x.c
 create mode 100644 sound/firewire/digi00x/digi00x.h

-- 
2.1.0

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2015-03-29 15:05 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-15 16:00 [RFC][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family Takashi Sakamoto
2015-03-15 16:00 ` [PATCH 01/11] ALSA: digi00x: add skelton for Digi 002/003 device driver Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 02/11] ALSA: digi00x: add streaming functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 03/11] ALSA: digi00x: add proc node for clock status Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 04/11] ALSA: digi00x: add PCM functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 05/11] ALSA: digi00x: add MIDI functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 06/11] ALSA: digi00x: add hwdep interface Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 07/11] ALSA: digi00x: support unknown asynchronous message Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 08/11] ALSA: digi00x: support MIDI ports for device control Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 09/11] ALSA: firewire-lib: allows to implement external MIDI callback function Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 10/11] digi00x: improve MIDI capture/playback Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 11/11] ALSA: digi00x: apply double-oh-three algorism to multiplex PCM samples Takashi Sakamoto
2015-03-16 11:39   ` Damien Zammit
2015-03-16 13:24     ` Takashi Sakamoto
2015-03-16 14:25   ` Robin Gareus
2015-03-16 16:25     ` Takashi Sakamoto
2015-03-16 17:13       ` Robin Gareus
2015-03-16 22:47         ` Takashi Sakamoto
2015-03-17 13:37           ` Robin Gareus
2015-03-17 13:49             ` Damien Zammit
2015-03-18  1:06               ` Takashi Sakamoto
2015-03-19  5:18                 ` Damien Zammit
2015-03-19 13:59                 ` Robin Gareus
2015-03-19 22:46                   ` Takashi Sakamoto
2015-03-19 22:51                     ` Takashi Sakamoto
2015-03-20 12:05                     ` firewire mixer interface -- was " Robin Gareus
2015-03-20 13:00                       ` Clemens Ladisch
2015-03-20 13:25                       ` Takashi Sakamoto
2015-03-20 13:35                         ` Takashi Iwai
2015-03-20 13:51                           ` Takashi Sakamoto
2015-03-20 14:13                             ` Takashi Iwai
2015-03-20 14:45                               ` Takashi Sakamoto
2015-03-20 15:01                                 ` Takashi Iwai
2015-03-21  5:59                                   ` Damien Zammit
2015-03-22  2:55                                     ` Takashi Sakamoto
2015-03-22  5:56                                       ` [FFADO-devel] " Jonathan Woithe
2015-03-24  3:15                                       ` Robin Gareus
2015-03-20 13:55                         ` Damien Zammit
2015-03-20 14:07                           ` Clemens Ladisch
2015-03-22  6:11                       ` [FFADO-devel] " Jonathan Woithe
2015-03-29 15:05 [RFC v2][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family Takashi Sakamoto
2015-03-29 15:05 ` [PATCH 09/11] ALSA: firewire-lib: allows to implement external MIDI callback function Takashi Sakamoto

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.