[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17408712#comment-17408712
 ] 

Juergen Kuri edited comment on GUACAMOLE-1413 at 9/2/21, 9:57 AM:
------------------------------------------------------------------

Hello [~mjumper],

I made one mistake in my train of thought and you gave the headword, 
_resampling_. With the parameters {{GUAC_RDP_AUDIO_RATE 44100}} and 
{{GUAC_RDP_AUDIO_CHANNELS 2}} we configure the PCM modulator of the RDP server 
which samples the analogous audio signal. So, all that ambitious topics I 
mentioned, low-pass filter, anti aliasing, DTFT,... must be done on RDP server 
side. I didn't aim into the direction of resampling the audio signal for the 
purpose of down-sampling. Sorry for that.

So the question is, what happens if we lower the value of 
{{GUAC_RDP_AUDIO_RATE}} for the bit sampling rate of the PCM modulator _inside_ 
the RDP server. Is there, in the RDP server, implemented an anti aliasing 
filter? Do you have you any experience here? If the RDP server does this all 
with satisfying results, then the implementation of the feature request is 
rather easy.

As I mentioned in my earlier 
[#comment-17408137|https://issues.apache.org/jira/browse/GUACAMOLE-1413?focusedCommentId=17408137&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17408137],
 the registry key for RDP server audio quality selection expecting using less 
bandwidth with lower quality, do you have here some experience with it? If this 
selector is very effective with acceptable audio quality loss it might be worth 
to implement another session connection parameter for it.

Thank you and sorry again for barking up the wrong tree.


was (Author: jkuri):
Hello [~mjumper],

I made one mistake in my train of thought and you gave the headword, 
_resampling_. With the parameters {{GUAC_RDP_AUDIO_RATE 44100}} and 
{{GUAC_RDP_AUDIO_CHANNELS 2}} we configure the PCM modulator of the RDP server 
which samples the analogous audio signal. So, all that ambitious topics I 
mentioned, low-pass filter, anti aliasing, DTFT,... must be done on RDP server 
side. I didn't aim into the direction of resampling the audio signal for the 
purpose of down-sampling. Sorry for that.

So the question is, what happens if we lower the value of 
{{GUAC_RDP_AUDIO_RATE}} for the bit sampling rate of the PCM modulator _inside_ 
the RDP server. Is there, in the RDP server, implemented an anti aliasing 
filter? Do you have you any experience here? If the RDP server does this all 
with satisfying results, then the implementation of the feature request is 
rather easy.

As I mentioned in my earlier #comment-17408137, the registry key for RDP server 
audio quality selection expecting using less bandwidth with lower quality, do 
you have here some experience with it? If this selector is very effective with 
acceptable audio quality loss it might be worth to implement another session 
connection parameter for it.

Thank you and sorry again for barking up the wrong tree.

> RDP Session Parameter for the Number of Audio Channels to be transmitted
> ------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-1413
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1413
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole, guacd
>            Reporter: Juergen Kuri
>            Priority: Major
>
> h3. Context
> We want to use the Guacamole RDP proxy server with full audio support using
>  # audio input redirection, rule {{enable-audio-input=true}}
>  # audio output redirection, rule {{disable-audio=false}}
> In the source code, header file {{src/pulse/pulse/pulse.h,}} we see the 
> following constants for the Pulse Audio library for PCM modulator 
> parametrisation of the RDP server:
> {code:c}
> /**
>  * Rate of audio to stream, in Hz.
>  */
> #define GUAC_PULSE_AUDIO_RATE 44100
>  
> /**
>  * The number of channels to stream.
>  */
> #define GUAC_PULSE_AUDIO_CHANNELS 2
>  
> /**
>  * The number of bits per sample.
>  */
> #define GUAC_PULSE_AUDIO_BPS 16
> {code}
> h4. Problem
> Parameter of interest:
>  * {{GUAC_PULSE_AUDIO_CHANNELS 2}}
> For remote users with an internet connection with low network bandwidth, it 
> might be useful to have sessions with just *_one_* audio channel, mono 
> instead of stereo expecting utilising just half of the network bandwidth for 
> the part of audio blob transmission.
> Is this assumption correct, transmitting just one audio channel would half 
> the network bandwidth utilisation for audio blobs?
> h3. Feature
> Add another rule parameter for an individual RDP server session or connection 
> respectively
>  * for database table {{guacamole_connection_parameter}}
> which allows us to parametrise the number of simultaneous audio channels to 
> be transmitted *_in both redirections_*, audio in- and output.
> Possible parameter names might be:
>  * {{disable-audio-stereo}}, default {{false}}
>  * {{enable-audio-mono}}, default {{false}}
>  * {{audio-channels}}, \{1|2}, default {{2}}
> If this is not feasible or difficult to implement for some reasons, add a 
> corresponding parameter to daemon configuration file
>  * {{guacd.conf}}
>  * or {{guacamole.properties}}
> affecting all RDP sessions in the same way.
> h3. Also of Interest
> The parameter {{GUAC_PULSE_AUDIO_RATE}} would also help to reduce network 
> bandwidth if we reduce the sampling rate of the PCM modulator. If full 
> audible audio bandwidth is not needed cause we  just transmit speech for 
> example, the sampling rate can be reduced as we know it for telephone lines 
> (audio bandwidth 300 Hz to 3400 Hz). This however is more complex, a low-pass 
> or an anti-aliasing filter must be programmatically implemented avoiding 
> audio signal aliasing. Topics like  Nyquist–Shannon sampling theorem, 
> Discrete Fourier Transformation DTFT and audio signal aliasing must be 
> studied for deeper understanding before implementation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to