# ASIO input on selected channels examples?

**URL:** <https://qa.fmod.com/t/asio-input-on-selected-channels-examples/19349>\
**Category:** FMOD Engine\
**Created:** [October 1, 2022, 4:36am UTC](https://qa.fmod.com/t/asio-input-on-selected-channels-examples/19349 "2022-10-01T04:36:03Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![jeff\_fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/jeff_fmod/32/1766_2.png) [@jeff\_fmod](https://qa.fmod.com/u/jeff_fmod)\
**Post date:** [October 5, 2022, 11:57pm UTC](https://qa.fmod.com/t/asio-input-on-selected-channels-examples/19349/2 "2022-10-05T23:57:30Z")

</div>

I think the best place to look for an example on how to record from a specific audio device is the **record\_enumeration** Core API example available in the [FMOD Engine](https://fmod.com/download#fmodengine) download.  
To output a channel on a specific speaker you can use [`Channel.setMixLevelsOutput`](https://fmod.com/docs/2.02/api/core-api-channelcontrol.html#channelcontrol_setmixlevelsoutput). The best place for an example on how to use this is the **multiple\_speaker** Core API example, also available in the FMOD Engine download.  
These examples are all in C++, but if you are only familiar with C# then you can read it approximately with the following guidelines:

- Ignore any `*`
- Replace `&` with `out`
- Replace `::` or `->` with a `.` operator
- Replace `nullptr` with `IntPtr.Zero`
- For example:

```auto
//C++
struct RECORD_STATE
{
    FMOD::Sound *sound;
    FMOD::Channel *channel;
};

//C#
struct RECORD_STATE
{
    FMOD.Sound sound;
    FMOD.Channel channel;
};

//C++
result = system->createSound("mySound.wav", FMOD_LOOP_NORMAL | FMOD_OPENUSER, nullptr, &sound);

//C#
result = system.createSound("mySound.wav", FMOD_LOOP_NORMAL | FMOD_OPENUSER, IntPtr.Zero, out sound);

```

---

_[View the full topic](https://qa.fmod.com/t/asio-input-on-selected-channels-examples/19349)._
