# generate sound with PCM

**URL:** <https://qa.fmod.com/t/generate-sound-with-pcm/12717>\
**Category:** FMOD Engine\
**Created:** [September 26, 2016, 7:24pm UTC](https://qa.fmod.com/t/generate-sound-with-pcm/12717 "2016-09-26T19:24:09Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon18131903](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@anon18131903](https://qa.fmod.com/u/anon18131903)\
**Post date:** [September 26, 2016, 7:24pm UTC](https://qa.fmod.com/t/generate-sound-with-pcm/12717/1 "2016-09-26T19:24:09Z")

</div>

If I have the time-amplitude waveform of a sound, which I understand is just PCM data, can FMOD transform this into a sound object for playback?

Thanks.

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [September 27, 2016, 12:34am UTC](https://qa.fmod.com/t/generate-sound-with-pcm/12717/2 "2016-09-27T00:34:34Z")

</div>

Yes it can. You can pass a pointer to your PCM data instead of a string filename.

You’ll need some extra code along the lines of

```
FMOD_CREATESOUNDEXINFO soundinfo = {};
soundinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
// fill out frequency, channel count, PCM format, length in soundinfo
FMOD::Sound* sound;
system->createSound(pointerToPcmData, FMOD_OPENMEMORY_POINT | FMOD_OPENRAW, &soundinfo, &sound);
```

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [September 27, 2016, 12:49am UTC](https://qa.fmod.com/t/generate-sound-with-pcm/12717/3 "2016-09-27T00:49:14Z")

</div>

> [@](#):
>
> Yes it can. You can pass a pointer to your PCM data instead of a string filename.
> 
> You’ll need some extra code along the lines of
> 
> ```
> FMOD_CREATESOUNDEXINFO soundinfo = {};
> soundinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
> // fill out frequency, channel count, PCM format, length in soundinfo
> FMOD::Sound* sound;
> system->createSound(pointerToPcmData, FMOD_OPENMEMORY_POINT | FMOD_OPENRAW, &soundinfo, &sound);
> 
> ```

Edited to fix missing element of code
