Menu

Main Menu
Talk Get Daily Search

Member's Online

    User Name
    Password

    General question about audio system & programming on n900

    Reply
    aquasq | # 1 | 2012-07-19, 21:18 | Report

    Hello,

    Please excuse me if I'm posting this in the wrong forum. I thought to make this post in the multimedia forum but I decided to write here since I am interested specifically in the n900. Although my question is very general and beginner level. So excuse me if I'm in the wrong place

    I am interested in learning more about how the audio system works on this phone. I looked over the information at the Developers' Guide (http://wiki.maemo.org/Documentation/...udio_Subsystem) but I am new to this and confused already.

    As far as I understand, when making a voice call, there is the receiver/microphone that receives audio from whomever is talking. There are drivers for this piece of hardware and these drivers let other parts of the phone .. hardware or software communicate with the receiver. And there is a speaker to listen from, and also drivers for this. What happens next? If I make a voice call, I am speaking into the receiver->receiver drivers-> XYZ -> operating system -> XYZ -> encoded audio frames go to GSM radio -> GSM radio firmware -> over the air to cellular network, is that right?

    Suppose I wanted to do some kind of processing to the audio before it gets sent over the air. To increase volume, get rid of background noise, encryption, or whatever. Maybe I want to send some text or data as "audio" because I don't have data or SMS service. This can be done in the drivers for the speaker and receiver? Or some place else?

    Thank you

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 5 Users Say Thank You to aquasq For This Useful Post:
    bingomion, Estel, reinob, sifo, Sourav.dubey

     
    reinob | # 2 | 2012-07-20, 07:22 | Report

    I think the whole audio processing is done by the pulseaudio and various plugins. Still haven't researched on this topic though.

    One thing I'm almost 100% sure is that the actual GSM encoding of the audio (GSM voice codec) is implemented on the GSM chip. Meaning if you somehow manage to feed it with non-voice data (e.g. text or any form of encrypted data) it will still be processed as pure audio -> compressed with a lossy codec -> you will decode garbage at the receiving end.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 2 Users Say Thank You to reinob For This Useful Post:
    aquasq, Estel

     
    aquasq | # 3 | 2012-07-20, 17:49 | Report

    Now that is very interesting. I suppose the codec on the gsm chip is closed like the rest of the firmware and there is no way to alter it or force unmodifed streams over the air.

    Edit | Forward | Quote | Quick Reply | Thanks

     
    reinob | # 4 | 2012-07-20, 20:39 | Report

    well if somehow you managed to do that then it wouldn't be GSM anymore would it?

    this is like saying you use SMTP to send a raw HTML page and still expect the server to handle it

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following User Says Thank You to reinob For This Useful Post:
    Estel

     
    aquasq | # 5 | 2012-07-27, 05:32 | Report

    Yes, I suppose you're right about that. But this is the point of having a custom codec/firmware, anyway - to be able to utilize GSM for other purposes. But without a way to capture and modify the encoded audio frames before the phone sends them to the tower, I guess this isn't feasible, except for phonetic trans-coding type solutions that require very robust encoding to overcome lossy compression and filters.

    Edit | Forward | Quote | Quick Reply | Thanks

    Last edited by aquasq; 2012-07-27 at 05:45.
    The Following 2 Users Say Thank You to aquasq For This Useful Post:
    Estel, reinob

     
    electroaudio | # 6 | 2012-07-27, 06:09 | Report

    Originally Posted by aquasq View Post
    Yes, I suppose you're right about that. But this is the point of having a custom codec/firmware, anyway - to be able to utilize GSM for other purposes. But without a way to capture and modify the encoded audio frames before the phone sends them to the tower, I guess this isn't feasible, except for phonetic trans-coding type solutions that require very robust encoding to overcome lossy compression and filters.
    It is good that the gsm part is closed, if it had been open then it would have allowed for a lot of stuff that noone wants, like stealing another phones identity and such stuff.

    But, maybe you could try to code and decode the data as tones with different frequencies?

    Edit | Forward | Quote | Quick Reply | Thanks

     
    briggers | # 7 | 2012-07-28, 15:05 | Report

    Originally Posted by aquasq View Post
    ... Maybe I want to send some text or data as "audio" because I don't have data or SMS service. This can be done in the drivers for the speaker and receiver? Or some place else?
    This is exactly what dialup internet modems do.
    http://en.wikipedia.org/wiki/Dial-up_Internet_access

    I'm pretty sure you can do most of what you want. There's a voicemail app (I don't remember what it's called) and there's a desktop widget that can record calls (it's called recaller). Their sources might be a good place to start.

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following User Says Thank You to briggers For This Useful Post:
    aquasq

     
    misterc | # 8 | 2012-07-28, 15:20 | Report

    Originally Posted by aquasq View Post
    [...]
    Suppose I wanted to do some kind of processing to the audio before it gets sent over the air. To increase volume, get rid of background noise[...]
    what's wrong with your volume rocker?
    my understanding is that NOKIA already does an awesome job with sound Quality; hope to do a better job then that?

    Originally Posted by aquasq View Post
    Maybe I want to send some text or data as "audio" because I don't have data or SMS service. [...]
    briggers' link to analogue dial-up would be a complicated way to do that, but, fundamentally, isn't that what 2G does as well?
    dial-up won't work unless you are connected to a "dial-in" service and therefore short of indeed encrypting your whole comm., if 2G is not allowed or available, dial-up most likely won't work neither

    Originally Posted by aquasq View Post
    Thank you
    strikes me as a very trollish idea...

    Edit | Forward | Quote | Quick Reply | Thanks

     
    Estel | # 9 | 2012-07-28, 16:50 | Report

    Originally Posted by electroaudio View Post
    It is good that the gsm part is closed, if it had been open then it would have allowed for a lot of stuff that noone wants, like stealing another phones identity and such stuff
    What? You think that security through obscurity is really effective?

    The things You've mentioned are clearly possible now, unfortunately, and *wouldn't* be possible if GSM part would be Open worldwide. Your argumentation is like one guy few years ago, that tried to advocate closed (payware) DNS solutions as "more secure than Open equivalents".

    /Estel

    Edit | Forward | Quote | Quick Reply | Thanks
    The Following 2 Users Say Thank You to Estel For This Useful Post:
    aquasq, reinob

     
    aquasq | # 10 | 2012-07-29, 10:09 | Report

    Originally Posted by electroaudio View Post
    It is good that the gsm part is closed, if it had been open then it would have allowed for a lot of stuff that noone wants, like stealing another phones identity and such stuff.
    I don't think stealing phones would be possible, unless the service providers just ignored it. Interference from non standards compliant phones, yes.

    Originally Posted by electroaudio View Post
    But, maybe you could try to code and decode the data as tones with different frequencies?
    I think this is the only way to do it without an open radio. But it is non trivial and the data needs to be encoded so that the GSM codec and any transcoding by the network won't corrupt it. This makes it obvious to the network that something fishy is going on.

    Originally Posted by briggers View Post
    Thank you for that. I have recorder but didn't know about the voicemail app
    Originally Posted by misterc View Post
    what's wrong with your volume rocker?
    my understanding is that NOKIA already does an awesome job with sound Quality; hope to do a better job then that?
    Do I have to? Or did someone else do this already? Does the n900 support AMR-WB? Why have open source at all?

    Originally Posted by misterc View Post
    briggers' link to analogue dial-up would be a complicated way to do that, but, fundamentally, isn't that what 2G does as well?
    dial-up won't work unless you are connected to a "dial-in" service and therefore short of indeed encrypting your whole comm., if 2G is not allowed or available, dial-up most likely won't work neither
    I don't understand. I would still be sending a digital signal. It just would be a data stream chopped up and inserted into audio frames so that the network would let it through over voice. 2G/3G/3.5G/4G shouldn't matter.

    Originally Posted by misterc View Post
    strikes me as a very trollish idea...
    Many people are interested in this idea. Why do you think it is trollish?

    Originally Posted by Estel View Post
    What? You think that security through obscurity is really effective?

    The things You've mentioned are clearly possible now, unfortunately, and *wouldn't* be possible if GSM part would be Open worldwide. Your argumentation is like one guy few years ago, that tried to advocate closed (payware) DNS solutions as "more secure than Open equivalents".
    Exactly. Security through obscurity is only effective for the telecoms. Personally I would like to know if someone has a way to eavesdrop on my calls or if someone is stealing my credits. I think it's a good idea for those of us making the calls.

    Edit | Forward | Quote | Quick Reply | Thanks

    Last edited by aquasq; 2012-07-29 at 10:37.
    The Following User Says Thank You to aquasq For This Useful Post:
    Estel

     
vBulletin® Version 3.8.8
Normal Logout