Moin,
Ok, I'm now basically finished with sbc_pack_frame (joint stereo is not
handled yet). Though I tested it only with mono and two simple test
signals (one impulse and a sawtooth) because I can't load audio data
from files. (Marcel?)
Next thing (after joint stereo) would be some cleanup of sbc.c and
finally convertion to kernel indentation. I tried the Lindent script but
don't like what it does to the code, because most of it is nested in
some kind of for(blk ..) { for(ch ..) { for(sb ..) { ... } } } structure
and wasting a full 8 columns (out of the precious 80) for each of those
loops doesn't feel right to me.
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Brad,
> Too bad 0xff is an invalid media payload header or we could work out a
> way to send it regardless of which headset is listening.
>
> You were saying there is a way to tell the aiptek is listening...
the code for device detection is in the CVS now. The magic word is
device ID.
> The current rcplay works fine with this headset. Something must have
> changed since the last time I tried. (Even streams like 5 which don't
> work with a2play work with rcplay.) I just wish we knew that sbc over
> rfcomm was an official part of the a2dp profile.
The only advantage of using A2DP and thus AVDTP is that it is based on
RTP, but actually the AVDTP basic mode is nothing more or less than a
simple stream without flow control.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Marcel,
Too bad 0xff is an invalid media payload header or we could work out a
way to send it regardless of which headset is listening.
You were saying there is a way to tell the aiptek is listening...
The current rcplay works fine with this headset. Something must have
changed since the last time I tried. (Even streams like 5 which don't
work with a2play work with rcplay.) I just wish we knew that sbc over
rfcomm was an official part of the a2dp profile.
Brad
Marcel Holtmann wrote:
> Hi Brad,
>
>
>>a2play in cvs w/NONSPECAUDIO should behave for you like it did when it
>>was last working for you. i disabled all the new stuff (it didn't help
>>or hurt the bluetake).
>
>
> for the Aiptek headphone I only get the NONSPECAUDIO version working and
> you must send 0xff 0xff for the first media payload. For all further
> media payloads it seems that it doesn't matter anymore.
>
> Setting the pt, timestamp and ssrc is working for me. Does it also work
> for you? If yes, there is no need to uncomment it.
>
>
>>that's really too bad the framing didn't fix things for yours like it
>>did the bluetake. they are totally out of spec. that doesn't bode well
>>for interoperating with the other headsets out there.
>
>
> This is very sad. So I can't help here with testing this until someone
> sends me a Bluetake headphone.
>
> Regards
>
> Marcel
>
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://productguide.itmanagersjournal.com/
> _______________________________________________
> Bluez-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Wed, 24 Nov 2004 07:34:09 +0100 schrieb Marcel Holtmann:
> when using sbcenc in a pipe with rcplay I get a delay for the first
> bits of music that should be played. This is only on the first call of
> the program or after the kernel removed it from its cache. Do you have
> any idea what might causes this?
Hmm, don't know exactly what you mean. I know that there is a delay of
about 38 samples for 4 subbands (and I guess simply double that number
for 8 subbands), but that is inherent in SBC and can be seen in the
reference encoder/decoder, too.
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Henryk,
> > maybe you wanna try:
> >
> > mpg321 --au /dev/stdout foo.mp3 | sbcenc - | a2play <bdaddr> -
>
> That works fine, too, and is a lot less to type, thanks. But now the 100
> Million Dollar question: When a2play is streaming my Microsoft Wireless
> IntelliMouse Explorer for Bluetooth can't connect to the hidd. And vice
> versa: If the mouse is connected a2play won't stream.
>
> Is this expected? Can it be fixed?
this depends on your version of hidd I think. If it has the --master
option and it uses it, then start without. This sounds like a role
switch problem and the headphone want's to be the master of the piconet.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Thu, 25 Nov 2004 03:49:13 +0100 schrieb Marcel Holtmann:
> maybe you wanna try:
>
> mpg321 --au /dev/stdout foo.mp3 | sbcenc - | a2play <bdaddr> -
That works fine, too, and is a lot less to type, thanks. But now the 100
Million Dollar question: When a2play is streaming my Microsoft Wireless
IntelliMouse Explorer for Bluetooth can't connect to the hidd. And vice
versa: If the mouse is connected a2play won't stream.
Is this expected? Can it be fixed?
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Henryk,
> > sbcenc <au-file> | sbcinfo -
> > sbcenc <au-file> | rcplay <bdaddr> -
>
> when using sbcenc in a pipe with rcplay I get a delay for the first bits
> of music that should be played. This is only on the first call of the
> program or after the kernel removed it from its cache. Do you have any
> idea what might causes this?
forget about that, because it was a sbcenc problem. I fixed it now.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Henryk,
> > > this actually reminds me again that I am not an audio expert. Can you
> > > fix it easily?
> >
> > Yupp, I think I did.
>
> wow, good work. I can now do things like this:
>
> sbcenc <au-file> | sbcinfo -
> sbcenc <au-file> | rcplay <bdaddr> -
when using sbcenc in a pipe with rcplay I get a delay for the first bits
of music that should be played. This is only on the first call of the
program or after the kernel removed it from its cache. Do you have any
idea what might causes this?
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Henryk,
> > > a2play will also accept '-' for stdin now. you should try it to see
> > > if my latest change makes it work for your headset.
>
> Brad, you're brilliant. a2play started working for me this morning.
>
> And Marcel, so are you: Now I can do
> sox foo.ogg -r 44100 -s -w -t au - | sbc/sbcenc - | ./a2play <bdaddr> -
maybe you wanna try:
mpg321 --au /dev/stdout foo.mp3 | sbcenc - | a2play <bdaddr> -
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Wed, 24 Nov 2004 15:39:06 +0100 schrieb Marcel Holtmann:
> > a2play will also accept '-' for stdin now. you should try it to see
> > if my latest change makes it work for your headset.
Brad, you're brilliant. a2play started working for me this morning.
And Marcel, so are you: Now I can do
sox foo.ogg -r 44100 -s -w -t au - | sbc/sbcenc - | ./a2play <bdaddr> -
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Brad,
> a2play in cvs w/NONSPECAUDIO should behave for you like it did when it
> was last working for you. i disabled all the new stuff (it didn't help
> or hurt the bluetake).
for the Aiptek headphone I only get the NONSPECAUDIO version working and
you must send 0xff 0xff for the first media payload. For all further
media payloads it seems that it doesn't matter anymore.
Setting the pt, timestamp and ssrc is working for me. Does it also work
for you? If yes, there is no need to uncomment it.
> that's really too bad the framing didn't fix things for yours like it
> did the bluetake. they are totally out of spec. that doesn't bode well
> for interoperating with the other headsets out there.
This is very sad. So I can't help here with testing this until someone
sends me a Bluetake headphone.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Marcel,
a2play in cvs w/NONSPECAUDIO should behave for you like it did when it
was last working for you. i disabled all the new stuff (it didn't help
or hurt the bluetake).
that's really too bad the framing didn't fix things for yours like it
did the bluetake. they are totally out of spec. that doesn't bode well
for interoperating with the other headsets out there.
brad
Marcel Holtmann wrote:
> Hi Brad,
>
>
>>> sbcenc <au-file> | rcplay <bdaddr> -
>>
>>a2play will also accept '-' for stdin now. you should try it to see if
>>my latest change makes it work for your headset.
>
>
> the latest CVS version of a2play is broken for me in both modes and it
> makes also no difference between standard input or if the SBC frames are
> read from a file.
>
>
>>the mailing lists are slow lately, eh?
>
>
> This happens some times. Ask the Sourceforge guys, because they may
> changed hardware again and spooled all our mails. Or another virus is on
> its move and overloads their severs.
>
> Regards
>
> Marcel
>
>
Hi Brad,
> > sbcenc <au-file> | rcplay <bdaddr> -
>
> a2play will also accept '-' for stdin now. you should try it to see if
> my latest change makes it work for your headset.
the latest CVS version of a2play is broken for me in both modes and it
makes also no difference between standard input or if the SBC frames are
read from a file.
> the mailing lists are slow lately, eh?
This happens some times. Ask the Sourceforge guys, because they may
changed hardware again and spooled all our mails. Or another virus is on
its move and overloads their severs.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Marcel
> sbcenc <au-file> | rcplay <bdaddr> -
a2play will also accept '-' for stdin now. you should try it to see if
my latest change makes it work for your headset.
the mailing lists are slow lately, eh?
brad
Hi Henryk,
> > this actually reminds me again that I am not an audio expert. Can you
> > fix it easily?
>
> Yupp, I think I did.
wow, good work. I can now do things like this:
sbcenc <au-file> | sbcinfo -
sbcenc <au-file> | rcplay <bdaddr> -
> > The choose for libao was, because mpg321 uses it and its API is very
> > easy. The possibility for writing to a file and playing on a soundcard
> > with the same set of functions was also a plus. However I don't know
> > what's the best audio library nowadays. So any comments about that are
> > welcome.
>
> Neither do I. I just put "audio file library" into the search at
> freshmeat and it came up with that audio file library. The main reason
> why I'd like to use that is that it supports reading of audio files.
I will check what kind of library other projects prefer and what library
is actually best maintained. So if anyone has any pointers ...
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Tue, 23 Nov 2004 22:03:29 +0100 schrieb Marcel Holtmann:
> this actually reminds me again that I am not an audio expert. Can you
> fix it easily?
Yupp, I think I did.
> I like to keep them as sbcenc and sbcdec, because this is what they
> are doing. The output to a soundcard is a nice extra feature of sbcdec
> and if sbcenc can capture from a soundcard this will be also great.
Ok, sounds reasonable to me.
> The choose for libao was, because mpg321 uses it and its API is very
> easy. The possibility for writing to a file and playing on a soundcard
> with the same set of functions was also a plus. However I don't know
> what's the best audio library nowadays. So any comments about that are
> welcome.
Neither do I. I just put "audio file library" into the search at
freshmeat and it came up with that audio file library. The main reason
why I'd like to use that is that it supports reading of audio files.
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Henryk,
> > However it does not work as expected, but if you accept some noise you
> > will get some results. I used these commands for testing:
>
> Yes, the values sbclib.c puts into frame.pcm_sample don't look right.
this actually reminds me again that I am not an audio expert. Can you
fix it easily?
> If you don't have any objections I'll rename sbcdec as sbcplay (that's
> more descriptive of what it does) and try to come up with an sbcenc and
> sbcdec based on the audio file library
> http://freshmeat.net/projects/audiofilelibrary
I like to keep them as sbcenc and sbcdec, because this is what they are
doing. The output to a soundcard is a nice extra feature of sbcdec and
if sbcenc can capture from a soundcard this will be also great. To have
some nice and handy names I think sbcplay and maybe sbcrec should be
symlinks to sbcdec and sbcenc. This is how this is normally done and if
we share most of the code it is also no problem to be sbcenc and sbcdec
the same program.
The choose for libao was, because mpg321 uses it and its API is very
easy. The possibility for writing to a file and playing on a soundcard
with the same set of functions was also a plus. However I don't know
what's the best audio library nowadays. So any comments about that are
welcome.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Tue, 23 Nov 2004 10:24:57 +0100 schrieb Marcel Holtmann:
> However it does not work as expected, but if you accept some noise you
> will get some results. I used these commands for testing:
Yes, the values sbclib.c puts into frame.pcm_sample don't look right.
If you don't have any objections I'll rename sbcdec as sbcplay (that's
more descriptive of what it does) and try to come up with an sbcenc and
sbcdec based on the audio file library
http://freshmeat.net/projects/audiofilelibrary
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Henryk,
> > these are good news. So I really must code the sbcenc tool now. In
> > what fields do I have to put the PCM stream and what other things must
> > I set?
>
> You'll have to get yourself a shiny new struct sbc_frame, fill in the
> metadata and then put the pcm samples in the pcm_sample member. Then do
> the regular init (only once), analyze, pack (which do the reverse of
> their decoding counterparts).
the sbcenc program can now read Sun/NeXT audio S16_BE AU files and it
runs the encoder and writes the SBC frames to standard output. The tools
sbcinfo and rcplay are modified to accept the filename "-" as reading
from standard input. The sbcdec can't use standard input at the moment.
However it does not work as expected, but if you accept some noise you
will get some results. I used these commands for testing:
sbcenc file.au > file.sbc
sbcdec file.sbc
> > Actually that is the main point behind using tabs with the size of 8
> > spaces. Code that uses too much nested structures become unreadable
> > and you start thinking of how you can make this easier and make it
> > looking a little bit nicer. In most cases the answer is inline
> > functions.
>
> Well yes. For most programs that's entirely true but in this special
> case of only a few ever recurring tight loops (some of them even copied
> literally from the spec) I don't see how littering the otherwise linear
> functionality all over the file would make it easier to read. I'd rather
> say the opposite was true.
Don't worry too much about it, because once we have a working decoder
and encoder we can look over your code and optimize it. Maybe some loops
will simply disappear then.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Moin,
Am Tue, 23 Nov 2004 07:27:40 +0100 schrieb Marcel Holtmann:
> these are good news. So I really must code the sbcenc tool now. In
> what fields do I have to put the PCM stream and what other things must
> I set?
You'll have to get yourself a shiny new struct sbc_frame, fill in the
metadata and then put the pcm samples in the pcm_sample member. Then do
the regular init (only once), analyze, pack (which do the reverse of
their decoding counterparts).
My test code looked kind of like this:
struct sbc_frame frame;
struct sbc_encoder_state estate;
frame.sampling_frequency = 44.1;
frame.blocks = 16;
frame.channel_mode = DUAL_CHANNEL;
frame.channels = 2;
frame.allocation_method = SNR;
frame.subbands = 8;
frame.bitpool = 64;
for(int i = 0; i < frame.subbands*frame.blocks; i++) {
frame.pcm_sample[0][i] = ((double)i /
(double)(frame.subbands*frame.blocks))* (1<<15);
frame.pcm_sample[1][i] = ((double)i /
(double)(frame.subbands*frame.blocks))* (1<<15) * (-1);
}
sbc_encoder_init(&estate, &frame);
sbc_analyze_audio(&estate, &frame);
framelen = sbc_pack_frame(stream+pos, &frame, streamlength-pos-1);
I'm not sure to which value the pcm samples should be normalized. For
starters I'd recommend keeping them between -2^15 and 2^15.
> Actually that is the main point behind using tabs with the size of 8
> spaces. Code that uses too much nested structures become unreadable
> and you start thinking of how you can make this easier and make it
> looking a little bit nicer. In most cases the answer is inline
> functions.
Well yes. For most programs that's entirely true but in this special
case of only a few ever recurring tight loops (some of them even copied
literally from the spec) I don't see how littering the otherwise linear
functionality all over the file would make it easier to read. I'd rather
say the opposite was true.
Oh why, I'll do my very best ...
--
Henryk Pl?tz
Gr??e aus Berlin
~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~
~ Help Microsoft fight software piracy: Give Linux to a friend today! ~
Hi Henryk,
> Ok, I'm now basically finished with sbc_pack_frame (joint stereo is not
> handled yet). Though I tested it only with mono and two simple test
> signals (one impulse and a sawtooth) because I can't load audio data
> from files. (Marcel?)
these are good news. So I really must code the sbcenc tool now. In what
fields do I have to put the PCM stream and what other things must I set?
> Next thing (after joint stereo) would be some cleanup of sbc.c and
> finally convertion to kernel indentation. I tried the Lindent script but
> don't like what it does to the code, because most of it is nested in
> some kind of for(blk ..) { for(ch ..) { for(sb ..) { ... } } } structure
> and wasting a full 8 columns (out of the precious 80) for each of those
> loops doesn't feel right to me.
Actually that is the main point behind using tabs with the size of 8
spaces. Code that uses too much nested structures become unreadable and
you start thinking of how you can make this easier and make it looking a
little bit nicer. In most cases the answer is inline functions.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel