[LAD] snd-firewire-ctl-services 0.1.0 released

2023-04-19 Thread Takashi Sakamoto
Hi all,

This is a short announcement about a new release of
snd-firewire-ctl-services project.

After development for mostly three years[1], version 0.1.0 is released
today. If you have FireWire audio device and interests in ALSA support,
the release would be worth to check out.

* 
https://github.com/alsa-project/snd-firewire-ctl-services/releases/tag/snd-firewire-ctl-services%2Fv0.1.0

The project provides user space service programs to operate digital
signal processing function in devices supported by ALSA firewire stack.
If using such device, you can configure DSP functions such as the volumes
of device. For some device, effects such as dynamics and equalizers are
also configurable. Available devices are listed in README.rst of the
project.

The service programs work as 'message broaker'. ALSA control applications
are available for end-user interface to communicate to the service
programs[2]. The device connected to IEEE 1394 bus is the peer. The
service programs receives messages from both ends, then translates and
convert the messages to send to the opposite end.

Against your expectation, the project provides neither GUI programs nor
end-user interfaces. I know that the user experience is heavily on
look-and-feel on the GUI programs, while it is out of the aim of project.
I daily use quashctl in QasTools[3] and it is pretty good to me for such
ALSA control application.

If encountering any issue, please file it to github repository[4]. README
should be helpful to new users.

Thanks for your support and long patience to ALSA firewire stack.

[1] 
https://lists.linuxaudio.org/hyperkitty/list/linux-audio-dev@lists.linuxaudio.org/thread/EX4FJ7IIRYM5EDRCYXFXFSABAKYZH3WZ/
[2] For TASCAM FireWire series, ALSA sequencer application is such end as
well to operate control surface.
[3] https://gitlab.com/sebholt/qastools
[4] https://github.com/alsa-project/snd-firewire-ctl-services


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list -- linux-audio-dev@lists.linuxaudio.org
To unsubscribe send an email to linux-audio-dev-le...@lists.linuxaudio.org


[LAD] RFT: implementation for MOTU FireWire series including CueMix DSP and CueMix FX

2021-10-30 Thread Takashi Sakamoto
ng issues

 * Please use issue service in github.com[10].
 * Preferable issues
  * The service program aborts when I operate control A.
  * The service program doesn't interact with on-board operation B.
  * The service program looks to be frozen when I operate C.
  * The behaviour of control element D is odd.
 * Unexpected issues
  * Why device A is not supported
* It's preferable for you to take your time to cooperate with me if you
  wish. It might take a long time since the implementation lays down
  user space and kernel space.
* If so, please file the issue to my remote repository for kernel
  prepatch[12].
  * Why we have no GUI with cool look and feel
* It's your work. The GUI application might be an ALSA control
  application which interacts with the service program.
  * I can not get which control value corresponds to actual ports
* It is restriction under current design of ALSA control interface.
  We need to work for any extension to the design.
  * The name of control B is not user-friendly.
* The name of controls are not fixed yet since we have few name
  convention for controls in studio-use equipments. It might
  corresponds to discussion in ALSA upstream. In my opinion,
  Linux audio developers have been enough lazy to the issue for
  recent decade.


[1] https://github.com/alsa-project/snd-firewire-ctl-services/
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=66c6d1ef86ff
[3] https://github.com/takaswie/snd-firewire-improve
[4] https://github.com/alsa-project/alsa-gobject/
[5] https://lore.kernel.org/alsa-devel/20200623093239.GA68404@workstation/
[6[ https://github.com/alsa-project/libhinawa
[7] https://github.com/alsa-project/libhinawa/tree/topic/motu-mixer-ioctl
[8] https://github.com/alsa-project/snd-firewire-ctl-services/
[9] 
https://github.com/alsa-project/snd-firewire-ctl-services/tree/topic/motu-mixer-ioctl
[10] https://github.com/alsa-project/snd-firewire-ctl-services/issues
[11] https://gitlab.com/sebholt/qastools
[12] https://github.com/takaswie/snd-firewire-improve/issues
[13] 
https://web.archive.org/web/20110704073441/http://subversion.ffado.org/browser/trunk/libffado/doc


Cheers

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] New udev rules for firewire character device are added to systemd

2021-04-23 Thread Takashi Sakamoto
Hi,

Summary of this message:
 * systemd got udev rules with new database for firewire node/unit
 * then fw character device for audio is owned by 'audio' group with ACL
 * the entries are added by my investigation, thus doesn't cover all
 * if you have firewire audio devices not listed in README of below
   repository, please contact to me with image of configuration ROM:
* https://github.com/takaswie/am-config-roms/

The way to create image file of configuration ROM is typically:

```
$ cat /sys/bus/firewire/devices/fw1/config_rom > filename.img
```

Here, I presuppose that Linux FireWire subsystem detects your device as
'fw1'.


Well, in the past, access permission of Linux firewire character device
is decided by udev rules just for video devices[1]. This was
inconvenient some project such as ALSA and FFADO to produce audio
application.

The source code of libffado includes own file for udev rules[2] to take
firewire character device owned by 'audio' group. Additionally the rules
gives 'ID_FFADO' tag, and systemd includes another udev rule[3] to ACL
at logging-in time according to it.

As a whole, the above is not comprehensive and self-contained. I
proposed patchset to systemd for better solution and today it was merged.
 * https://github.com/systemd/systemd/pull/19124

In the patchset, I add some udev rules, based on hwdb for new entries of
node and units in IEEE 1394 bus. You can see the database[4].

The entries of database have below variables when matching to either
node or unit devices:
 * IEEE1394_UNIT_FUNCTION_MIDI
 * IEEE1394_UNIT_FUNCTION_AUDIO
 * IEEE1394_UNIT_FUNCTION_VIDEO

The added udev rules interpret the content of variables and decide group
owner of fw character device(see [1]). Furthermore, the variables are
used again to decide ACL in logging-in time(see [3], too).

The entries of database also include below variables:
 * ID_VENDOR_FROM_DATABASE
 * ID_MODEL_FROM_DATABASE

They are expected to use applications such as PipeWire and PulseAudio for
better names of sound device, which binds to unit instead of node. I
expect the variables can obsolete my former patch for pulseaudio[5].


I handy write the entries of database from my investigation, thus
it could includes the lack of your device, or mistakes. I wish you to
contact to me with image file of configuration ROM when you can not find
your device in README of my collection repository[6], or when you find
any mistakes in database file.

Thanks for your cooperation in advance.

[1] 4 rules in 'rules.d/50-udev-default.rules'
https://github.com/systemd/systemd/blob/main/rules.d/50-udev-default.rules.in#L52
[2] many rules in 'libffado/60-ffado.rules'
http://subversion.ffado.org/browser/trunk/libffado/libffado/60-ffado.rules?rev=2794
[3] 'src/login/70-uaccess.rules.m4'
https://github.com/systemd/systemd/blob/main/src/login/70-uaccess.rules.m4
[4] 'hwdb.d/80-ieee1394-unit-function.hwdb'
https://github.com/systemd/systemd/blob/main/hwdb.d/80-ieee1394-unit-function.hwdb
[5] udev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices 
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/3ac73598c67c
[6] https://github.com/takaswie/am-config-roms/


Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [RFT] ALSA control service programs for Fireworks board module

2020-07-23 Thread Takashi Sakamoto
On Fri, Jul 24, 2020 at 10:37:35AM +0900, Takashi Sakamoto wrote:
> On Thu, Jul 23, 2020 at 11:56:35AM -0700, Len Ovens wrote:
> > On Thu, 23 Jul 2020, Takashi Sakamoto wrote:
> > 
> > > > 
> > > > > $ cargo run --bin snd-fireworks-ctl-service 2
> > > > 
> > > > This worked great the first time, but after the next boot alsamixer 
> > > > showed a
> > > > subset of the same controls (rather than no controls found) and I could 
> > > > not
> > > > restart snd-fireworks-ctl-service. Is it expected that once the above
> > > 
> > > I think that some users install system service for alsactl(1)[1]. In this
> > > case, the system services add control element sets from cache file after
> > > reboot. For the case the service program has a care to run with the 
> > > element
> > 
> > That sounds like what I am seeing. Perhaps alsa-restore.service. I will try
> > with that disabled. Yes that is the difference, it works as expected. I
> > would guess this module would be added to alsa before alsa-restore.service
> > after release. Restore would then be able to fix my clock settings.
> 
> As long as I know, alsactl has some bugs to represent the content of
> control element set in cache file.
> 
> I guess you hit this bug since the feature called as user-define control
> element set had not been used for a long time except for alsa-lib
> 'softvol' PCM plugin.
> 
> If alsactl worked expectedly, the order to execute the system service
> for alsactl and the service program does not matter as long as they
> don't run simultaneously.

Oops. I overloop your demand to restore status of control element set
automatically. I register an issue for this topic and queued for my future
work:

Restart alsa-restore.service after launching the service program
https://github.com/alsa-project/snd-firewire-ctl-services/issues/9


Thanks

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [RFT] ALSA control service programs for Fireworks board module

2020-07-23 Thread Takashi Sakamoto
On Thu, Jul 23, 2020 at 11:56:35AM -0700, Len Ovens wrote:
> On Thu, 23 Jul 2020, Takashi Sakamoto wrote:
> 
> > > 
> > > > $ cargo run --bin snd-fireworks-ctl-service 2
> > > 
> > > This worked great the first time, but after the next boot alsamixer 
> > > showed a
> > > subset of the same controls (rather than no controls found) and I could 
> > > not
> > > restart snd-fireworks-ctl-service. Is it expected that once the above
> > 
> > I think that some users install system service for alsactl(1)[1]. In this
> > case, the system services add control element sets from cache file after
> > reboot. For the case the service program has a care to run with the element
> 
> That sounds like what I am seeing. Perhaps alsa-restore.service. I will try
> with that disabled. Yes that is the difference, it works as expected. I
> would guess this module would be added to alsa before alsa-restore.service
> after release. Restore would then be able to fix my clock settings.

As long as I know, alsactl has some bugs to represent the content of
control element set in cache file.

I guess you hit this bug since the feature called as user-define control
element set had not been used for a long time except for alsa-lib
'softvol' PCM plugin.

If alsactl worked expectedly, the order to execute the system service
for alsactl and the service program does not matter as long as they
don't run simultaneously.

> I have added comments to issues that are closed to indicate what I have
> tested. The closed issues do seem to be fixed.

I see your comments. Thanks for your help and patience! I merged the
topic issue for this RFT into master now.


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [RFT] ALSA control service programs for Fireworks board module

2020-07-23 Thread Takashi Sakamoto
Hi Len,

On Wed, Jul 22, 2020 at 09:40:01PM -0700, Len Ovens wrote:
> On Sat, 18 Jul 2020, Takashi Sakamoto wrote:
> 
> > This is request-for-test (RFT) to the ALSA control service programs for
> > devices with Fireworks board module. The program is available in
> > 'topic/service-for-efw' of below repository, and the RFT is corresponding
> > to Pull Request #2:
> ...
> > If you have listed devices and handle them by ALSA fireworks driver, please
> > test the service program according to the below instruction.
> > 
> >  * Mackie (Loud) Onyx 1200F
> >  * Mackie (Loud) Onyx 400F
> >  * Echo Audio Audiofire 12 (till Jul 2009)
> >  * Echo Audio Audiofire 8 (till Jul 2009)
> >  * Echo Audio Audiofire 12 (since Jul 2009)
> 
> Audiofire12 (seems to have 4.8 firmware butbought used with no info)
> 
> 
> > The project is written by Rust programming language[5] and packaged by
> > cargo[6]. To build, just run below commands in the environment to connect
> > to internet:
> > 
> > ```
> > $ git clone https://github.com/alsa-project/snd-firewire-ctl-services.git 
> > -b topic/service-for-efw
> > $ cd snd-firewire-ctl-services
> > $ cargo build
> > ```
> 
> ...
> 
> > $ cargo run --bin snd-fireworks-ctl-service 2
> 
> This worked great the first time, but after the next boot alsamixer showed a
> subset of the same controls (rather than no controls found) and I could not
> restart snd-fireworks-ctl-service. Is it expected that once the above
> command has been run once there are after effects? Is there a proper way to
> install it so it runs from boot? Or is that already happening but perhaps
> happening too soon before everything is settled?
 
Hmm. The service program adds several control element sets to sound card at
starting, and it deletes the added element sets when finishing. The
system reboot is expected to have no effects since the added element sets
are deleted at the same time the sound card is disonnected.

I think that some users install system service for alsactl(1)[1]. In this
case, the system services add control element sets from cache file after
reboot. For the case the service program has a care to run with the element
sets added by the system services. The care covers the case that the service
program is terminated by the other signals than SIGTERM.

It's possible to fail to start a new process for the service program when
the old process still run because the service program holds ALSA hwdep
character device exclusively.

If the issue is certainly reproducible, I would request testers to mask
the system services once, then run the service program. If the issue still
occurs, run strace(1) to the service program and gather information to
detect where and how the service program is blocked.

> I understand this is just a test for something that will become more
> permanent in the future. So I don't know what I should expect.

I have a plan to add more service programs for audio and music units on
IEEE 1394 bus, supported by drivers in ALSA firewire stack. At the same
time, I have additional plan for system service program to listen to
udev events, then launch and maintain the service programs. This RFT is
a first step for the system service, which allows users to control
devices without adding a batch of code to kernel land.


As you know, current major tools with ALSA control API (e.g. amixer,
alsamixer) need more integration for studio-purpose devices. The
inconvenience mainly comes from alsa-lib mixer abstraction.

Additionally, current implementation of ALSA core is the lack of some
features. For example, it's convenient to add labels to each channel
of element value. In next development period of Linux kernel, I'm going
to post some patches to add the feature.

It's better idea to develop new GUI applications similar to
envy24control. However, in this time I focus on integration for
amixer/alsamixer or the smixer abstraction, but I need more time for
the work.

Anyway, thanks for your report. I already found some bugs and added
patches to fix them. The combination of the service programs and ALSA
standard tools is not enough for user's satisfaction, but it means that
more integration is required for ALSA in the area of recording equipment.

[1] https://github.com/alsa-project/snd-firewire-ctl-services/tree/topic/work


Thanks

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] [RFT] ALSA control service programs for Fireworks board module

2020-07-17 Thread Takashi Sakamoto
iface=MIXER,name='playback-mute'
numid=5,iface=MIXER,name='playback-solo'
numid=3,iface=MIXER,name='playback-volume'
numid=32,iface=MIXER,name='stream-playback-routing'
```

Access permissions for relevant character devices
--

The executable manipulates below character devices to dispatch, and emit
events from end to end. The '%u' is the numerical number of instance in
each subsystem:

 * ALSA control character device (/dev/snd/controlC%u)
 * ALSA hwdep character device (/dev/snd/hwC%uD%u)
 * Linux firewire character device (/dev/fw%u)

Feedback


Any feedback is welcome. For questions, please use mailing list of alsa-devel
or alsa-users[7]. For issues, please use service of github.com[8].

Issues
--

The name of control elements are not fixed yet since the convention of
name for element set is not clear yet for recording equipment.

Users may feel inconvenience to which channel corresponds to which physical
port. Furthermore, in the case that element set includes several elements,
it's unclear that which element corresponds to which physical port as well.
ALSA control core has no feature for the above issues at present.

[1] https://github.com/alsa-project/snd-firewire-ctl-services
[2] https://gitlab.gnome.org/GNOME/glib
[3] https://github.com/alsa-project/alsa-gobject/
[4] https://github.com/alsa-project/libhinawa
[5] https://www.rust-lang.org/
[6] https://doc.rust-lang.org/cargo/
[7] https://www.alsa-project.org/wiki/Mailing-lists
[8] https://github.com/alsa-project/snd-firewire-ctl-services/issues


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [sound/usb/line6] Question on PODHD Edit features like implementation

2020-07-15 Thread Takashi Sakamoto
Hi,

On Wed, Jul 15, 2020 at 02:27:01PM +0200, Aurryon SCHWARTZ wrote:
> First of all, thank you for the feedback. To be honest, your suggestion
> to use the sequencer layer that is below the MIDI layer is very
> appealing to me. I would be able to use the sound subsystem as a
> transport layer without worrying of being compliant with the MIDI
> protocol: The Line6 Edit protocol is proprietary.
> 
> 
> Please find below my new questions. Be prepared, I am newbie with the
> ALSA subsystem ^^.
> 
> - My understanding is that in [2], you are directly using the Linux
> firewire subsystem with your service from the userspace to parse or
> write events from/to the device before sending them to ALSA kernel
> subsystem. If i try to implement the same kind of process with libusb,
> within the userspace, I will be confronted to the fact that the device
> is already claimed(locked) by the kernel module snd-usb-podhd. If I read
> [3] it seems that such mechanism are not existing for firewire and
> therefore it is not possible to do the same with usb. Am I correct?

You got things correctly. In Linux USB subsystem, any USB interface can
be reserved for exclusive access by software procedure called as 'claim'.
It is one of features in Linux USB subsystem and not included in USB
standard itself, as long as I know.

So the service program is written with the expectation that no driver
reserved the target USB interface. If in-kernel driver is expected to
reserve the target USB interface, we need to prepare another 'path' to
transfer/receive data to/from the interface in userspace. For the path,
ALSA hwdep interface is one of options.

(I note that Linux FireWire subsystem has no feature corresponding to
'claim' in Linux USB subsystem. IEEE 1394 specification has similar
procedure called as isochronous resource reservation. The reservation
is done just for stream data such as the sequence of audio data frame,
therefore any node on the bus can always request simple read/write
operation to the other nodes.)

> - If I check /proc/asound/hwdep, I have "00-00: config". This seems to
> be more generic to ALSA subsystem than the audio/device module. In your
> architecture in [2], is the ALSA hwdep dedicated to your sound card or
> is it global to the ALSA subsystem?
 
In a design of ALSA hwdep core, ALSA hwdep interface is a thin wrapper
of `struct file_operation` for Linux character device:
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/tree/sound/core/hwdep.c#n319

Actual implementation of ALSA hwdep device differs driver by driver. All
of ALSA drivers don't necessarily add hwdep device to Linux system.

For the case of drivers in ALSA firewire stack, all of supported
ioctl command are exported to user space in a shape of UAPI header.
In the header, you can see some common ioctl(2) command and
model-specific commands and notifications:
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/tree/include/uapi/sound/firewire.h

The drivers implement the above. For example of ALSA bebob driver,
`sound/firewire/bebob/bebob_hwdep.c` implements it.
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/tree/sound/firewire/bebob/bebob_hwdep.c

You can see slight different in
`sound/firewire/fireworks/fireworks_hwdep.c`. It implements
vendor-specific transaction:
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/tree/sound/firewire/fireworks/fireworks_hwdep.c

Actual implementation of the vendor-specific command/response is in
the service program.

> - Why using specifically a model "device<->firewire subsystem
> (kernel)<->service(userspace)<->alsa
> subsystem(kernel)<->application(userspace)" instead of something like
> "device<->firewire subsystem (kernel)<->service(userspace)<-pipe/unix
> socks->application(userspace)"? What are the pros and cons?

It depends on the case, but protocol is always important when using
inter-process communication (IPC).

For the latter model, we need to decide protocol between service and
application by ourselves.

For the former model, the protocol is already given as ALSA control
interface or ALSA Sequencer interface. We already have many ALSA
applications in user space; e.g. amixer(1), alsactl(1), alsamixer(1)
as ALSA control application, aseqdump(1), aplaymidi(1) as ALSA
sequencer application.  I'd like to use them as 'frontend' for
functionality. Usually any in-kernel driver works as 'backend' for
the functionality, but ALSA control core and ALSA sequencer core
allows any userspace applications transparently works as 'backend'.
It's convenient to the case of ALSA firewire stack.


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] [sound/usb/line6] Question on PODHD Edit features like implementation

2020-07-14 Thread Takashi Sakamoto
Hi,

I'm a maintainer of ALSA firewire stack.

On Tue, Jul 14, 2020 at 11:10:43PM +0200, Nicolas SCHWARTZ Aurryon wrote:
>I am looking to re implement and publish with the help of Wireshark a
>software like Line6 PODHD 500x Edit for my POD HD500X (modification of
>guitar pedal effects). To do this I need to claim the usb interface
>that is already used by the snd-usb-podhd and redo the initialisation,
>also already done by snd-usb-podhd. Therefore, to have both the audio
>and the pedal management I would need to modify the module mentioned
>above. This would aim to create a bridge between kernel and the
>userspace, that redirects the usb urb bulk requests that are not used
>by the audio part, to an interface (only isochronous is used after the
>init).
> 
>In the objective to be merged upstream in the future, how should I
>proceed:
>  * Use midi interfaces and create a fake one, knowing that the
>proprietary but readable protocol is not midi compliant?
>  * Create a char device for the podhd pedal boards? Within the same
>module?
>  * Other suggestions?

Firstly, I apologize to address an idea against the above objective.
 
In my opinion, if the ALSA hwdep device named as 'config' is available
to receive the notification of pedal event in userspace application, you
have another option to implement service program in userspace.

The service program convert the pedal event to ALSA Sequencer event (e.g.
snd_seq_ev_ctl_t[1]) and emit it to port. Another ALSA Sequencer
applications can receive the event via the port.

Even if it's not available via the 'config' ALSA hedep device, it's
possible to add another ALSA hwdep device for your purpose. In this
case, you need knowledge about convention of ioctl command in Linux
kernel.

For your information, recently I publish service program for audio and
music units on IEEE 1394 bus to implements the above idea[2]. If you
are interested, please refer to some illustrations in README.rst.
("Listener model (with help of drivers in ALSA firewire stack)" is
similar to your case but it depicts the case of ALSA control. Not
depicted, I utilize ALSA sequencer in service program for TASCAM FireWire
series as well.)

It's my pleasure if the above message is helpful to your work.


(I know users/developers are eager to put codes into kernel space. I have
no objection to itself. In a view of users, it's preferable because
all codes in the same place, but it requires some efforts for them;
e.g. write code for kernel land following to kernel code style, and
maintain vendor-specific codes following to development cycle of Linux
kernel. This is not so suitable in the case that the communication
protocol is got by reverse-engineering effort and the target devices
have slight differences in the protocol since modified code is not
so quickly published than the code in user space.)

>In the same way, I am looking for suggestion regarding the data
>transmitted within this interface. Would something like struct {int
>message_len, char * data} be sufficient to be transmitted at every urb
>bulk request?
>
>Thanks in advance,
> 
>Nicolas SCHWARTZ
> 
>PS: I can share with you my test code and my current analysis on the
>messages sent/received by the pod when clicking on buttons/sending
>message from the PC, if needed.

[1] 
https://www.alsa-project.org/alsa-doc/alsa-lib/structsnd__seq__ev__ctrl__t.html
[2] https://github.com/alsa-project/snd-firewire-ctl-services


Cheers

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Details about Mackie Control or Mackie Human User Interface

2015-07-21 Thread Takashi Sakamoto
Hi Paul and Len,

Thanks for your replies.

On Jul 20 2015 22:41, Paul Davis wrote:
> On Mon, Jul 20, 2015 at 9:33 AM, Takashi Sakamoto
>  wrote:
> 
>> Well, are there some developers who have enough knowledgement about MIDI
>> messaging rule for Mackie Control or Mackie Human User Interface(HUI)?
> 
> not sure what you mean by "rule". I'm intimately familiar with both MCP and 
> HUI.

Great.

>> As long as I know, for these models, there're three types of the
>> converter; usual MIDI messages such as Control Change (CC), Mackie
>> Control and Mackie Human User Interface, while I have a little
>> knowledgement about the latter two types.
> 
> MCP and HUI both consist of "usual MIDI messages".
> 
> There are a couple of sysex messages used for hand-shaking +
> discovery; everything else is just normal CC and note messages.

I also know the MCP and HUI is a combination of MIDI messages. What I
concern about is the sequence. If the seeuqnce requires device drivers
to keep state (i.e. current message has different meaning according to
previous messages), I should have much work for it.
In this meaning, I use the 'rule'.

Well, when DAWs and devices successfully establish the 'hand-shaking',
they must maintain the state, such as TCP? And in the 'discovery',
devices must retrieve informations from DAWs? Furthermore, in the
'rule', transactions (a set of requests/responses) are used?

On Jul 21 2015 01:25, Len Ovens wrote:
> It is (as Paul has said) straight MIDI. The best guide I know of is the
> "Logic Control User's Manual" from 2002. The MIDI implementation starts
> on page 105. The only thing maybe a bit odd is that there are encoders
> that use CC increment and decrement instead of straight values, but any
> sw written for these surfaces is aware of it.

It's noce, thanks. But the metering is one of my headaches...

On Jul 21 2015 01:25, Len Ovens wrote:
> You will note the use of pitchbend for levels. CC has only 127 values
> which can give "zipper" artifacts. If using CC, the values need to be
> mapped to DB per tick and/or have SW smoothing. The top 50db of the
> range are most important.

I think you mean that rough approximation fomula in acoustics
engineering for human perception (i.e. ISO 226:2003).

On 2015年07月21日 01:25, Len Ovens wrote:
> You get to make up your own midi map is what it finally comes down to.
> OSC might be a better option as the values can be floats and there is no
> limit to number of controls (Midi has only 127 CCs and some of those are
> reserved).

Currently, ALSA middleware has no framework for Open Sound Control. It
just has implementations for MIDI like messages. In this time, I use
rawmidi interface for my purpose. The MIDI messages will be available
for userspace applications to read from ALSA sequencer functionality.


Thanks

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Details about Mackie Control or Mackie Human User Interface

2015-07-20 Thread Takashi Sakamoto
Hi all,

I'm a ALSA developer. I currently focus on developing sound drivers for
devices on IEEE 1394 bus. In this developing period for Linux 4.3, I'm
working for TASCAM FireWire series such as FW-1884 and FW-1082.

Well, are there some developers who have enough knowledgement about MIDI
messaging rule for Mackie Control or Mackie Human User Interface(HUI)?

As long as investigating FW-1082 and FW-1884, these two models transfer
control messages over IEEE 1394 isochronous packets, The shape of these
messages is similar to bitmap. In detail, see my RFC on alsa-devel:

[alsa-devel] [RFC][PATCH 26/37] ALSA: firewire-tascam: add MMAP support
to show status and control message
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-July/094817.html

To enable userspace applications to handle these messages, a converter
to MIDI messages is required, as Windows/OS X drivers did. In my
original plan, I off-load this task to userspace driver applications by
adding mmap(2)ed page. While, due to some reasons, it's better to
implement the converter into kernel driver.

As long as I know, for these models, there're three types of the
converter; usual MIDI messages such as Control Change (CC), Mackie
Control and Mackie Human User Interface, while I have a little
knowledgement about the latter two types.

For this occasion, I want to know the details. If a cost to implement
one of these two types, I'll use it for the converter. Else, I use usual
MIDI messages for my patchset to ALSA upstream.


Thanks

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing: new ALSA driver for Digi 002/003 family

2015-06-28 Thread Takashi Sakamoto

Hi,

On Jun 29 2015 04:32, mindandsky wrote:

The driver seems to work well for me on Ubuntu Studio. I can play tracks and
they sound great.


Thanks for your testing.


I am trying to use the SPDIF input on my Digi 002r. How do
I activate the SPDIF inputs?


The mode switch for digital input interface between S/PDIF and ADAT is 
on 0xe11c of device registers. When it's 0x00, ADAT is enabled. 
Else, S/PDIF is enabled.


Currently there's no plan for the driver to have control elements for 
this, because it's can be implemented in userspace. For this purpose, 
please develop your own application or use 'linux-firewire-utils', like.


./firewire-request /dev/fw1 write 0xe11c 0x0001 (S/PDIF)
./firewire-request /dev/fw1 write 0xe11c 0x (ADAT)

By the way, now, the driver is drastically changed (and rename to 
snd-firewire-digi00x). If you have a rest of time, please test the 
current version under 'amdtp-variants' branch.


https://github.com/takaswie/snd-firewire-improve/tree/amdtp-variants


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing: new ALSA driver for Digi 002/003 family

2015-04-01 Thread Takashi Sakamoto

Hi Damien,

On Apr 02 2015 09:28, Damien Zammit wrote:

On 02/04/15 09:41, Takashi Sakamoto wrote:

Several issues are still remained:
  * 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.

I have not seen this behaviour with your latest driver, Takashi.
I think you would see this if the midi quadlet is confused with the pcm
quadlets and you feed audio data into the midi port. (I have seen this
before)


The channel is *not* PCM or MIDI, it's IEEE 1394 isochronous resource 
channels. I shouhd have mention about it, sorry.


In short, when two or more devices are connected on the same IEEE 1394 
bus, the driver may cause the issue (or not).



  * 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.


I have successfully tested the device with ADAT and SPDIF sync. When I
connect external clock source to the SPDIF-in port and send
0xe118 1 the SPDIF led light turns on and the streaming now
syncs to the new clock.  A flashing Sync led means that the sample rates
are mismatched and the sync is not working correctly.  But sync works
well when sample rates are matched.


OK. My Digi 002 Rack has no LEDs to show current clock source, so I have 
no way to check the actual sync in my eyes.


I request you to test stopping the supply of clock source during 
streaming. I expect the streaming is stopped suddenly, then PCM 
playback/capturing also stop.



I tried 0x011c but I am not convinced that this is related to ADAT at
all.  I think it is a switch to select the mode of SPDIF between
consumer and pro SPDIF modes?  I am guessing here but SPDIF sync no
longer works when I toggle the mode to 1, and it has no effect when I
attach ADAT cable and sync to ADAT, then toggling the mode does nothing.


In my Digi 002 Rack, it's a selector between S/PDIF or ADAT for optical 
input/output interfaces. If not in your Digi 003+, this seems to be 
model-dependent issue and I'll drop it from the driver (digi00x-proc.c).



Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Call for testing: new ALSA driver for Digi 002/003 family

2015-04-01 Thread Takashi Sakamoto
Hi all,

This is a call-for-testing of my new ALSA driver for Digidesign 002/003
family. If you have these devices, would you please test the driver with
your devices and report your experience about it.

Especially, I want you to test MIDI port for machine control, because
developers have no 'console' models, just tested with 'rack' models.

When installing and testing, please follow this instructions:
https://github.com/takaswie/snd-firewire-improve


Patchset was already posted to alsa-devel and confirmed to
playback/capture PCM samples/MIDI messages by ALSA applications.

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

Several issues are still remained:
 * 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


In my plan, this patchset will proposed for Linux 4.2. But these issues
need to be clear till the merge-window.


Regards

Takashi Sakamoto
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-05-06 Thread Takashi Sakamoto

Hi Matt,

(May 06 2014 07:33), M Murdock wrote:

Now... what can I do to help debug MIDI communication with the ProjectMix?
This is an important feature for me as half of the hardware functionality is
as a control surface.


I'm not sure your ProjectMix I/O has this issue or not because this is 
my assumption from behaviour of Firewire 1814. Firewire 1814 and 
ProjectMix I/O are quite similar. So at first I ask you to confirm 
ProjectMix I/O really has this issue.


If ProjectMix I/O has buffer overflow for MIDI messages, it transmits 
packets with discontinuity. ALSA driver can detect it and report it to 
syslog:

kernel: [19757.225489] snd-bebob fw1.0: Detect discontinuity of CIP: E8 40

So please confirm to see such logs when sending much MIDI messages to 
your ProjectMix I/O.



Thanks

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-05-05 Thread Takashi Sakamoto

Hi Matt,

(May 06 2014 03:21), M Murdock wrote:

ffado-dbus-server.out
<http://linux-audio.4202.n7.nabble.com/file/n90825/ffado-dbus-server.out>


As long as I can see this log, 'ffado-mixer' correctly communicate with 
'ffado-dbus-server'.



*FFADO*: version.h shows "PACKAGE_VERSION 2.1.-2504"
svn log --limit 1 shows:

r2504 | jwoithe | 2014-05-03 08:57:38 -0400 (Sat, 03 May 2014) | 1 line

README: some initial editting of device status information in preparation
for the release of FFADO 2.2



OK. It's based on r2504. Currently we, FFADO developers parepare for new 
FFADO version and this revision includes related modification for README.



*ALSA*: git diff HEAD^ HEAD shows the following
diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
index e573f25..29291e4 100644
--- a/sound/firewire/amdtp.c
+++ b/sound/firewire/amdtp.c
@@ -418,7 +418,7 @@ static void amdtp_write_s16(struct amdtp_stream *s,


I expected you to run 'git show' and just show me commit hash. But 
according to the 'index' field in this output, I can see HEAD in your 
local repository is based on this:
firewire-lib: Fix wrong label for 16 bits Raw Audio data 
https://github.com/takaswie/snd-firewire-improve/commit/72c569b8e604cfb6dda73bd07bd46207cf8e007f


I can understand you work with recent sources.


I followed your request for logging ffado-dbus-server output.  Attached is
the debug file captured with the following:
ffado-dbus-server -v 6 &> /tmp/ffado-dbus-server.out

I started ffado-mixer, played with most of the analoge input sliders,
auxiliary sliders, output sliders, and muted/unmuted channels.  I also
manually adjusted some of the faders on the ProjectMix.  The
ffado-dbus-server was then killed.

I was able to confirm that the headphone volume works through the ProjectMix
hardware when listening to random noise.


So in this time, ffado-mixer works fine. I think you failed because 
there were several processes of 'ffado-dbus-server'. Usually just one 
process can execute I/Os between devices so your 'ffado-mixer' 
communicated to one of these processes which cannot execute I/Os.



I was able to record and to play back using aplay and arecord and the
"plughw:ProjectMix" device.  This is great!  I didn't see any logs in syslog
for ALSA.

I admit that I don't know the difference between "hw:ProjectMix" and
"plughw:ProjectMix".  For instance, how should I start jackd (I use
qjackctl).  Should I use the alsa or firewire driver in qjackctl?  Which
device should I specify, hw:ProjectMix or plughw:ProjectMix?


Use hw:ProjectMix for jackd. jackd can automatically adjust the number 
of PCM channels, on the other hand aplay/arecord can't.



Simple mixer control 'Clock Source',0
Simple mixer control 'Digital Input Interface',0
Simple mixer control 'Digital Output Interface',0
Simple mixer control 'Sync Status',0


I was unable to find out where or how to change the PCM channels.  alsamixer
exposes options for clock source, digital input interface (S/PDIF or ADAT)
and digital output interface (S/PDIF or ADAT).  I thought the PCM interfaces
would refer to the physical input and output channels (analogue streams)
available on the ProjectMix.


I meant the 'Digital Input Interface' and 'Digital Output Interface' as 
'digital interfaces for input/output'. They're not 'PCM interface'.


When you switch these controls between 'S/PDIF' and 'ADAT', you can see 
the differences of PCM channels which your jackd recognizes.



I would like to test the MIDI functionality, but I believe my jackd
configuration needs attention first.  Insight into how to configure jackd
properly would be much appreciated.


Try to execute in terminal:
$ jackd -r -d alsa -d hw:ProjectMix -r 48000

If your system is configured to authenticate your account for 'rtprio' 
priviledge, this line is also available:

$ jackd -R -P 89 -d alsa -d hw:ProjectMix -r 48000


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-05-05 Thread Takashi Sakamoto

Hi Matt,

(May 05 2014 12:49), M Murdock wrote:

I am testing your FFADO and ALSA drivers for a ProjectMix I/O.  My goal is
to get the hardware running in Ardour3 with both a firewire interface and
MIDI controls working.  I hope this is possible presently.

My configuration:
Ubuntu 14.04 (recently upgraded to get kernel 3.13 for your ALSA driver)
Installed the 3.11 firewire ALSA driver and the latest SVN FFADO driver
I have disabled PulseAudio as described


Thanks for your trial. At first, I want to confirm which revision of 
codes you use. What is the latest commit in your local repository for 
ALSA drivers and which revision of FFADO you use?



Firewire:
Your ffado-mixer opens and recognizes the ProjectMix, but I am not able to
see any reaction to the ffado-mixer sliders on the ProjectMix hardware.


Please get logs and report it to me. The 'ffado-mixer' request 
'ffado-dbus-server' process to execute I/O from/to devices. So what you 
do is to get logs from 'ffado-dbus-server'. Follow this instruction:

1. Close ffado-mixer
2. Open your favorite terminal
3. Kill processes of 'ffado-dbus-server' because 'ffado-mixer' starts 
the process with dbus help

  $ killall ffado-dbus-server
4. run ffado-dbus-server with verbose option
  $ ffado-dbus-server -v 6
5. run 'ffado-mixer'
  It doesn't matter to run it by GUI/CUI
6. read outputs from 'ffado-dbus-server' in the terminal


ALSA:
I installed the modules with dkms.  ALSA appears to identify the ProjectMix
but I am not able to route sound through aplay or arecord.  I am not able to
verify MIDI to or from the ProjectMix.


In ALSA side, logs are output in /var/log/syslog. So If you have 
problems, please refer to the file.


ProjectMix I/O (and Firewire 1814) can change its number of PCM channels 
according to which digital interfaces are selected for input/output.


So unless you don't know the rule, 'plughw' instead of 'hw' will be your 
help. Like:

 aplay -D plughw:ProjectMix /dev/urandom
 arecord -D plughw:ProjectMix /dev/null

If you want to switch digital interfaces for input/output, please use 
amixer/alsamixer:


$ amixer -c 1
Simple mixer control 'Clock Source',0
  Capabilities: enum
  Items: 'Internal with Digital Mute' 'Digital' 'Word Clock' 'Internal'
  Item0: 'Internal'
Simple mixer control 'Digital Input Interface',0
  Capabilities: enum
  Items: 'S/PDIF Optical' 'S/PDIF Coaxial' 'ADAT Optical'
  Item0: 'S/PDIF Coaxial'
Simple mixer control 'Digital Output Interface',0
  Capabilities: enum
  Items: 'S/PDIF Coaxial' 'ADAT Optical'
  Item0: 'S/PDIF Coaxial'
Simple mixer control 'Sync Status',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]

MIDI functionality may work but there is an issue for Firewire 1814. So 
I guess ProjectMix I/O also has this issue because these devices are 
similar. For this issue, please see '2.Data rate for MIDI substream' in 
this post:

[alsa-devel] A Restriction and rest of issues for this patchsets
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-April/075912.html

Finally, I reccomend you to subscribe/post ffado-devel because there are 
some testers and users of this device.

https://lists.sourceforge.net/lists/listinfo/ffado-devel


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-02-14 Thread Takashi Sakamoto

Hi Daniel,

I notice that I cannot help you without enough logs with which I can 
realize what happens.
At lease, 'verbose' options for aplay/arecord, '#' nodes in 
/proc/asound/cardX and dmesg.


Additionally, would you please add 'LANG=C' when you get output from 
software.

I cannot read Spanish language...

> hi, it does not work.

Try in following steps:
1. $ arecord /tmp/test.wav -D hw:UFX1604 -c 16
(I expected you receive 'Available formats' output)
2. $ arecord /tmp/test.wav -D hw:UFX1604 -c 16 -f (here the format, 
maybe S32_LE)

(I expected you receive 'rate is not accurate' output)
3. $ arecord /tmp/test.wav -D hw:UFX1604 -c 16 -f (the same above) -r 
(got rate)

(I expected it will run correctly.)

I hope you to do these test when killing pulseaudio. The way is here:
https://wiki.ubuntu.com/PulseAudio/Log


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-02-14 Thread Takashi Sakamoto

> still no audio is captured, apparently...
> this card has 16 inputs, maybe I should specify somehow which one
> should be used?

The aplay/arecord has 'D' option. This option is used to indicate PCM 
device.

When you omit this option, 'default' PCM device is used.

In system with PulseAudio, 'default' PCM device is set as input/output 
from/to PulseAudio.

I guess you record from PulseAudio, not directly from your device.

Would you test with 'D' option? Like:
 $ arecord -D hw:UFX1604 -c 16 -f S32_LE -r 44100 /tmp/test.wav


Thanks

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-02-14 Thread Takashi Sakamoto

Hi Daniel,

> I tested it with:
> play test.mp3 - OK
> arecord -d 3 -c 2 -f cd -t wav x.wav RECORDING SILENCE (maybe there is
> something else to configure on my card, but I haven't been able to
> record any sound. trying individual channels as well as stereo output
> settings).

So your test shows:
 - PCM playback goes well
 - PCM capture don't goes well

> In FW mode this command just hangs.

Would you explain more detail?


Thanks

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing (final): ALSA driver for some firewire devices

2014-02-13 Thread Takashi Sakamoto

Hi,

At first, I request you to send output from:
/proc/asound/UFX1604/#clock
/proc/asound/UFX1604/#firmware
/proc/asound/UFX1604/#formation


> but there are no controls in alsamixer,

This is expected. My drivers basically have no ALSA control interface 
because it's just for PCM/MIDI functionality (we call it as 
'streaming'). Currently developers in related projects follow this policy.


If you need to control internal mixer, please join in FFADO project.

So you can test my drivers with ALSA PCM applications like 
aplay/arecord, jackd and so on.


> nor in pavucontrol.

This is expected. Currently PulseAudio fails to detect devices which my 
drivers supports. So we need to load PulseAudio's ALSA sink/source 
modules manually.

 $ pactl load-module module-alsa-sink device=hw:UFX1604
 $ pactl load-module module-alsa-source device=hw:UFX1604

See:
[pulseaudio-discuss] 'Failed to find a working profile' for firewire 
sound devices

http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-January/019685.html


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Call for testing: ALSA driver for Fireworks/BeBoB based devices

2014-02-02 Thread Takashi Sakamoto

Hi Maximilian,

Thanks for your test and report.

I cannot reproduce the bug which you reported, with:
 - Debian GNU/Linux 8 (jessie)
 - Linux kernel 3.12-1-amd64
 - mplayer2 2.0-701-gd4c5b7f-2
 - All of BeBoB devices which I have
 - $ mplay -ao alsa:device=hw=1 /usr/share/sounds/alsa/*

I believe 'verbose' option for mplayer may help our debugging.


Regards

Takashi Sakamoto

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Call for testing (final): ALSA driver for some firewire devices

2014-01-29 Thread Takashi Sakamoto
Hi all,

This is a final call for testing my ALSA drivers for some firewire devices.

Please test my drivers if you have some devices listed in the end of
this mail.
Or please contact to me if you have some deviices listed as 'able to be
supported'.

About the way to install drivers, please refer to my previous post:
[LAD] Call for testing: ALSA driver for Fireworks/BeBoB based devices
http://lists.linuxaudio.org/pipermail/linux-audio-dev/2013-October/034344.html

I've already posted my last RFC to alsa-devel. So this may be a final call.
Please read my previous mail for testing.
[alsa-devel] [RFC v3] [PATCH 00/52] Enhancement for support of firewire
devices
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-January/071820.html

I have one request to you. Currently I'm preparing merge-request to ALSA.
Then I want to add testers' name into the patches with 'Tested-By' field.
Of cource, testers can reject it. Please inform me if you hope or not
when reporting.

[Currently supported devices]
snd-bebob:
 * Edirol, FA-66
 * Edirol, FA-101
 * Presonus, FIREBOX
 * PreSonus, FP10 (former known as FIREPOD)
 * PreSonus, Inspire1394
 * BridgeCo, RDAudio1
 * BridgeCo, Audio5
 * Mackie, Onyx 1220/1620/1640 (Firewire I/O Card)
 * Mackie, d.2 (Firewire Option)
 * Stanton, ScratchAmp
 * Tascam, IF-FW DM
 * Behringer, XENIX UFX 1204
 * Behringer, XENIX UFX 1604
 * Behringer, Digital Mixer X32 series (X-UF Card)
 * Apogee Electronics, Rosetta 200/400 (X-FireWire card)
 * Apogee Electronics, DA/AD/DD-16X (X-FireWire card)
 * Apogee Electronics, Ensemble
 * ESI, Quatafire610
 * AcousticReality, eARMasterOne
 * CME, MatrixKFW
 * Phonic, Helix Board 12 MkII
 * Phonic, Helix Board 18 MkII
 * Phonic, Helix Board 24 MkII
 * Phonic, Helix Board 12 Universal/18 Universal/24 Universal
 * Lynx, Aurora 8/16 (LT-FW)
 * ICON, FireXon
 * PrismSound, Orpheus
 * PrismSound, ADA-8XR
 * TerraTec Electronic GmbH, PHASE 88 Rack FW
 * TerraTec Electronic GmbH, PHASE 24 FW
 * TerraTec Electronic GmbH, Phase X24 FW
 * TerraTec Electronic GmbH, EWS MIC2/MIC8
 * Terratec Electronic GmbH, Aureon 7.1 Firewire
 * Yamaha, GO44
 * YAMAHA, GO46
 * Focusrite, SaffirePro 26 I/O
 * Focusrite, SaffirePro 10 I/O
 * Focusrite, Saffire(no label and LE)
 * M-Audio, Firewire 410
 * M-Audio, Firewire Audiophile
 * M-Audio, Firewire Solo
 * M-Audio, Ozonic
 * M-Audio NRV10
 * M-Audio, ProFireLightbridge
 * Firewire, 1814
 * M-Audio, ProjectMix I/O
snd-fireworks:
 * Mackie(Loud), Onyx 400F
 * Mackie(Loud), Onyx 1200F
 * Echo Audio, AudioFire2
 * Echo Audio, AudioFire4
 * Echo Audio, AudioFirePre8
 * Echo Audio, AudioFire8
 * Echo Audio, AudioFire12
 * Gibson, Robot Interface Pack
snd-oxfw:
 * Griffin, FireWave
 * Lacie FireWire Speakers
 * Behringer,F-Control Audio 202
 * Mackie, Onyx-i series (former models)
 * Mackie, Onyx Satellite


[IDs are unknown but able to be supported]
snd-bebob:
 *  Apogee, Mini-ME Firewire
 *  Apogee, Mini-DAC Firewire
 *  Behringer, F-Control Audio 1616
 *  Behringer, F-Control Audio 610
 *  Cakawalk, Sonar Power Studio 66
 *  CME, UF400e
 *  ESI, Quotafire XL
 *  Infrasonic, DewX
 *  Infrasonic, Windy6
 *  Mackie, Digital X Bus x.200
 *  Mackie, Digital X Bus x.400
 *  Phonic, HB 12
 *  Phonic, HB 24
 *  Phonic, HB 18
 *  Phonic, FireFly 202
 *  Phonic, FireFly 302
 *  Rolf Spuler, Firewire Guitar
snd-oxfw:
 *  Mackie(Loud), d.2 pro
 *  Mackie(Loud), d.4 pro
 *  Mackie(Loud), U.420
 *  Mackie(Loud), U.420d
 *  Mackie(Loud), Tapco Link.Firewire


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] Call for testing: ALSA driver for Fireworks/BeBoB based devices

2013-10-13 Thread Takashi Sakamoto
Hi all,

This is a call for testing my ALSA driver for Fireworks/BeBoB based devices.

Please test 'snd-fireworks' for Fireworks and 'snd-bebob' for BeBoB if
you have some devices listed in the end of this mail.

Status:
- still under development
- Without snd-dice and Clemens' development (I must do this later)

Functionality:
- playback/capturing (full duplex) with PCM/MIDI interface
- hardware metering for some devices with CONTROL interface
- switching clock source/digital interface/digital mode with CONTROL
interface
- print hardware status with PROC interface

Note:
- Don't use simultaneously 'ALSA PCM/MIDI playback/capture' and 'jackd
with Firewire (FFADO) backend'. Both of them try connecting to the
device when another is running.
- I add much modification into snd-firewire-lib for full duplex
synchronization of receive/transmit AMDTP stream.

Requirement:
- Linux kernel 3.11 or later because of Juju (nickname of Firewire
stack) changing its API.
- Dynamic Kernel Module Support (DKMS) is reccomended for safely
installing/uninstalling
(I work with Ubuntu 13.10)

Bug report:
- report with /proc/asound/cardX/#XXX
- please send your experiences to me with the output

How to install (DKMS):
1. $ git clone https://github.com/takaswie/snd-firewire-improve.git
2. $ ln -s $(pwd)/snd-firewire-improve/ /usr/src/alsa-firewire-3.11
(superuser)
3. $ dkms install snd-firewire/3.11 (superuser)

How to uninstall (DKMS):
1. $ modprobe -r snd-bebob snd-fireworks snd-firewire-lib (superuser)
2. $ dkms remove ans-firewire/3.11 --all (superuser)
3. $ rm /usr/src/alsa-firewire-3.11 (superuser)
4. $ rm snd-firewire-improve

How to install (Manual):
1. $ git clone https://github.com/takaswie/snd-firewire-improve.git
2. $ cd snd-firewire-improve
3. $ make
4, backup system snd-firewire-lib/snd-firewire-speakers/snd-isight
(superuser)
5. install
snd-firewire-lib/snd-firewire-speakers/snd-isight/snd-fireworks/snd-bebob 
(superuser)
6. depmod -a (superuser)

How to uninstall (Manual)
1. modprobe -r snd-firewire-lib snd-firewire-speakers snd-isight
snd-fireworks snd-bebob (superuser)
2. remove
snd-firewire-lib/snd-firewire-speakers/snd-isight/snd-fireworks/snd-bebob 
(superuser)
3. recover snd-firewire-lib/snd-firewire-speakers/snd-isight (superuser)
4. depmod -a (superuser)

Confirmed to work:
- AudioFire4
- AudioFirePre8
- Ozonic
- Firewire Solo
- Firewire Audiophile
- Firewire 410

== Fireworks based devices
[Echo Audio]
AudioFire2
AudioFire4
AudioFirePre8
AudioFire8 (till 2009)
AudioFire8 (since 2009)
AudioFire12

[Gibson]
RIP

[Mackie]
Onyx 400F
Onyx 1200F

== BeBoB based devices
[Yamaha]
GO44
GO46

[M-Audio]
(to control mixer channels please use FFADO upstream)
Ozonic
Firewire 410
Firewire Audiophile
Firewire Solo
NRV10
ProFireLightbridge

[Focusrite]
SaffirePro 26 I/O
SaffirePro 10 I/O
Saffire(LE)

[Edirol]
FA-66
FA-101

[TerraTecElectronic GmbH]
Phase88FW
PhaseX24FW

[PreSonus]
FireBox
FirePod

[Mackie]
OnyxFirewire

[Tascam]
IF-FW/DM

[Behringer]
X32

[ApogeeElectronics]
Rosetta200

[ESI]
Quatafire610


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev