1.2(7) Win8/64 - Crash after disconnecting a USB controller

1.2(7) Win8/64 - Crash after disconnecting a USB controller

Postby chrisfoster » 16 Jan 2014, 14:35

Upgraded to 1.2(7) and was playing around with a NI Kore 2 controller, trying to get it to learn.

Decided to pull the usb plug on the Kore 2 and it disappeared from the list, but then many devices disappeared and all routings were lost. Then the Manager just crashed.

Tried a reboot but about 20 ports were still missing and all routing was lost. Snapshot is of no use, as it cant see the devices which are present in Device Manager.

Copper Lan Virtual Midi Driver was present and service was running.

Lan port is not present in settings and none are available.

Re-installed and it just gets worse now...everything is present in Overview, but one of my midi hubs had been doubled up , because it believed there's is a controller hanging off each port?

The CP-Midi and Midi-CP functionality had completely gone.

Connect and Edit only show 1 midi hub

warnings.log mentions trashcan issues from time to time

-----------------------------------------------------------------------------------------------------------

deleted registry, Uninstalled (7) , removed folders from roaming profile and re-installed (6)

Could not re-use saved snapshot file...I guess ID;s are now different

Everything looks normal except for Overview which has doubled up on every entry (except vmidi) because it must believe a controller is hanging off every port!!

Lan port is present.

Maybe you should pull (7) and do some more testing?

Cheers
chrisfoster
 
Posts: 68
Joined: 09 Sep 2013, 23:23
Location: Australia

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby CopperPhil » 16 Jan 2014, 15:47

Hi,

Thanks for your feedback! I've disabled the software update for the 1.2(7) until this is fixed.

We just tried here on all our computers but we can't reproduce... The issue is probably due to the large number of MIDI interfaces connected to your computer. A border effect due to the number of USB ports to manage. I'll verify the code to check if something could explain this, but it's weird that everything seems to be working fine with 1.2(6).

In the meantime,
1) it seems that the computer's CopperLan unique ID still changed during installation, so you can't restore the previous snapshots. Did you got this issue after the upgrade, or after a full uninstall?
2) I am curious about the warning message related to the trashcan... can you please copy-paste the full message hereafter?
CopperPhil
 
Posts: 471
Joined: 30 Mar 2011, 15:02
Location: Brussels

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby CopperPhil » 16 Jan 2014, 22:04

I found something that could potentially put a mess in case of numerous cascaded plug & play notifications. The package 1.2(7) has been fixed to delay the CopperLan update on USB PnP changes. Unfortunately I can't test it because I don't have the gear to create more than 5 MIDI ports. So it would be great if you could test it against your setup.

However you can change of CopperLan distribution without uninstalling it. If you want to go back from 1.2(7) to 1.2(6), just installing the 1.2(6) package is enough.

When you uninstall CopperLan, the unique ID related to the computer is lost. If you re-install it again later, it will take a new ID number and so your previous snapshots can't be restored.

We'll change the uninstall procedure to give the possibility to not erase this information from the computer.

Therefore I can give you a step by step procedure to manually restore the computer's unique ID from information available in the snapshot file, but it's quite tricky. We plan to rework the CopperLan Manager's snapshot functionality to allow remapping in case of device unavailability but it's a big job and I have no idea on when it will be available.
CopperPhil
 
Posts: 471
Joined: 30 Mar 2011, 15:02
Location: Brussels

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby chrisfoster » 17 Jan 2014, 01:02

"I am curious about the warning message related to the trashcan... can you please copy-paste the full message hereafter?"

3000;2000;;Trashcan issue [VNMManager];Trashcan seems to be growing out of control (1087 objects). Please check application source code for missing Release() on hooked object!

3000;2000;;Trashcan issue [CPManager];Trashcan seems to be growing out of control (50 objects). Please check application source code for missing Release() on hooked object!

"When you uninstall CopperLan, the unique ID related to the computer is lost. If you re-install it again later, it will take a new ID number and so your previous snapshots can't be restored"

Yes, I had to uninstall..it was so messed up, but from now on I will install over the top.

"We'll change the uninstall procedure to give the possibility to not erase this information from the computer"

That would be a priority, given you have commercial products on the way...

"The issue is probably due to the large number of MIDI interfaces connected to your computer. A border effect due to the number of USB ports to manage"

Could well be...I have been brutal using USBDeview to delete all non USB Hub entries En masse to ensure a clean environment for my 2 x identical 4 port USB3 cards. I'm now dedicating a single pci-e card to 1 x 8 port USB Midi Hub (controllers) and all 4 ports on the second card pci-e for targets (synths and FX racks)

I have found that Via based USB3 is a total nightmare (native or Via drivers)...avoid. Renasys/NEC on the other hand is rock solid (native win8 drivers) and even when completely removed via USBDeview, springs back into existence...nice! So yes...maybe CopperLan got a little upset with all the changes and maybe has something to do with the trashcan issue..

"Therefore I can give you a step by step procedure to manually restore the computer's unique ID from information available in the snapshot file, but it's quite tricky"


Luckily I have not gone full out patching...only one port on each midi hub to sort this USB drama. Hopefully this unique ID/Snapshot issue will be sorted by the time I'm ready for production :) but of course I will not be doing any more uninstallions until it's fixed.

Q Does the registry key have any bearing on the computer's unique ID within Copperlan? i.e can it be deleted in order to clean up routing problems in lieu of re-installations as a first option?

Q. What about in the Overview Tab, where every port (except vmidi) has a duplicate entry with a controller entry hanging off it. It seems this was a change to display I/O patching....but what are the controller entries hanging off each one..is that CopperPlug maybe?

Cheers
chrisfoster
 
Posts: 68
Joined: 09 Sep 2013, 23:23
Location: Australia

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby CopperPhil » 17 Jan 2014, 07:46

Hi,

Many thanks for your clarification related to USB3 cards and chipset. Your experience is very interesting!

Did you try the updated 1.2(7) version (I didn't change the file name, so if you are in 1.2(6) you can just update or download it from our web site)? is it working now with your setup?

Does the registry key have any bearing on the computer's unique ID within Copperlan? i.e can it be deleted in order to clean up routing problems in lieu of re-installations as a first option?


Yes, the unique machine ID is located in the "MachineID" key under HKLM/SOFTWARE/CopperLan/CPVNM. And it is safe to update this value and restart the CPVNM service to change the computer identity on the CopperLan network.

What about in the Overview Tab, where every port (except vmidi) has a duplicate entry with a controller entry hanging off it. It seems this was a change to display I/O patching....but what are the controller entries hanging off each one..is that CopperPlug maybe?


When you create "CopperLan controllers" related to incoming CC from a MIDI control panel, a "Controllers" sub-device is created behind the MIDI bridge device.
img1.png

In this example, I created 16 controllers for the Xboard25's 16 knobs and the first one is connected to a MS-812 parameter. The E-MU Xboard25 device (with a square icon) contains a Controllers sub-device (square icon), a MIDI virtual cable + clock + channel related outputs (other icons). The Controller sub-device exposes a set of Controller* output (the sliders with > icon), each of them containing a Controller entity (the CC 21 item). It can seems complicated, but in CopperLan each node in the tree has a specific role. The Device is representing a global functionality (can have inputs, outputs...), an Output is responsible of the message delivery to a destination set, the Controller is in relationship with a Parameter and learns what message is expected by the Parameter. In some case an Output can host several Controllers (ADSR section for example, the 4 parameters are located at the same location on the network so a single Output can be used to hose the 4 controllers).
Finally in the Overview tab you get something like this:
img2.png

And then, indeed, a "Controllers" sub-device is visible behind the "E-MU Xboard25" since the Overview tab is displaying the CopperLan devices tree.

Is that answer your question?
CopperPhil
 
Posts: 471
Joined: 30 Mar 2011, 15:02
Location: Brussels

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby chrisfoster » 17 Jan 2014, 09:02

Yes, the unique machine ID is located in the "MachineID" key under HKLM/SOFTWARE/CopperLan/CPVNM


Ok...that's why the snapshot did not work when I reverted to (6) because I deleted CPVNM entirely, thinking I needed to get the environment as clean as possible. :oops:

Did you try the updated 1.2(7) version


Yes, seems fine, although I haven't tried a cold USB removal maneuver as yet :oops: ...although, it really shouldn't bring a system to it's knees.

When you create "CopperLan controllers" related to incoming CC from a MIDI control panel, a "Controllers" sub-device is created behind the MIDI bridge device

Is that answer your question?


I'll have to digest your example of the 16 controllers for the Xboard25...looks like a good tute.

I have a controller entry hanging off every midi port without knowingly creating any "CopperLan controllers" I've been exclusively routing between Port1/Channel1, during this testing stage.

Q: I do presume this has to be initiated, it's not something a VST or other controller like the Kore2 has initiated It's only showing on the Overview page, so I assumed it was some kind of place holder for a controller?

Q: You have removed the ability to rename ports via the registry? I hope you devise a way in the GUI because with 40+ ports, it certainly detracts from the experience and is a time waster trying to remember what is what.

Q: The CopperPlug Player is acting like a VST stand alone host?

Q: I've just started with the NI Kore2 system, which seems to be a being a very capable/complex VST host (amongst other things).
I've done a CopperPlug wrapper for the 64bit VST version...do you guys have any experience with this system within CopperLan? With CopperPlug, I'm probably wrapping a VST wrapper...a little confusing how to treat the Kore2 Stand alone /VST64 system within the CopperLan system.

Q: Appreciate your thoughts on viewtopic.php?f=15&t=244 The Polygon VST really does have a ton of parameters....and wow it is fantastic @ $49 a classic test for the CopperPlug methodology (Repetition Strain Injury)

Cheers
chrisfoster
 
Posts: 68
Joined: 09 Sep 2013, 23:23
Location: Australia

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby CopperPhil » 17 Jan 2014, 10:03

Q: I do presume this has to be initiated, it's not something a VST or other controller like the Kore2 has initiated It's only showing on the Overview page, so I assumed it was some kind of place holder for a controller?

Yes, a "Controllers" sub-device is automatically created for each "physical" MIDI port. The goal is to allow MIDI control panel acting as a kind of "CopperLan Control Surface", having a set of "CopperLan Controllers" entities that can be attached to "CopperLan Parameters". In MIDI, it is up to the target to learn the message sent by a MIDI knob. So it's a 1-to-1 relationship and a MIDI parameter isn't able to be controlled by several controllers at a time. In CopperLan, the learning is done at the controller level. Each CopperLan Controller is learning automatically the parameter expected message when it is assigned to. Controller assignment can be done by learning, browsing or smartconnect. So a single parameter can be controlled by several controllers, and each controller's feedback (if any) is automatically synchronized with the current parameter value.
- Learning: select the controller's "Assign" command, then change a parameter value along the network (from a CopperPluggized plugin's GUI for example), and that's it.
- Browsing: select the controller's "Browse" command, then browse the CopperLan tree to select the expected parameter
- SmartConnect: slect the Controllers sub-device's "SmartConnect" command, then choose a SmartConnect target (such as CopperPluggized plug-in), and then the controller set is automatically mapped to the target's "Essential" section.
The SmartConnect can do much more than that, it's able to connect pre-defined control surfaces (with envelope, filter sections for example) to any target ensuring that each pre-defined knob is always mapped to the right parameter, whatever the target brand/model. This is a very powerful feature that is currently implemented in several commercial products. More to come... ;)

Q: You have removed the ability to rename ports via the registry? I hope you devise a way in the GUI because with 40+ ports, it certainly detracts from the experience and is a time waster trying to remember what is what.

We changed the VMIDI driver to support the new MIDILink feature, the internal bricks needed to rename the ports does exist, but not yet fully exploited.
The MIDILink is automatically creating a MIDI port on each computer when a MIDILink able CopperLan hardware device is connected to the network, even using Ethernet interface. So it's as easy as USB but through Ethernet.

Q: The CopperPlug Player is acting like a VST stand alone host?

Yes exactly. It's designed for live playing.

Q: I've just started with the NI Kore2 system, which seems to be a being a very capable/complex VST host (amongst other things).
I've done a CopperPlug wrapper for the 64bit VST version...do you guys have any experience with this system within CopperLan? With CopperPlug, I'm probably wrapping a VST wrapper...a little confusing how to treat the Kore2 Stand alone /VST64 system within the CopperLan system.

Hmmmm... don't know this. I'll find out.

Q: Appreciate your thoughts on viewtopic.php?f=15&t=244 The Polygon VST really does have a ton of parameters....and wow it is fantastic @ $49 a classic test for the CopperPlug methodology (Repetition Strain Injury)

Ho yes, good point. I'll buy it and keep you informed.

Nevertheless, CopperPlug is just a way to use standard plug-ins in a CopperLan ecosystem. Our ambition is not to be compatible with all plug-ins in the world. Our experience with several plug-ins developers has shown that it is easier and more efficient to include CopperLan functionality in a plugin instead of wrapping it through CopperPlug and its definition file, especially for complex plug-ins with a lot of parameters. But... you know... the chicken & the egg :roll:
CopperPhil
 
Posts: 471
Joined: 30 Mar 2011, 15:02
Location: Brussels

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby chrisfoster » 17 Jan 2014, 10:35

My head is hurting, trying to figure out the possibilities here.....will keep digging.

I'm guessing a lot of this stuff will be transparent with Native hardware and Native software.

Your gonna need some slick video tutorials to get this whole paradigm across I reckon.....both for the 100% native world that is approaching and backwards support for midi hardware especially.

Ah! yes, purchase Polygon..open CopperPlug and I'm sure your mouse hand will tell you to make a batch converter... pronto :D

Glitch Machines seem like clever guys, I could not think of a better VST to have Native in order to demonstrate a native VST app. I loaded some simple drum samples and was hooked for hours...insane.

Cheers
chrisfoster
 
Posts: 68
Joined: 09 Sep 2013, 23:23
Location: Australia

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby chrisfoster » 17 Jan 2014, 11:03

...and yes, the Kore2 can be purchased dead cheap now it is discontinued. NI left a nasty trail of disgruntled Kore users behind, who swore never to buy their stuff again...fully believing the Kore system is superior to the new Maschine paradigm.

Before I forget....a developer you must absolutely make contact with is https://www.bitwig.com/en/bitwig-studio

I believe these guys are going to kick the 'Live' software's butt! So many promising developers are hitching their wagon to Live because the DJ's are using it...software like Liquid Rhythm and Hardware like Livid, both of whom, don't support nrpn and probably don't see the need.

I think CopperLan is such a mind explosion, because (if I understand it correctly)...you can develop software for it, without any Midi baggage whatsoever....whereas..all these (admittedly) great new apps create their apps with midi in mind.

I think there is going to be a light bulb moment for developers...I'm just wondering how your going to turn it on. If it was me, I'd be getting the old school midi gear controlled pronto...it's called buzz...ooh!..how did they do that?

Did I just say sysex yet again?, yep! 'Total control of external midi hardware with CopperLan'

Google!, please index this phrase again, we need a groundswell.. Total control of midi hardware with CopperLan ? :lol:

Cheers
chrisfoster
 
Posts: 68
Joined: 09 Sep 2013, 23:23
Location: Australia

Re: 1.2(7) Win8/64 - Crash after disconnecting a USB control

Postby CopperPhil » 17 Jan 2014, 11:31

:D

We have a problem with the old MIDI gear... perhaps you would have a good workaround idea. In CopperLan, a controller send the current knob position to the target parameter, then a new current value is calculated and applied if valid, and finally this current value is returned to the (set of) controller pointing to this parameter. So you can have several control surfaces pointing to the same target, and automatically staying in sync with the current values. It means that if a preset is recalled in the target, all the motorized knobs, led crowns, displays are automatically moving to their respective current positions.

This is something easy with a plug-in, because plug-ins notifies their host (the CopperPlug wrapper) when their parameters change of value.

But with legacy MIDI gear, I don't automatically receive any feedback from the MIDI out when I send a CC to the MIDI in... and more important, I get no current value information when I send a program change...

So the trick with the CopperPlug MIDI Target feature is to store the latest value sent to the MIDI gear, so it's working halfway... because the parameters goes out of sync as soon I send a program change.

This is the biggest challenge to CopperLanize existing MIDI gear.
CopperPhil
 
Posts: 471
Joined: 30 Mar 2011, 15:02
Location: Brussels

Next

Return to Bug report

cron