Copyright © 2008-2018 MultiMedia Soft

LoadSoundFromMemory method

Previous pageReturn to chapter overviewNext page



Loads a sound file stored inside a memory buffer for editing purposes. The sound file can be a stream file or a MOD music file (see the LoadSound method for supported formats).


You can manage how loaded sound will be added to the existing editing session through a previous call to the SetLoadingMode method.

You can limit the range of sound data that will be loaded from the given sound file with a previous call to the SetLoadingRange method.


For loading files in RAW format use the LoadSoundFromRawMemory method.


In case you should need loading a specific single channel of the audio file, use the LoadSoundChannelFromMemory method.

A successful call to this method will fire the SoundLoadingStarted event followed by a number of SoundLoadingPerc events and finally by the SoundLoadingDone event.


IMPORTANT TOPIC: remember that the memory buffer containing song data must not be moved by the garbage collector and needs to be available till the call to the CloseSound method.





[Visual Basic]

Public Function LoadSoundFromMemory (

pBuffer() as Byte,

nBufferLength as Int32

) as enumErrorCodes



public enumErrorCodes LoadSoundFromMemory (

byte[] pBuffer,

Int32 nBufferLength




public: enumErrorCodes LoadSoundFromMemory (

unsigned char __gc[] pBuffer,

Int32 nBufferLength









Buffer containing sound data


Length in bytes of the given buffer



Return value






Negative value

An error occurred (see the LastError property for further error details)

enumErrorCodes.ERR_NOERROR (0)

The method call was successful.





Below you can find a couple of samples that demonstrate how to load a sound stored in memory in Visual Basic.NET and Visual C# : in these samples the file is taken from a file and its contents are stored in memory.


Visual Basic.NET


' declare the memory buffer (cannot be a local variable)

Dim m_byteBuffer() As Byte


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim openFileDialog1 As New OpenFileDialog

If openFileDialog1.ShowDialog() <> DialogResult.OK Then


End If


' put the song file into a stream

Dim streamFile As FileStream

streamFile = New FileStream(openFileDialog1.FileName, FileMode.Open)

Dim binReader As BinaryReader

binReader = New BinaryReader(streamFile)


' reallocate the memory buffer space and store the song

ReDim m_byteBuffer(streamFile.Length)

binReader.Read(m_byteBuffer, 0, streamFile.Length)


If audioSoundEditor1.LoadSoundFromMemory(m_byteBuffer, streamFile.Length) = AudioSoundEditor.enumErrorCodes.ERR_NOERROR Then

    ' do domething


End If

End Sub



Visual C#.NET


// declare the memory buffer (cannot be a local variable)

byte[] m_byteBuffer = null;


private void buttonLoad1_Click(object sender, System.EventArgs e)


OpenFileDialog openFileDialog1 = new OpenFileDialog();

if (openFileDialog1.ShowDialog() != DialogResult.OK)



// put the song file into a stream

FileStream      streamFile = new FileStream (openFileDialog1.FileName, FileMode.Open);

BinaryReader    binReader = new BinaryReader (streamFile);


//  allocate the memory buffer space and store the song

m_byteBuffer = new byte[streamFile.Length];

binReader.Read (m_byteBuffer, 0, (int) streamFile.Length);


// load song from memory buffer

if (audioSoundEditor1.LoadSoundFromMemory (m_byteBuffer, (Int32) streamFile.Length) == AudioSoundEditor.enumErrorCodes.ERR_NOERROR)


    // do something