diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp
index 785c47e71f5247dc9aa5559cf7c28db92359b834..8d9a338b495dd569fc58c9a54babe4ee55d8d036 100644
--- a/src/audio/audiolayer.cpp
+++ b/src/audio/audiolayer.cpp
@@ -100,7 +100,7 @@ AudioLayer::openDevice (int indexIn, int indexOut, int sampleRate, int frameSize
 
   std::string pcmp = buildDeviceTopo( plugin , indexOut , 0);
   std::string pcmc = buildDeviceTopo(PCM_SURROUND40 , indexIn , 0);
-  return open_device( pcmp , pcmc , stream);
+  return open_device( "default" , pcmc , stream);
 }
 
   void
@@ -138,7 +138,7 @@ AudioLayer::getDeviceCount()
 
 void AudioLayer::AlsaCallBack( snd_async_handler_t* pcm_callback )
 { 
-  ( ( AudioLayer *)snd_async_handler_get_callback_private( pcm_callback )) -> playUrgent();
+  ( ( AudioLayer *)snd_async_handler_get_callback_private( pcm_callback )) -> playTones();
 }
 
   void 
@@ -149,6 +149,7 @@ AudioLayer::fillHWBuffer( void)
   short s1, s2;
   int periodSize = 256 ;
   int frames = periodSize >> 2 ;
+  _debug("frames  = %d\n");
 
   data = (unsigned char*)malloc(periodSize);
   for(l1 = 0; l1 < 100; l1++) {
@@ -165,6 +166,17 @@ AudioLayer::fillHWBuffer( void)
       //_debugAlsa("< Buffer Underrun >\n");
     }
   }
+  /*
+  int n = 1024;
+  int frames = n >> 2;
+  _debug("frames = %d\n" , frames );
+  void * chunks = malloc( frames * sizeof(short*) );
+  memset( chunks , 0 , frames );
+
+  while( snd_pcm_writei( _PlaybackHandle , chunks , frames ) < 0 ){
+    snd_pcm_prepare( _PlaybackHandle );
+    //_debugAlsa("< Buffer Underrun >\n");
+  }*/
 }
 
   bool
@@ -251,7 +263,7 @@ AudioLayer::toggleEchoTesting() {
 
 
   void
-AudioLayer::playUrgent( void )
+AudioLayer::playTones( void )
 {
   int maxBytes = 1024 * sizeof(SFLDataFormat) ;
   int toGet;
@@ -344,21 +356,27 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag)
     if( err = snd_pcm_hw_params_any( _PlaybackHandle, _PlaybackHwParams) < 0) _debugAlsa(" Cannot initialize hardware parameter structure (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, _PlaybackHwParams, SND_PCM_ACCESS_RW_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_format( _PlaybackHandle, _PlaybackHwParams, SND_PCM_FORMAT_S16_LE) < 0) _debugAlsa(" Cannot set sample format (%s)\n", snd_strerror(err));
-    if( err = snd_pcm_hw_params_set_rate_near( _PlaybackHandle, _PlaybackHwParams, &rate_out, &dir) < 0) _debugAlsa(" Cannot set sample rate (%s)\n", snd_strerror(err));
+    if( err = snd_pcm_hw_params_set_rate( _PlaybackHandle, _PlaybackHwParams, rate_out, dir) < 0) _debugAlsa(" Cannot set sample rate (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_channels( _PlaybackHandle, _PlaybackHwParams, 1) < 0) _debugAlsa(" Cannot set channel count (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_period_size_near( _PlaybackHandle, _PlaybackHwParams, &period_size_out , &dir) < 0) _debugAlsa(" Cannot set period size (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_buffer_size_near( _PlaybackHandle, _PlaybackHwParams, &buffer_size_out ) < 0) _debugAlsa(" Cannot set buffer size (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params( _PlaybackHandle, _PlaybackHwParams ) < 0) _debugAlsa(" Cannot set hw parameters (%s)\n", snd_strerror(err));
 
-    snd_pcm_uframes_t val = 1024 ;
+    snd_pcm_uframes_t val ;
     snd_pcm_sw_params_malloc( &swparams );
     snd_pcm_sw_params_current( _PlaybackHandle, swparams );
 
-    if( err = snd_pcm_sw_params_set_start_threshold( _PlaybackHandle, swparams, threshold ) < 0 ) _debugAlsa(" Cannot set start threshold (%s)\n", snd_strerror(err)); 
-    if( err = snd_pcm_sw_params_set_stop_threshold( _PlaybackHandle, swparams, buffer_size_out ) < 0 ) _debugAlsa(" Cannot set stop threshold (%s)\n", snd_strerror(err)); 
+    snd_pcm_sw_params_get_start_threshold( swparams , &val);
+    _debug("Start threshold = %d\n" ,val);
+    //if( err = snd_pcm_sw_params_set_start_threshold( _PlaybackHandle, swparams, threshold ) < 0 ) _debugAlsa(" Cannot set start threshold (%s)\n", snd_strerror(err)); 
+    snd_pcm_sw_params_get_stop_threshold( swparams , &val);
+    _debug("Stop threshold = %d\n" ,val);
+    //if( err = snd_pcm_sw_params_set_stop_threshold( _PlaybackHandle, swparams, buffer_size_out ) < 0 ) _debugAlsa(" Cannot set stop threshold (%s)\n", snd_strerror(err)); 
     //if( err = snd_pcm_sw_params_set_start_mode( _PlaybackHandle, swparams, SND_PCM_START_DATA ) < 0 ) _debugAlsa(" Cannot set start mode (%s)\n", snd_strerror(err)); 
-    if( err = snd_pcm_sw_params_set_avail_min( _PlaybackHandle, swparams, threshold) < 0) _debugAlsa(" Cannot set min avail (%s)\n" , snd_strerror(err)); 
-    if( err = snd_pcm_sw_params_set_silence_threshold( _PlaybackHandle, swparams, threshold) < 0) _debugAlsa(" Cannot set silence threshold (%s)\n" , snd_strerror(err)); 
+    //if( err = snd_pcm_sw_params_set_avail_min( _PlaybackHandle, swparams, threshold) < 0) _debugAlsa(" Cannot set min avail (%s)\n" , snd_strerror(err)); 
+    snd_pcm_sw_params_get_avail_min( swparams , &val);
+    _debug("Min available = %d\n" ,val);
+    //if( err = snd_pcm_sw_params_set_silence_threshold( _PlaybackHandle, swparams, threshold) < 0) _debugAlsa(" Cannot set silence threshold (%s)\n" , snd_strerror(err)); 
     if( err = snd_pcm_sw_params( _PlaybackHandle, swparams ) < 0 ) _debugAlsa(" Cannot set sw parameters (%s)\n", snd_strerror(err)); 
     snd_pcm_sw_params_free( swparams );
 
@@ -380,7 +398,7 @@ AudioLayer::write(void* buffer, int length)
   int bytes;
   snd_pcm_uframes_t frames = snd_pcm_bytes_to_frames( _PlaybackHandle, length);
   snd_pcm_sframes_t delay;
-  snd_pcm_delay( _PlaybackHandle , &delay ) ;
+  //snd_pcm_delay( _PlaybackHandle , &delay ) ;
   //_debug("Write %d frames\n" , frames);
 
   if(snd_pcm_state( _PlaybackHandle ) == SND_PCM_STATE_XRUN)
@@ -399,7 +417,7 @@ AudioLayer::write(void* buffer, int length)
   } 
   else if(bytes >=0 && bytes < frames)
   {
-    //_debugAlsa("Short write - Frames remaining = %d\n", frames - bytes);
+    _debugAlsa("Short write - Frames remaining = %d\n", frames - bytes);
   }
   else if( bytes == -EPIPE )
   {  
diff --git a/src/audio/audiolayer.h b/src/audio/audiolayer.h
index 2a279419e1372c134ab7d96732ff42c27726a1b0..65d8ca4bfb96aedace49947fe9cf934b01ec9c50 100644
--- a/src/audio/audiolayer.h
+++ b/src/audio/audiolayer.h
@@ -237,9 +237,9 @@ class AudioLayer {
 
     /*
      * Callback used for asynchronous playback.
-     * Write the urgent buffer to the alsa internal ring buffer
+     * Write tones buffer to the alsa internal ring buffer.
      */
-    void playUrgent( void );
+    void playTones( void );
 
     /*
      * Open the specified device.