Is it possible to add function so that Renoise can re-enumerate MIDI devices when up and running ?
I often forget to turn on my MIDI-keyboard before starting Renoise.
It’s a bit irritating to have to turn off Renoise and restart it (it’s an Axiom 61 through USB).
Not a major issue, but if it’s not to much trouble to redo the process that would be great.
That most likely seems the difference in how the driver architecture in Windows works and how it works on the Mac…
Apparently, the Mac stays in control of the device list and updates constantly, while Windows only offers the options as they are when requested during initialization and then the application has to reattach by itself if it feels to perform an update on changes.
It saves CPU on the other hand but seems lazy on the Microsoft developer side.
As VV said: If this would be possible, we’d do this automatically. Unfortunately you’ll have to restart Renoise (any application) to make this work on Windows - thats a limitation every application (not just Renoise) has to live with…
It’s not even possible to do it manualy ?
Meaning if you’re going to do it automaticly you would need to poll the device list all the time. So I can imagine that you wouldn’t want that if it means 10+ sec to re-attach the application to the devices.
On the other hand I have no clue since I’m not a developer
Usually when you start an application, it binds to the system libraries that it needs. Microsoft receives the list of desired libraries and tells the application:“Yes i have this, fire away” or in less nice cases “Sorry i don’t have that, go inform your user”. This is why you get errors in return like “Missing MSVCR70.DLL” or if more gracefully, you get a status report that you need to install .Net Framework 2.0 in order to make that program work.
Anyway, once the libraries are bound, a copy of those libraries are then loaded into memory including all resources that those had access to that were currently active in the registry.
If you plug in a new device, the list of active devices is renewed in the registry, yet the system libraries that are bound to Renoise no longer poll the registry for these changes unless Renoise is getting closed and then reopened again. So yes, you can trigger the library to feed you the list of devices again, but it will be the same list that you got during the opening of the application.
That is what is different between Mac and Windows.
Sometimes a library can be released and then be reloaded (rebinding). With Database libraries this is a usual possibility. With system devices, this comes more critical. For the MME device driver this will work but Renoise acquires DirectX which you have to fully initialize and fully release (including video drivers) and that part will not work. It will only be substantially faster than closing and reopening manually, the substantial difference in speed will be where you won’t double click the program icon.