@Override
    public void newSource( boolean priority, boolean toStream, boolean toLoop,
                           String sourcename, FilenameURL filenameURL, float x,
                           float y, float z, int attModel, float distOrRoll )
    {
        IntBuffer myBuffer = null;
        if( !toStream )
        {
            // Grab the sound buffer for this file:
            myBuffer = ALBufferMap.get( filenameURL.getFilename() );
            
            // if not found, try loading it:
            if( myBuffer == null )
            {
                if( !loadSound( filenameURL ) )
                {
                    errorMessage( "Source '" + sourcename + "' was not created "
                                  + "because an error occurred while loading "
                                  + filenameURL.getFilename() );
                    return;
                }
            }

            // try and grab the sound buffer again:
            myBuffer = ALBufferMap.get( filenameURL.getFilename() );
            // see if it was there this time:
            if( myBuffer == null )
            {
                errorMessage( "Source '" + sourcename + "' was not created "
                              + "because a sound buffer was not found for "
                              + filenameURL.getFilename() );
                return;
            }
        }
        SoundBuffer buffer = null;
        
        if( !toStream )
        {
            // Grab the audio data for this file:
            buffer = bufferMap.get( filenameURL.getFilename() );
            // if not found, try loading it:
            if( buffer == null )
            {
                if( !loadSound( filenameURL ) )
                {
                    errorMessage( "Source '" + sourcename + "' was not created "
                                  + "because an error occurred while loading "
                                  + filenameURL.getFilename() );
                    return;
                }
            }
            // try and grab the sound buffer again:
            buffer = bufferMap.get( filenameURL.getFilename() );
            // see if it was there this time:
            if( buffer == null )
            {
                errorMessage( "Source '" + sourcename + "' was not created "
                              + "because audio data was not found for "
                              + filenameURL.getFilename() );
                return;
            }
        }
        
        sourceMap.put( sourcename,
                       new SourceLWJGLOpenAL( listenerPositionAL, myBuffer,
                                         priority, toStream, toLoop,
                                         sourcename, filenameURL, buffer, x,
                                         y, z, attModel, distOrRoll,
                                         false ) );
    }