# Reading raw wav data from memory?

**URL:** <https://qa.fmod.com/t/reading-raw-wav-data-from-memory/14012>\
**Category:** FMOD Engine\
**Created:** [July 21, 2018, 1:54am UTC](https://qa.fmod.com/t/reading-raw-wav-data-from-memory/14012 "2018-07-21T01:54:30Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cyndanera](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cyndanera/32/1532_2.png) [@Cyndanera](https://qa.fmod.com/u/Cyndanera)\
**Post date:** [July 21, 2018, 1:54am UTC](https://qa.fmod.com/t/reading-raw-wav-data-from-memory/14012/1 "2018-07-21T01:54:30Z")

</div>

#include “FAudiolib.h”

void FAudioLib::LoadSoundData(std::string filename) {  
std::string header;  
long version;  
long nofdefines;  
long nofstreams;  
long nofwaves;  
long nofsoundarchives;  
long nofmodules;  
std::ifstream myfile(filename, std::ios::binary);  
myfile.close();  
}

void FAudioLib::CreateStream() {  
memset(&exinfo, 0, sizeof(FMOD\_CREATESOUNDEXINFO));  
exinfo.cbsize = sizeof(FMOD\_CREATESOUNDEXINFO);  
exinfo.length = myfile.getBuffLen(); //length;  
result = system-\>createSound((const char \*)buff, FMOD\_OPENMEMORY, &exinfo, &sound);  
ERRCHECK(result);  
Common\_UnloadFileMemory(buff); // don’t need the original memory any more. Note! If loading as a stream, the memory must stay active so do not free it!  
}

void FAudioLib::InitAudioSystem() {  
Common\_Init(&extradriverdata);

```
/*
Create a System object and initialize
*/
result = FMOD::System_Create(&system);
ERRCHECK(result);

result = system->getVersion(&version);
ERRCHECK(result);

if (version < FMOD_VERSION)
{
	Common_Fatal("FMOD lib version %08x doesn't match header version %08x", version, FMOD_VERSION);
}

result = system->init(32, FMOD_INIT_NORMAL, extradriverdata);
ERRCHECK(result);

```

}

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [July 25, 2018, 1:36am UTC](https://qa.fmod.com/t/reading-raw-wav-data-from-memory/14012/2 "2018-07-25T01:36:50Z")

</div>

Depending on what you are trying to do, you will want to use either:

- Sound::readData()  
[https://fmod.com/resources/documentation-api?page=content/generated/FMOD\_Sound\_ReadData.html#/](https://fmod.com/resources/documentation-api?page=content/generated/FMOD_Sound_ReadData.html#/)

- Sound::lock()  
[https://fmod.com/resources/documentation-api?page=content/generated/FMOD\_Sound\_Lock.html](https://fmod.com/resources/documentation-api?page=content/generated/FMOD_Sound_Lock.html)
