Common problems with background music

Problems when using background music often relate to the setting of variables or parameters.

Use the system variables to override the system parameters by application.

Music is not available, cannot fade it in
Use the state table debugger to step through the state table to where the ControlMusic action error occurs.

Look at the Music Available window. From the Welcome Window click Operations->System Monitor-> select a pack->Music Available. If the music title is not listed, the cause could be one of the following:

  • The trunk is disabled. Check the state of the trunk.
  • A custom server has not opened a music channel using the correct music title.
  • A music player process has abnormally terminated.
  • The custom server did not receive a request for this tune. Check whether your state table is sending the request. If it is, the custom server might be either not receiving, or misinterpreting the request.

Check that the music title in the ControlMusic action is exactly the same as that displayed in the Music Available window. Something as simple as a spelling mistake can create a mismatch between music title strings. The strings are case sensitive and spacing and punctuation are important.

The music does not fade in; it just starts at full volume
This can be caused by one of the following:
  • The fade time parameter on the ControlMusic action is zero, or close to zero. A very short fade in time increases the volume quickly, so the music sounds as if it starts abruptly.
  • This might be a characteristic of the piece of music. Listen to the music to ensure that the music file or segment has not been clipped at the start. You can use bvi_play to listen to the music; see the Blueworx Voice Response for AIX: Application Development using State Tables information for more information.
  • If the previous tune that this state table used was stopped before it was faded out, the volume of the new tune you fade in is the same as the volume of the previous tune.
The music cuts out completely
  • Does this tune end suddenly? Listen to the tune to check this. If necessary, rerecord the tune including a gradual fade out.
  • Is the fade time in the ControlMusic action zero or close to zero? A very short fade time decreases the volume quickly, so the music sounds as if it stops suddenly.
  • Is the music title still shown the Music Available window? If it is not, the custom server that is supplying that music data might have closed its music channel. This happens when the custom server exits or ends abnormally. Check the status of the custom server and any error or warning messages in the Alarms window.
  • Is that music title underrunning? Check it on the Music Available window. If it is underrunning, the custom server supplying this music data is blocked, has stopped or is looping. The most likely cause of this is a coding error in the custom server. A heavily-loaded system may be limiting the processing power or data available to the music player. Increase the amount of data that can be stored in the music player (parameter -b).
The music comes and goes, cutting in and out intermittently
  • Is this the way the tune sounds? Listen to the tune. The audio file might have been corrupted when recording or converting from one format to another.
  • Is the music title underrunning? Check it on the Music Available window. If it is underrunning, the custom server that supplies the music data might have a problem. The custom server or the music player might be unable keep up with the 8 KB per second requirement of the telephone line. This can happen if the process:
    • Has a lower priority than it needs
    • Is not programmed efficiently
    • Is blocking for long periods of time
    • Is being delayed between the CA_Poll(), and the CA_Play_Voice_Elements, or CA_Play_Voice_Stream custom server calls

      A heavily-loaded system can cause a delay between the return of the CA_Poll() call returns and when the player issues a CA_Play() call. During this time, the data drains away from the low water mark to empty. Increase the high water mark and low water mark if possible.

    Underrunning can happen on a system that is overloaded. It cannot keep up with the real-time requirements of Blueworx Voice Response. Check your system for processes that are using more CPU or system time than expected using ps. Terminate some processes to reduce the load on the system and check to see if this affects underrunning on this music channel.

  • Is the state table constantly performing fade in and fade out operations, using a small value in the fade time parameter? Change the state table to prevent this happening. This is not underrunning but a fault in the way the application is coded.
  • Are any of the following actions being used frequently? GetKey, GetData, GetFindData, GetFindName, GetPassword, GetText, RecordVoiceSegment, RecordAudioName, RecordUserGreeting, RecordVoiceMessage, RecordVoiceToHost, RecognizeWord, Dial.

    Blueworx Voice Response performs a fade out operation when these state table actions are run, and a fade in when they have completed. The fade time is set in system variable SV225, System : Music : Automatic fade time. When this system variable is set to a small value, the fade occurs over a very short time, seeming to cut in and out.

  • Is a short piece of music being played in the background in a continual loop? Use a longer piece of music.
The ControlMusic action succeeded, but I still cannot hear any music
  • Is the music file corrupted? Is it full of silence or low-volume sounds? Listen to the source of the music to check this, or use the segment editor to view the sample.
  • Is the dBm level in the CA_Play_Voice_Stream custom server API call set correctly? Check the level and reset it if necessary.
  • Is the music channel underrunning? Check it on the Music Available window. See also The music cuts out completely.
  • Is the volume ceiling default set too high numerically? Your application controls this using system variable SV224 (System : Music : Volume ceiling).
  • Is the system variable SV224 (System : Music : Volume ceiling) set too high numerically? This can limit the volume of the music channel to an inaudible level.
  • Is the system parameter Music Volume Ceiling Default set too high numerically? You can override this default from your application by using the system variable SV224 (System : Music : Volume ceiling).
  • Is the volume being faded to 0, or to a value that should be audible, when combined with the existing setting of system variable SV224 (System : Music : Volume ceiling).

For more information about Background Music system parameters see Blueworx Voice Response for AIX: Configuring the System, for system variables see, Blueworx Voice Response for AIX: Application Development using State Tables.

Element or segment files sound dull
If a tune that is played from an element file sounds dull, it might be that the original signal was recorded using a “flat spectrum” in a recording studio. It is a good idea to use equalizing equipment, either when recording the music, or when playing it back to the Ultimedia adapter.

The same thing can happen to segments. bvi_import can be used to add a rudimentary filtering stage to reduce this effect. Use equalization equipment to produce a clear tune, and do not use the boost option on the bvi_import utility.