Old 02-25-2017, 05:16 AM   #1
Human being with feelings
Join Date: Feb 2017
Location: Gdańsk, Poland
Posts: 2
Default VSTi adjustment using Machine Learning

Hello all, that's my first post.

Recently I've started studying AI/ML subject.
I'm going to write Machine Learning program which will get any sample piano sound and will adjust settings of VSTi (arbitrarily chosen) "to met" this sample sound as close as possible.

The initial idea I have is to write two programs.
The first one is an application which will control VSTi running in REAPER through MIDI. It would be then a bridge for the second program which will use Machine Learning magic.

My first choice to write the bridge was Java (it's simple to integrate on any platform) with javax.sound.midi package. I don't really have an experience in "music stuff" development at all, but I thought that I can list all available MIDI devices (MidiSystem.getMidiDeviceInfo()) in the system and I will see REAPER MIDI device too and I'll be able to send messages to it. I can't see it, though. See attached screenshot.
How can I "attach" my program (it doesn't have to be written in Java) to send messages through MIDI to REAPER?
Another idea is to write my own MIDI device and add it in REAPER. What do you think?

One more question is: why I can't see these two MIDI devices listed in Java program in REAPER?
See second screenshot.

If anything is unclear, feel free to ask about it

Thank you for REAPER anyway
I'm a guitarist using it since I can remember. Keep going!
Attached Images
File Type: png Screen Shot 2017-02-25 at 11.19.58.png (19.3 KB, 51 views)
File Type: jpg Screen Shot 2017-02-25 at 12.50.11 copy.jpg (38.6 KB, 42 views)

Last edited by mklimus; 02-25-2017 at 05:52 AM.
mklimus is offline   Reply With Quote
Old 02-25-2017, 07:50 AM   #2
Human being with feelings
Xenakios's Avatar
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 6,556

I would guess the MIDI "devices" you see in the Java environment are not real hardware or virtual MIDI devices in the operating system, which is why you won't see them in Reaper itself. (Maybe they are some Java internal MIDI devices, only visible between Java applications?) Reaper itself is not a virtual MIDI device you can send MIDI into. If you need to route MIDI between applications, you might need to use a 3rd party solution, at least on Windows.

Writing your own virtual MIDI driver would be a massively complicated undertaking and you would need to do it in plain C.
For info on SWS Reaper extension plugin (including Xenakios' previous extension/actions) :
Xenakios blog (about HourGlass and λ) :

Last edited by Xenakios; 02-25-2017 at 08:00 AM.
Xenakios is online now   Reply With Quote
Old 03-05-2017, 12:02 PM   #3
Human being with feelings
Join Date: Mar 2017
Posts: 1
Default loopbe

sounds very interesting!

could be worth having a look at loopbe - a virtual midi driver

I use it to route my aerodrums into reaper

learningmachinelearning is offline   Reply With Quote
Old 03-12-2017, 05:15 AM   #4
Human being with feelings
Join Date: Feb 2017
Location: Gdańsk, Poland
Posts: 2

Thanks for replies guys.
I've started a blog about studying machine learning & creating music.
Follow it if you want to be up to date.

mklimus is offline   Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -7. The time now is 07:32 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.