DSPRelated.com
Forums

Re: Re: Re: Re: query regarding interfacing of ADC/DAC for speech i/p and o/p

Started by Jeff Brower October 19, 2006
Umer-

> Sorry I was out of town so didn't respond you timely
> No it is not working....even after outptr=1.....now what to do. Ok just
> ell me is there any other way..or how can we improve it..

Please explain "not working". What happens?

> .what is the purpose of software delay loop...can't we use it?

I thought that's what you wanted, a long delay between output and input.

-Jeff

> >It was pointed out to me that outptr should be initialized to 1 to get the
> >full 4 sec delay:
> >
> > inptr = 0;
> > outptr = 1;
> >
> >Let me know if it works, or at least gets you closer.
> >
> >-Jeff
> >
> >---------------------------- Original Message ----------------------------
> >Subject: Re: [c55x] Re: Re: query regarding interfacing of ADC/DAC for
> >speech i/p and o/p From: "Jeff Brower"
> >Date: Thu, October 12, 2006 7:18 pm
> >To: "Umer Khan"
> >Cc: c...
> >--
> >
> >Umer-
> >> I couldn't get your second hint related to single circular ....I/O
> >pointer shifted tio each others.So far as your point of not debugging my
> >assignment is concerned, let me tell you that after this preliminay set
> >up (just to verify the correct working of DSK's CODEC) I have to undergo
> >a detailed course of DSP alongwith DSK training. So plz change your mind
> >that i am getting my assignment done from you. If you dont help me I
> >will do it after 6 months. I just want to show it to my advisor.
> >Otherwise i will just show him the loopback working. I was trying to
> >show him a good piece of work by looping it back after some seconds.
> >Also I have the Java experiance not for C.So I would be happy if you
> >help me getting it done. Otherwise no prob.,,,
> >
> >Ok ok... something like the code example below. For a sampling rate of 8
> >kHz, output will be delayed from input by 4 sec. I only stored left
> >channel. I didn't test the code.
> >
> >-Jeff
> >define #BUFLEN 16384 /* must be power of 2 */
> >short left, right, inptr, outptr;
> >short buf[BUFLEN];
> >
> > inptr = 0;
> > outptr = BUFLEN-1;
> >
> > while (TRUE) {
> >
> > while (!DSK5510_AIC23_read16(hCodec, &left));
> > while (!DSK5510_AIC23_read16(hCodec, &right));
> >
> > buf[inptr++] = left;
> > inptr &= BUFLEN-1;
> >
> > left = buf[outptr++];
> > outptr &= BUFLEN-1;
> >
> > while(!DSK5510_AIC23_write16(hCodec, left));
> > while(!DSK5510_AIC23_write16(hCodec, right));
> > }
> >
> >> Jeff Brower wrote:
> >>
> >> Umer-
> >>
> >> > Thanks for ur reply. The code snippet that u have mentioned (i.e.
> >loopback) is already working and i hav already tried it out. But
> >I just
> >>
> >> > want to store the audio input in some buffer array or any thing
> >else.
> >> And
> >> > then I want to loop it back after sometime (in seconds just like
> >after introducing some delay). Please look in to my code to
> >understand wht i am trying to do. This is my first assignment to
> >configure DSK and a preliminary demo (abt which my question is).
> >After that i will start learning DSP concepts and tutorials and
> >manuals of CCS. So kindly help me to get this first step.
> >>
> >> I know what you're trying to do, and I know what's wrong with your
> >code. But I'm not
> >> going to debug your assignment for you.
> >>
> >> The point of my reply is to show that you are assuming too many
> >steps between the
> >> initial working code, and your objective -- which is a typical
> >student error. If you
> >> go carefully, step-by-step, then you can figure it out. I'll give
> >you 2 hints: a)
> >> don't make separate for-loops, and b) use a single, circular buffer
> >with input and
> >> output pointers shifted from each other.
> >>
> >> Good luck!
> >>
> >> -Jeff
> >>
> >> > Umer-
> >> > >
> >> > > > So did u find answer to your query? I am really a new comer in
> >DSP domain and unknown to working C5510 in detail. I want to
> >read audio input from mic and store it.Then i want to play it
> >back to headphone.
> >> > > >
> >> > > > This is my main():
> >> > >
> >> > > First I would try something very simple to verify your DSK
> >board, tool
> >>
> >> > > set-up, build options, memory map, and other basic factors are Ok:
> >> > >
> >> > > void main() {
> >> > >
> >> > > DSK5510_AIC23_CodecHandle hCodec;
> >> > > Int16 left,right;
> >> > >
> >> > > /* Initialize the board support library, must be called first
> >*/ DSK5510_init();
> >> > >
> >> > > /* Start the codec */
> >> > > hCodec = DSK5510_AIC23_openCodec(0, &config);
> >> > >
> >> > > /* Audio loopback */
> >> > > while (TRUE) {
> >> > >
> >> > > while (!DSK5510_AIC23_read16(hCodec, &left));
> >> > > while (!DSK5510_AIC23_read16(hCodec, &right));
> >> > >
> >> > > while(!DSK5510_AIC23_write16(hCodec, left));
> >> > > while(!DSK5510_AIC23_write16(hCodec, right));
> >> > > }
> >> > >
> >> > > DSK5510_AIC23_closeCodec(hCodec);
> >> > > }
> >> > >
> >> > > This should enable audio loopback -- you should hear whatever is on
> >> the
> >> > > inputs. Does that much work? If so, then you can go step-by-step to
> >> add
> >> > > the functionality you need, testing each step carefully.
> >> > >
> >> > > Also, here is a nice page for generating a sine wave with DSK 5510:
> >> > >
> >> > > http://www.tkt.cs.tut.fi/kurssit/3516/exercises/fall05/test_audioIO.c
> >>
> >> > >
> >> > > -Jeff
> >> > > > void main()
> >> > > > {
> >> > > >
> >> > > > DSK5510_AIC23_CodecHandle hCodec;
> >> > > > Int16 i,j,k,left,right;
> >> > > > Int16 input1[8000];
> >> > > > Int16 input2[8000];
> >> > > > /* Initialize the board support library, must be called first
> >*/ DSK5510_init();
> >> > > >
> >> > > > /* Start the codec */
> >> > > > hCodec = DSK5510_AIC23_openCodec(0, &config);
> >> > > >
> >> > > > /* Generate a 1KHz sine wave for 5 seconds */
> >> > > > for (i = 0; i < 10; i++)
> >> > > > {
> >> > > > for (j = 0; j < 8000; j++)
> >> > > > {
> >> > > > /* Read a sample from left channel */
> >> > > > while (!DSK5510_AIC23_read16(hCodec, &left));
> >> > > > input1[j]=left;
> >> > > >
> >> > > > /* Read a sample from right channel */
> >> > > > while (!DSK5510_AIC23_read16(hCodec, &right));
> >> > > > input2[j]= right;
> >> > > > }
> >> > > >
> >> > > > }
> >> > > > for (i = 0; i < 10; i++)
> >> > > > {
> >> > > > for(k=0; k {
> >> > > > while(!DSK5510_AIC23_write16(hCodec, input1[k]));
> >> > > > /* Send a sample to the right channel */
> >> > > > while(!DSK5510_AIC23_write16(hCodec, input2[k]));
> >> > > > }
> >> > > > }
> >> > > > /* Close the codec */
> >> > > > DSK5510_AIC23_closeCodec(hCodec);
> >> > > > }
> >> > > >
> >> > > > But it is not giving any output. What to do?
> >> > > > kindly help me where i am going wrong. I will be waiting for ur
> >> reply
> >> > > >
> >> > > > regards,
> >> > > > Umer
> >> > > > >
> >> > > > > hello everybody
> >> > > > > i m an student doing project "Real time
> >> > > > > implementation of G.723.1 on TMS320VC5510"
> >> > > > > right now i am ready with optimised code which is
> >> > > > > running in CCS simulator by taking i/p from file and putting
> >o/p in2 file
> >> > > > > but now my next step is to run it in to DSK board for that i
> >have to take i/p from mike and taken o/p from headphone
> >> > > > > and for that i have to interface adc/dac of that
> >> > > > > particular board which uses AIC23 as a codec.
> >> > > > > i tried 2 get some idea from audio project available in TI
> >but not getting the flow as i don't aquant with DSP-BIOS
> >also
> >> > > > > please any1 sugest me how to proceed or else can
> >> > > > > anybody send me programme to interface codec withought using
> >DSP-BIOS
> >> > > > >
> >> > > > > sorry for long mail
> >> > > > > waiting for early reply as i have to submit my project bbye
> >> > > > > Alpana
> >> > > > > M.E.(GCOEP)
> >> > > > > Pune
> >>
> >
>