Onestone's bit codec

Started by Micah November 11, 2004
Hi,

after spending a couple hours playing with things, I think I have a pretty 
good understanding of the concept of the roman black style bit-codec. My 
question is, as I'm outputting via the DAC to an audio amplifier, (via a 
filter) the RC effect will not be available. 

The obvious solution to me is to decode the bitstream into a series of DAC 
levels, and play them back at the same rate  as encoding. As I'm not a huge 
expert on analog circuits, I was wondering if there's an obvious error with 
this mode of thought? More processing, that's for sure, but is it workable? 

I'll work on a decoding routine and post it here to see what you think. 

Thanks,
-Micah 

Beginning Microcontrollers with the MSP430

Hi,
some times ago I implemented 2bit ADPCM according to G.726 Recommendation into
MSP running on 8MHz and it works wery well. As a source I used TI's BPRA053
where is implementation for TMS, but encoder is very well described and it fits
into MSP - I programmed it in assembler.
It is not bit codec, it works with 8k samples/sec (I used internal ADC for input
and PWM for output, now you can use MSP430F16x with DAC) and final coded
bitstream is 16kbit/s. It may better suits you.

Jarda
  ----- Micah wrote: ----- 
  Hi,

  after spending a couple hours playing with things, I think I have a pretty 
  good understanding of the concept of the roman black style bit-codec. My 
  question is, as I'm outputting via the DAC to an audio amplifier, (via a 
  filter) the RC effect will not be available. 

  The obvious solution to me is to decode the bitstream into a series of DAC 
  levels, and play them back at the same rate  as encoding. As I'm not a huge 
  expert on analog circuits, I was wondering if there's an obvious error with 
  this mode of thought? More processing, that's for sure, but is it workable? 

  I'll work on a decoding routine and post it here to see what you think. 

  Thanks,
  -Micah 





It is workable, I did it once just to play with, but the code lies 
eviscerated on an old dead machine. What is wrong with RC via an analog 
buffer (voltage follower to an audio amp? Or even direct to a simple amp 
like the LM386?

The CODEC is actually a variation of CVSD.

Al

Micah wrote:
> Hi,
> 
> after spending a couple hours playing with things, I think I have a pretty 
> good understanding of the concept of the roman black style bit-codec. My 
> question is, as I'm outputting via the DAC to an audio amplifier, (via a 
> filter) the RC effect will not be available. 
> 
> The obvious solution to me is to decode the bitstream into a series of DAC 
> levels, and play them back at the same rate  as encoding. As I'm not a huge

> expert on analog circuits, I was wondering if there's an obvious error with

> this mode of thought? More processing, that's for sure, but is it workable?

> 
> I'll work on a decoding routine and post it here to see what you think. 
> 
> Thanks,
> -Micah 
> 
> 
> 
> .
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 


Nothing's wrong with that other than I already have a board built, the
output 
section is a TPA2005 digital amp, fed by DAC0 and DAC1 via RC4580op amp it 
looks like. 

Basically, it comes out of the chip, through a .22uf Cap, and a 10k resistor 
into the RC4580 op amp at the negative input DAC1 does this same thing as 
well, the op amp acts as a mixer. The output of the op amp then feeds the 
single input of the power amp. (headphone driver)

Would this type of setup work with just outputting bits as the codec 
describes? I'm a little confused due to my inexperience in Analog, but it 
sounded like this was too different of a setup. 

-Micah 

On Thursday 11 November 2004 05:33 am, onestone wrote:
>  It is workable, I did it once just to play with, but the code lies
>  eviscerated on an old dead machine. What is wrong with RC via an analog
>  buffer (voltage follower to an audio amp? Or even direct to a simple amp
>  like the LM386?
>
>  The CODEC is actually a variation of CVSD.
>
>  Al
>
>  Micah wrote:
>  > Hi,
>  >
>  > after spending a couple hours playing with things, I think I have a
>  > pretty good understanding of the concept of the roman black style
>  > bit-codec. My question is, as I'm outputting via the DAC to an audio
>  > amplifier, (via a filter) the RC effect will not be available.
>  >
>  > The obvious solution to me is to decode the bitstream into a series
of
>  > DAC levels, and play them back at the same rate as encoding. As I'm
not
>  > a huge expert on analog circuits, I was wondering if there's an
obvious
>  > error with this mode of thought? More processing, that's for sure,
but
>  > is it workable?
>  >
>  > I'll work on a decoding routine and post it here to see what you
think.
>  >
>  > Thanks,
>  > -Micah
>  >
>  >
>  >
>  > .
>  >
>  >
>  > .

I was playing with a C version of adpcm modified from the Sun Microsystems 
32kbit codec by Marc Randolph. It sounds like a similar thing. It didn't 
immediately work though although I got it to compile. Would you mind sharing? 
I'd love to take look. This sound compression stuff is consuming me 
currently. :) 

-Micah

On Wednesday 10 November 2004 11:14 pm, Jaromir Subcik
wrote:
>  Hi,
>  some times ago I implemented 2bit ADPCM according to G.726 Recommendation
> into MSP running on 8MHz and it works wery well. As a source I used TI's
> BPRA053 where is implementation for TMS, but encoder is very well described
> and it fits into MSP - I programmed it in assembler. It is not bit codec,
> it works with 8k samples/sec (I used internal ADC for input and PWM for
> output, now you can use MSP430F16x with DAC) and final coded bitstream is
> 16kbit/s. It may better suits you.
>
>  Jarda
>   ----- Micah wrote: -----
>   Hi,
>
>   after spending a couple hours playing with things, I think I have a
> pretty good understanding of the concept of the roman black style
> bit-codec. My question is, as I'm outputting via the DAC to an audio
> amplifier, (via a filter) the RC effect will not be available.
>
>   The obvious solution to me is to decode the bitstream into a series of
> DAC levels, and play them back at the same rate as encoding. As I'm not a
> huge expert on analog circuits, I was wondering if there's an obvious error
> with this mode of thought? More processing, that's for sure, but is it
> workable?
>
>   I'll work on a decoding routine and post it here to see what you think.
>
>   Thanks,
>   -Micah
>
>
>  
>
>
>
>  .
>
>
>
>
>
>
> 
>
>
>
>
>
>
>
>  .

Micah wrote:
> I was playing with a C version of adpcm modified
from the Sun Microsystems 
> 32kbit codec by Marc Randolph. It sounds like a similar thing. It didn't 
> immediately work though although I got it to compile. Would you mind
sharing? 
> I'd love to take look. This sound compression stuff is consuming me 
> currently. :) 

Then use LPM3, for less current ;?}

Al


> 
> -Micah
> 
> On Wednesday 10 November 2004 11:14 pm, Jaromir Subcik wrote:
> 
>> Hi,
>> some times ago I implemented 2bit ADPCM according to G.726
Recommendation
>>into MSP running on 8MHz and it works wery well. As a source I used TI's
>>BPRA053 where is implementation for TMS, but encoder is very well
described
>>and it fits into MSP - I programmed it in assembler. It is not bit
codec,
>>it works with 8k samples/sec (I used internal ADC for input and PWM for
>>output, now you can use MSP430F16x with DAC) and final coded bitstream
is
>>16kbit/s. It may better suits you.
>>
>> Jarda
>>   ----- Micah wrote: -----
>>   Hi,
>>
>>   after spending a couple hours playing with things, I think I have a
>>pretty good understanding of the concept of the roman black style
>>bit-codec. My question is, as I'm outputting via the DAC to an audio
>>amplifier, (via a filter) the RC effect will not be available.
>>
>>   The obvious solution to me is to decode the bitstream into a series
of
>>DAC levels, and play them back at the same rate  as encoding. As I'm not
a
>>huge expert on analog circuits, I was wondering if there's an obvious
error
>>with this mode of thought? More processing, that's for sure, but is it
>>workable?
>>
>>   I'll work on a decoding routine and post it here to see what you
think.
>>
>>   Thanks,
>>   -Micah
>>
>>
>> 
>>
>>
>>
>> .
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> .
> 
> 
> 
> 
> .
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 


No. The codec relies on the time constant of the RC circuit to recreate 
the analog signal. It is a reasonably simple matter to recreate the 
analog signal from the bit stream, and you have the possibility to 
remove any large glitches.

Al

Micah wrote:

> Nothing's wrong with that other than I already
have a board built, the output 
> section is a TPA2005 digital amp, fed by DAC0 and DAC1 via RC4580op amp it 
> looks like. 
> 
> Basically, it comes out of the chip, through a .22uf Cap, and a 10k
resistor 
> into the RC4580 op amp at the negative input DAC1 does this same thing as 
> well, the op amp acts as a mixer. The output of the op amp then feeds the 
> single input of the power amp. (headphone driver)
> 
> Would this type of setup work with just outputting bits as the codec 
> describes? I'm a little confused due to my inexperience in Analog, but it 
> sounded like this was too different of a setup. 
> 
> -Micah 
> 
> On Thursday 11 November 2004 05:33 am, onestone wrote:
> 
>> It is workable, I did it once just to play with, but the code lies
>> eviscerated on an old dead machine. What is wrong with RC via an analog
>> buffer (voltage follower to an audio amp? Or even direct to a simple
amp
>> like the LM386?
>>
>> The CODEC is actually a variation of CVSD.
>>
>> Al
>>
>> Micah wrote:
>> > Hi,
>> >
>> > after spending a couple hours playing with things, I think I have
a
>> > pretty good understanding of the concept of the roman black style
>> > bit-codec. My question is, as I'm outputting via the DAC to an
audio
>> > amplifier, (via a filter) the RC effect will not be available.
>> >
>> > The obvious solution to me is to decode the bitstream into a
series of
>> > DAC levels, and play them back at the same rate  as encoding. As
I'm not
>> > a huge expert on analog circuits, I was wondering if there's an
obvious
>> > error with this mode of thought? More processing, that's for sure,
but
>> > is it workable?
>> >
>> > I'll work on a decoding routine and post it here to see what you
think.
>> >
>> > Thanks,
>> > -Micah
>> >
>> >
>> >
>> > .
>> >
>> > 
>> > .
> 
> 
> 
> 
> .
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 


I can't find mentioned project now, when (rather if ;-)) ) I find it, I'll
send you a copy.
Jarda
  ----- Micah wrote: -----

  I was playing with a C version of adpcm modified from the Sun Microsystems 
  32kbit codec by Marc Randolph. It sounds like a similar thing. It didn't 
  immediately work though although I got it to compile. Would you mind sharing? 
  I'd love to take look. This sound compression stuff is consuming me 
  currently. :) 

  -Micah

  On Wednesday 10 November 2004 11:14 pm, Jaromir Subcik wrote:
  >  Hi,
  >  some times ago I implemented 2bit ADPCM according to G.726
Recommendation
  > into MSP running on 8MHz and it works wery well. As a source I used TI's
  > BPRA053 where is implementation for TMS, but encoder is very well
described
  > and it fits into MSP - I programmed it in assembler. It is not bit codec,
  > it works with 8k samples/sec (I used internal ADC for input and PWM for
  > output, now you can use MSP430F16x with DAC) and final coded bitstream is
  > 16kbit/s. It may better suits you.
  >
  >  Jarda




But it takes me so long to accomplish anything in LPM3! 

-Micah

On Thursday 11 November 2004 03:38 pm, onestone wrote:
>  Micah wrote:
>  > I was playing with a C version of adpcm modified from the Sun
>  > Microsystems 32kbit codec by Marc Randolph. It sounds like a similar
>  > thing. It didn't immediately work though although I got it to
compile.
>  > Would you mind sharing? I'd love to take look. This sound compression
>  > stuff is consuming me currently. :)
>
>  Then use LPM3, for less current ;?}
>
>  Al
>
>  > -Micah
>  >
>  > On Wednesday 10 November 2004 11:14 pm, Jaromir Subcik wrote:
>  >> Hi,
>  >> some times ago I implemented 2bit ADPCM according to G.726
>  >> Recommendation into MSP running on 8MHz and it works wery well.
As a
>  >> source I used TI's BPRA053 where is implementation for TMS, but
encoder
>  >> is very well described and it fits into MSP - I programmed it in
>  >> assembler. It is not bit codec, it works with 8k samples/sec (I
used
>  >> internal ADC for input and PWM for output, now you can use
MSP430F16x
>  >> with DAC) and final coded bitstream is 16kbit/s. It may better
suits
>  >> you.
>  >>
>  >> Jarda
>  >> ----- Micah wrote: -----
>  >> Hi,
>  >>
>  >> after spending a couple hours playing with things, I think I
have a
>  >>pretty good understanding of the concept of the roman black style
>  >>bit-codec. My question is, as I'm outputting via the DAC to an
audio
>  >>amplifier, (via a filter) the RC effect will not be available.
>  >>
>  >> The obvious solution to me is to decode the bitstream into a
series
>  >> of DAC levels, and play them back at the same rate as encoding.
As I'm
>  >> not a huge expert on analog circuits, I was wondering if there's
an
>  >> obvious error with this mode of thought? More processing, that's
for
>  >> sure, but is it workable?
>  >>
>  >> I'll work on a decoding routine and post it here to see what
you
>  >> think.
>  >>
>  >> Thanks,
>  >> -Micah
>  >>
>  >>
>  >> 
>  >>
>  >>
>  >>
>  >> .
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >> .
>  >
>  > .
>  >
>  >
>  > .

Thanks for looking, I appreciate it. 

On Thursday 11 November 2004 11:23 pm, Jaromir Subcik
wrote:
>  I can't find mentioned project now, when (rather if ;-)) ) I find it, I'll
> send you a copy. Jarda
>   ----- Micah wrote: -----
>
>   I was playing with a C version of adpcm modified from the Sun
> Microsystems 32kbit codec by Marc Randolph. It sounds like a similar thing.
> It didn't immediately work though although I got it to compile. Would you
> mind sharing? I'd love to take look. This sound compression stuff is
> consuming me currently. :)
>
>   -Micah
>
>   On Wednesday 10 November 2004 11:14 pm, Jaromir Subcik wrote:
>   > Hi,
>   > some times ago I implemented 2bit ADPCM according to G.726
> Recommendation > into MSP running on 8MHz and it works wery well. As a
> source I used TI's > BPRA053 where is implementation for TMS, but
encoder
> is very well described > and it fits into MSP - I programmed it in
> assembler. It is not bit codec, > it works with 8k samples/sec (I used
> internal ADC for input and PWM for > output, now you can use MSP430F16x
> with DAC) and final coded bitstream is > 16kbit/s. It may better suits
you.
>   >
>   > Jarda
>
>  
>
>
>
>  .
>
>
>
>
>
>
> 
>
>
>
>
>
>
>
>  .