登录:     


Forum: VirtualDJ Plugins

Topic: Network Control Plugin?
I don't see this Network Control plugin in VirtualDJ v2026 b8978. I tried EXTENSIONS -> Effects -> Other and searched for "network" and only see the Send/Recieve NDI plugins. Can someone please help? I'm having a hell of a time trying to use OSC. It just seems brittle.

Any guidance would be appreciated. Just looking for the easiest way to remotely control VDJ with Python commands / VDJ verbs.
 

发表时间 Sun 28 Dec 25 @ 3:07 am
### Quick Fix (Short Version) ###

If the "Network Control" plugin disappears from the Master Effect list after a restart, follow these steps:

1. Locate the file: Go to %LOCALAPPDATA%\VirtualDJ\Plugins64\ and open native_Network Control.ini with a text editor.
2. Fix the Port: Find the line Custom HttpPort 1=... and replace the value with the Hexadecimal equivalent of your desired port without trailing zeros.
- For Port 8090, enter:
Custom HttpPort 1=9A1F


3. Prevent Overwriting: Save the file, right-click it in Windows Explorer, select Properties, and check "Read-only".
4. Restart VirtualDJ.

---

@djdad

### Detailed Technical Analysis & Bug Report ###

I investigated why the plugin fails to load after a restart. The issue lies in how the plugin handles the integer-to-hex conversion and the bit-length of the port value when writing to the .ini file.

Step-by-Step Analysis:

1. Initial Configuration: Setting the Port to 8090 in the plugin's configuration dialog (Frontend).
2. The Saving Bug: Upon closing VirtualDJ, the plugin writes the value to native_Network Control.ini. Instead of a standard 16-bit word, it incorrectly appends four zeros:
- Actual file content:
Custom HttpPort 1=9A1F0000


3. The Loading Failure: On the next start, VirtualDJ/the Plugin fails to parse 9A1F0000 correctly. Because the initialization of the .adll fails due to this invalid port/buffer overflow, the plugin is silently discarded and does not appear in the "Master Effects" list, even though it is marked as "installed".
4. Manual "Fix" Attempt (Decimal): Changing the value manually to Custom HttpPort 1=8090 (interpreting it as decimal).
- Result: The plugin loads! However, the UI is now confused. The configuration dialog shows Port 36992.
- Why? It interprets the string "8090" as a hex value. 0x8090 in decimal is 32912, showing a clear mismatch.
5. The "80900000" Loop: If you do not correct the value and leave it in the UI and close VDJ, the file is written as 80900000. On the next start, the plugin disappears again.

The Finding:
The plugin expects a Little-Endian Hex value but struggles with the field length.
- 8090 decimal is 1F9A hex.
- In Little-Endian (byte-swapped), this is 9A1F.
- The Bug: The plugin appends 0000 (making it 9A1F0000), which breaks the parser on boot.

The Solution:
By manually setting the value to 9A1F (removing the trailing zeros) and applying a write-protect (Read-only) attribute to the .ini file, the plugin initializes perfectly every time, and the Frontend correctly displays "8090".

Reference Table for .ini Hex Values:

Port (Dec) | Hex (Little-Endian)
8000 | 401F
8080 | 901F
8090 | 9A1F
8888 | B822
 

Can't reproduce.
8090 is (correctly, as vdj expects it) stored as 9A1F0000 in the ini file.
Upon re-opening vdj this value is correctly read, network plugin is shown and shows 8090 as the port number.