# Trying to play midi file in Unity on android

**URL:** <https://qa.fmod.com/t/trying-to-play-midi-file-in-unity-on-android/12892>\
**Category:** Unity\
**Created:** [December 22, 2016, 4:36pm UTC](https://qa.fmod.com/t/trying-to-play-midi-file-in-unity-on-android/12892 "2016-12-22T16:36:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![laggyluk](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@laggyluk](https://qa.fmod.com/u/laggyluk)\
**Post date:** [December 22, 2016, 4:36pm UTC](https://qa.fmod.com/t/trying-to-play-midi-file-in-unity-on-android/12892/1 "2016-12-22T16:36:59Z")

</div>

Trying to play midi file using custom sound bank, I’m supposed to pass path to .dls file via FMOD.CREATESOUNDEXINFO.dlsname but it’s a IntPtr not a string.

tried this but it doesn’t work

```
IntPtr pathInt = Marshal.StringToHGlobalUni(Utils.dataPath + "gm.dls");
    info.dlsname = pathInt;
    info.cbsize = Marshal.SizeOf(info);
    FMOD.Sound sound;
    lowSys.createStream(Utils.dataPath + "errors.mid", FMOD.MODE.DEFAULT, ref info, out sound);        
    FMOD.Channel channel;
    lowSys.playSound(sound, null, false, out channel);
    Marshal.FreeHGlobal(pathInt);

```

in fmod log I can see this eror, looks like it got only first letter of filename?

[[Album] Imgur ![](https://i.imgur.com/F4zZGeV.jpg?fb "Imgur") ](https://imgur.com/a/3QtmG)

---

<div class="post-metadata">

**Author:** ![laggyluk](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@laggyluk](https://qa.fmod.com/u/laggyluk)\
**Post date:** [December 22, 2016, 6:03pm UTC](https://qa.fmod.com/t/trying-to-play-midi-file-in-unity-on-android/12892/2 "2016-12-22T18:03:32Z")

</div>

> [@](#):
>
> Trying to play midi file using custom sound bank, I’m supposed to pass path to .dls file via FMOD.CREATESOUNDEXINFO.dlsname but it’s a IntPtr not a string.
> 
> tried this but it doesn’t work
> 
> ```
> IntPtr pathInt = Marshal.StringToHGlobalUni(Utils.dataPath + "gm.dls");
> info.dlsname = pathInt;
> info.cbsize = Marshal.SizeOf(info);
> FMOD.Sound sound;
> lowSys.createStream(Utils.dataPath + "errors.mid", FMOD.MODE.DEFAULT, ref info, out sound);        
> FMOD.Channel channel;
> lowSys.playSound(sound, null, false, out channel);
> Marshal.FreeHGlobal(pathInt);
> 
> ```
> 
> in fmod log I can see this eror, looks like it got only first letter of filename?  
> [Imgur: The magic of the Internet](http://imgur.com/a/3QtmG)

StringToHGlobalAnsi works better, no error in log anymore but still silence on android

---

<div class="post-metadata">

**Author:** ![laggyluk](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@laggyluk](https://qa.fmod.com/u/laggyluk)\
**Post date:** [December 22, 2016, 6:18pm UTC](https://qa.fmod.com/t/trying-to-play-midi-file-in-unity-on-android/12892/3 "2016-12-22T18:18:49Z")

</div>

Marshal.StringToHGlobalAnsi is a fix, didn’t play anything because for some reason my StreamingAssets folder didn’t get copied over to device
