openvortex-dev
[Top][All Lists]
Advanced

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

Re: [Openvortex-dev] New preview available.


From: Manuel Jander
Subject: Re: [Openvortex-dev] New preview available.
Date: Sat, 20 Sep 2003 19:59:15 -0400

Hello,


> Okay, well as before nothing works for me unless I remove this line
>       hwwrite(vortex->mmio, VORTEX_SPDIF_CFG1, this_38 >> 0x10);
> from vortex_spdif_init().  Since I don't really understand what that
> line is supposed to accomplish, I can't say whether thats an
> irregularity of my receiver, or my soundcard (SQ2500), or what.
> 
> When I remove that line, I still get no output over SPDIF on the ADB
> device, and looking at the code it looks like I shouldn't.  It seems to
> me that to get the ADB on the SPDIF, instead of doing this:
>       vortex_route(vortex, en, 0x14, ADB_MIXOUT(vortex->mixspdif[0]), 
> ADB_SPDIFOUT(0));
>       vortex_route(vortex, en, 0x14, ADB_MIXOUT(vortex->mixspdif[1]), 
> ADB_SPDIFOUT(1));
> you'd want to do something like:
>       vortex_route(vortex, en, 0x14, ADB_MIXOUT(vortex->mixplayb[0]), 
> ADB_SPDIFOUT(0));
>       vortex_route(vortex, en, 0x14, ADB_MIXOUT(vortex->mixplayb[1]), 
> ADB_SPDIFOUT(1));
> since those are the mixers for the ADB device, unless I'm very
> confused.  I did something similar with your last tarball and it worked
> beautifully.

I apologise but you are completely wrong :) The mixspdif array is an
array of mixer outputs which are used to collect all signals that should
go into the SPDIF. If the "spdif" alsa device is used, this mixer output
route to the SPDIFOUT is disconnected, and a direct route from the DMA
engine to the SPDIFOUT is made.

I guess that you got silence because i forget to set the input and
output volume of the mixer elements which connect the "adb" dma channel
with the SPDIF out.

> Now, as for the SPDIF device, once I take out that hwwrite line, it
> seems to work.  In fact I think the sound quality is better than when I
> took from the ADB device before.  However, when I play 44.1KHz ogg
> files, the playback is a little too fast... I have some 48KHz flac files
> which play correctly.  I tried changing the samplerate passed to
> vortex_spdif_init(), but there was no change.
> 
>  - Gordon

44100Hz is still a mistery, since it uses some kind of external clock
(external to the AU88x0 chip).


I attached some diagrams (hope you dont get angry of this email size).
They show the normal "adb" ALSA device in action, which routes are
deleted/created when using the "spdif" ALSA device. 
Well the attachment was to big, so i put them on:
http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/routes.png
http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/spdif.png


Something that should be considered to avoid confusions:

- The Routing buses are the numbers indicated on the lines (routes).
- Route details of SRC input/output arent shown. The diagrams only show
the entire SRC block with its input and its output. On the contrary, the
mixer is split into its input and output "blocks".
- There are upto 32 ADB DMA channels, and they can be routed anywhere.
- There are upto 32 mixer inputs, and they can be connected to any of
the 16 mixer outputs.
- There are upto 16 SampleRateConverter, and they can be connected from
anywhere to anywhere, BUT care has to be taken, which sample rate is
operating at its input or output, since there can not be different
samplerates on a same ADB routing bus. Thats why exclusive routing buses
are used when connecting the DMA to SRC's, and a single routing bus can
be used for connecting the AC97 codec, which operates at fixed 48KHz.
- Signals can only be split or mixed using the mixer. When routing and
output to 2 different inputs, time division demultiplexing takes place
(frame 1 goes into input 0, frame 2 into input 1, frame 3 into input 0,
and so on). Same applies to routing 2 outputs into one input, but the
routing in this case has to be handled by a special funcion (LRT).

Best Regards

Manuel Jander






reply via email to

[Prev in Thread] Current Thread [Next in Thread]