Re: es18xx: Enable wavetable input from ESS chips

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Wed, 26 Dec 2007 23:48:37 +0100,
Krzysztof Helt wrote:
> 
> From: Krzysztof Helt <krzysztof.h1@xxxxx>
> 
> This patch enables wavetable chips ES689/ES69X connected to
> ESS ES18xx chips. The wavetable chip uses FM DAC if the clock signal
> from the wavetable is active.
> It has no effect if there is no ESS wavetable chip present.
> 
> Signed-off-by: Krzysztof Helt <krzysztof.h1@xxxxx>

Applied to HG tree now.  Thanks.


> ---
> 
> This patch has a gotcha. In theory, the OPL synthesis or wavetable input should
> use FM DAC depending on the active clock signal from the wavetable chip.
> Unfortunately, the default state of the wavetable chip from ESS (ES689/ES690/ES692)
> is to send clock signal all the time. This blocks OPL3 signal if the wavetable chip is 
> present.
> 
> This problem can be solved with sysex command 4 send to the wavetable chip.
> It sets the wavetable chip to auto-deactivate mode which switches the wavetable off
>  if there are 5 seconds without midi input (according to the es1879 datasheet).
> 
> I tested this patch on the es1868 chip without the wavetable. The OPL3 synthesis
> worked (no clock signal from the wavetable).
> 
> I tested it on the card with es1868 chip and es690 wavetable. The OPL3 synthesis
> did not work, the wavetable worked. Both the OPL3 and wavetable worked if the
>  sysex command 4 was sent to the wavetable chip (e.g. by amidi tool).
> 
> Is it ok to add this sysex command sending to the driver? How?
> The wavetable clock signal can be detected (there is status bit which says if wavetable is
> active).

You can use snd_rawmidi_kernel_*() functions for opening/sending data
from the kernel code.  See core/seq/seq_midi.c for example.

But, I personally don't think it worth to add this to the driver.
This could be done far easier on user-space (a simple cat), and it's
the matter of setup script.  Though...


> Another question is about ES938 chip (bass, treble and 3D control) on the card.
> This chip is controlled by sysex midi commands. It can be detected (by reading
> settings with sysex commands). Is it possible to add this to the alsamixer or external tool
> for setting these controls is recommended?

Oh what a design...  In this case, the driver implementation sounds
better indeed.  So, if both features are to be implemented,
snd_rawmidi_kernel_*() would be worth.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux