# Making a virtualMidiDevice

**URL:** <https://forum.juce.com/t/making-a-virtualmididevice/41109>\
**Category:** Tracktion Engine\
**Created:** [August 6, 2020, 7:33pm UTC](https://forum.juce.com/t/making-a-virtualmididevice/41109 "2020-08-06T19:33:40Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![RolandMR](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rolandmr/32/641_2.png) [@RolandMR](https://forum.juce.com/u/RolandMR)\
**Post date:** [August 8, 2020, 2:47pm UTC](https://forum.juce.com/t/making-a-virtualmididevice/41109/9 "2020-08-08T14:47:01Z")

</div>

I just thought about this some more, what will work is:

```auto
    if (engine.getDeviceManager().getDefaultMidiInDevice() == nullptr)
        engine.getDeviceManager().createVirtualMidiDevice ("Virtual");

    if (auto input = engine.getDeviceManager().getDefaultMidiInDevice())
        input->handleIncomingMidiMessage (nullptr, mm);

```

---

_[View the full topic](https://forum.juce.com/t/making-a-virtualmididevice/41109)._
