Jump to content

New MidiFX Available


Variorum

Recommended Posts

Thanks--I will have to try out VSC.  It just about has to be better than the arduino IDE, which has, for instance, several different places you must configure locations of things (and which you have to keep changing depending on the code, project, etc just to get stuff to compile). :/ 

 

 

Link to comment
Share on other sites

Ok, I got these plugins for you to try out...
32Bit.thumb.PNG.a4bee492c19fee7186552f0beb25e289.PNG

They all seem to work fine now in 32Bit Sonar8.5.  Not difficult to get them to work, just tedious...

I put them all in one zipped up file here. Extract the folder anywhere on your computer and use the Install_ALL.bat to register all of them, or if you're chicken, you can just register and test them individually 🤪
It's not absolutely necessary, but it might be a good idea to make sure any previous Viramor plugins are unregistered before trying the new ones.

These will be the only ones I do for a while... they're the recently re-written group that use a common codebase so they were relatively easy to modify. The others are still a mish-mash of code. When I finally rewrite those, I'll make sure I have 32Bit versions available.

Good Luck! Keep a fire extinguisher handy!

  • Like 1
Link to comment
Share on other sites

Thank you.  I am too wiped out from work to safely test them tonite; already dozed off a couple times (but I can never stay asleep, sometimes i get on the computer to get my mind out of the hamster wheel to doze off again); hopefully be able to start testing them tomorrow. :) 

 

I think, wihtout rechecking the feature lists, that the ones I would get the most use out of would be Humanize, Antioverlap (since the CALs don't work right past maybe SONAR 3 or 4?; I forget), MIDIEQ, Transpose, and possibly Waver.  I'm sure I'll use the others for various things too, but those I have definite uses for. 

 

There's a few things the Modulator should be useful for (since drawing repetitive envelopes is kind of a PITA especially just to do a quickie modulation, like for a filter, etc, and envelopes can't be modulated by other envelopes....)

 

BTW...I'll test for this, but can Antioverlap be used to *force* a specific overlap instead (for assorted legato / portamento / etc functions)?  There are several patches (mostly on Z3TA2+) that act significantly different when the notes overlap just a bit vs not overlapping or overlapping too much); I used this feature in several places in Neotenous Chordata to cause filtering to occur and greatly change the sound of that part of the track, without having to otherwise do anything special to the patch or the track's contents, automation, etc. (can be done "live" if you can play well enough; I rarely can but a plugin would make that easy and much more fun). 

EDIT:  It may be possible to use TC's MFX to do the specific overlapping after AO has done the unoverlap. have to try that at some point. 

Secondarily, can anything in AO be modulated externally? (i'm not sure how this would affect the various synths, but I am curious....) 

Edited by Amberwolf
Link to comment
Share on other sites

Ok, i couldn't doze off wihtout at least peeking...but they all crash on insert.  Visually the same as the previous crash. :(

Crashdump files in this archive (too big to attach here)

https://drive.google.com/file/d/1KnF3YCEfO1tg3pbNe-rNKYJS8NTjdJjg/view?usp=sharing

 

Install went normally, though I did alter the install process very slightly. 

I'd already unregistered all of the previous versions (64 and 32 bit), but I ran the validators to verify none showed up in either one (true). 

Then before running either bat file, i looked at them to see what they would do, and noticed that the uninstaller's first line after START is 

regsvr32 /u .\CSAntiOverlap.dll

then it has

regsvr32 /u .\CSAntiOverlapDS32.dll
regsvr32 /u .\CSHumanizeDS32.dll
regsvr32 /u .\CSMidiModulatorDS32.dll
regsvr32 /u .\CSMultiCompanderDS32.dll
regsvr32 /u .\CSTransposeDS32.dll
regsvr32 /u .\CSWaverDS32.dll

So i removed that first extraneous line as it isn't going to do anything (except maybe generate a not found error), and i removed @ECHO OFF from them and put pause at the end so it would hold the cmd window open for me to see any errors, in both bat files.   (I can also copy/paste the output like this, if you need it). 

Then I ran the thus-modified installer bat file without errors, and the validators show no 64bit (as it should) and these for 32bit (edited down to just the ones relevant to this discussion)

********************  32 Bit MidiFX  ********************

PluginID: {0E1CF1D2-976F-4D42-BAA9-10360D222222}
Name: CSMultiCompanderV2
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSMultiCompanderDS32.dll

PluginID: {220F4FF1-EC49-4FB4-8132-44E18105F76D}
Name: CSWaver
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSWaverDS32.dll

PluginID: {324DA819-C319-4817-B750-E9357308D820}
Name: CSHumanize
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSHumanizeDS32.dll

PluginID: {478566E2-A387-4310-B2FE-562EC7370349}
Name: CSAntiOverlap
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSAntiOverlapDS32.dll

PluginID: {7AC4F12E-E608-43F7-83F3-651F723B37E2}
Name: CSTranspose
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSTransposeDS32.dll

PluginID: {7D21059E-4536-4B98-B9C7-DAE443026565}
Name: CSMidiModulator
Path: C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\32BitPlugins\CSMidiModulatorDS32.dll

 

Opened SONAR, created a new blank file, added a MIDI track and maximized both it and the track view, and saved it as Viramor Test 1.cwp and closed SONAR (so it will be at the top of the MRU in the file menu, even if something goes wrong and SONAR crashes).

Then I reopened SONAR and opened the blank project, and inserted the first of these MFX, and got the same  (visually) kind of crash as with the original 32bit version of CSHumanize.

I proceeded to do this again for each of the new versions of the MFX, as they show in the menu (alphabetically), and each crashed.   

So the crashdump file linked near the top of the post should have one crash for each one, in that order by date/time. 

 

(hopefully I correctly typed this up, I have dozed off several times writing this post)

viramor test 1.cwp

Link to comment
Share on other sites

11 hours ago, Amberwolf said:

but they all crash on insert.

Argh!

The first thing I'll do is apply the 3 patches to get to 8.5.3 (I'm just running 8.5.0) to make sure we're using exactly the same executable. Second, I'll send you a debug version of CSHumanize and CSWaver since the errors in the dump files are slightly different between CSWaver and the others. The dumps will be much more useful when created from the debug versions. I may also send you a small dummy plugin that will contain certain graphics function types if I need to isolate those. The problem appears to be related to painting the graphics... for some of the plugins, anyway.

One important question I forgot to ask... are you running Windows 10 32-Bit or 64-Bit?

If you don't know/forgot, go to:
Settings > System > About
 Near the top, under Device Specifications, check System Type. It'll say 64-bit operating system or 32-bit operating system.

Pretty sure you're running 64 bit since you said you tried installing CbB which I believe has always been 64 Bit only.

I've updated to 8.5.3 and everything still works so, Plan B.

Ok... edit number 47.

Here are a couple of debug versions. I don't need to tell you the procedure since you already seem to be a pro 🙂

Send me the inevitable crash dumps for these two:
Debug.zip

Edited by Variorum
  • Like 2
Link to comment
Share on other sites

3 minutes ago, Glenn Stanton said:

ah. the joys of supporting 20 year old software

At this point it's just a matter of professional pride! I'll get these things to work on a VIC-20 if I have to! 😁

  • Like 2
  • Haha 3
Link to comment
Share on other sites

9 hours ago, Variorum said:

At this point it's just a matter of professional pride! I'll get these things to work on a VIC-20 if I have to! 😁

That was my first computer, when I was in grade school, saving hand-typed BASIC programs on a cassette-tape drive. ;)  Unfortunately I lost most of my computer collection (and much more important things) in a housefire about 11 and a half years ago, so I don't have it or my Amigas, etc. anymore. 

 

I'm not sure you can fit much of a MIDI program (well, *any* program) in the kilobyte or so of ram I think it had (been a really long time, so can't say if that's anywhere near accurate 😊

 

 

10 hours ago, Variorum said:

One important question I forgot to ask... are you running Windows 10 32-Bit or 64-Bit?

Win10 64bit version 1511 build 10586.218

Machine is a Lenovo ideapad 300-17isk

64bit CPU Core i5-6200U @2.3ghz/2.4ghz 

16gb ram

 

The debug versions won't register using either 64 or 32bit process

C:\Windows\SysWOW64\regsvr32.exe filename.dll

C:\Windows\System32\regsvr32.exe filename.dll

(These are in my SendTo folder and work normally with registerable dlls).

with the message "The module "C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug\CSWaverDS32_D.dll" (or CSHumanizeDS32_D.dll) failed to load.   Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.  The specified module could not be found.    

 

Registering the previous 32bit version of either, then replacing it with the debug version (renaming the debug version to match the registered one), then starting SONAR and inserting either just gives the Missing Plugin dialog.  :/

 

Is there a different procedure for registering them that I can try? 

 

 

 

 

 

Link to comment
Share on other sites

30 minutes ago, Amberwolf said:

Is there a different procedure for registering them that I can try? 

Remember to extract the plugin DLLs from the zip before registering them. I've gotten distracted before, just double clicked on one of the zips and tried to register it... won't work!

This is what I've used for a long time:
ContextReg.zip

Extract the contents and right click DLL_REG.reg and click Merge.
It adds 2 entries to your explorer context menu (when you right-click on a file) to register and unregister a DLL. It also automatically elevates regsvr32 to run with administrator rights. Makes it really easy to quickly register/unregister the plugins as Administrator... I have to do it a lot :)

DLL_REG_REMOVE.reg just removes those entries if you don't want to use it anymore.

You'll probably have to close and re-open your explorer window to make the new context menu items show up after you merge the DLL_REG file.

I double checked both of them here and they register fine. The only times I've had a problem registering is when I've tried it without admin rights or when I tried to register without actually extracting them (see above 🤪)

Try the DLL_REG solution and let me know how it goes. If it still doesn't work we'll move to the CMD window (or Power Shell) started as admin and run regsvr32 from there.

Link to comment
Share on other sites

The files are definitely unzipped from the debug.zip file.  If I use the windows context menu (possibly from 7zip?) extract function on the DLL itself it extracts into various files and folders that are parts of the DLL internals, so when they show up as the CSHumanizeDS32_D.dll and CSWaverDS32_D.dll they are as unzipped as they can get and still be used. :)

The command that I run on them using the sendto menu works on anything else that is a registerable (or unregisterable) dll file (not all of them can be), and has worked for other manual registering/etc I have done so far in this process for previous files. (and is how I normally do this for various MFX and DX effect / DXi synth install / uninstall or temporary troubleshooting).   

So it *should* work on these, as well; the results I get aren't those of a failure of the registration process but rather of a file that can't be registered / doesn't have the parts the regsvr32 program is looking for.  😕

 

Just in case, I used Windows Powershell in admin mode, and this command line for each debug-version dll:

C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug> c:\windows\system32\regsvr32.exe CSWaverDS32_D.dll

C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug> c:\windows\system32\regsvr32.exe CSHumanizeDS32_D.dll

with the same result as previously posted. "The module "C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug\CSWaverDS32_D.dll" (or CSHumanizeDS32_D.dll) failed to load.   Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.  The specified module could not be found."

Same results if I add the .\ to the path that you use in the bat files for the other plugins.

C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug> c:\windows\system32\regsvr32.exe .\CSHumanizeDS32_D.dll

 

Same results if I force it to use the 64bit regsvr32

C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug> c:\windows\SysWOW64\regsvr32.exe CSWaverDS32_D.dll

C:\Program Files\Cakewalk\Shared MIDI Plugins\Viramor\Debug> c:\windows\SysWOW64\regsvr32.exe CSHumanizeDS32_D.dll

 

I also tried editing your install_all.bat file for just these two, by removing the other files from it and leaving just these lines after the START section, also with the same result.   

regsvr32 .\CSHumanizeDS32_D.dll
regsvr32 .\CSWaverDS32_D.dll

 

I redownloaded the debug.zip file and reextracted it, both with the same end results, first using 7zip, then using the windows browser to see the contents of the zipped folder and copying/pasting the files in it to an uncompressed folder, in case it was a download or extraction fault.

 

To be sure the files in the debug.zip are not being corrupted between you posting them and me downloading them, I've attached a new debug.zip file that contains the actual files as extracted on my system, along with my modified install_all.bat file. 

 

Anything else will have to wait till tomorrow, I've dozed off a few times typing this up so I hope I didn't miss any info you need. 😊

 

Faulty Debug.zip

Link to comment
Share on other sites

I'm kinda stumped so far. I extracted the DLLs you sent back and they Registered/Unregistered with no problems.

The first thing you could try is installing the C++ x86 redistributables (https://aka.ms/vs/17/release/vc_redist.x86.exe) just to make sure you have the latest on your machine for projects built using VS2022.

If it isn't that, I'll see if I can make up a dummy DLL that contains just the DllRegisterServer and DllUnregisterServer functions and make sure that works, then add the functions that actually write the new entries to the registry and see if that works, etc. until it breaks.

It doesn't seem like it should be a problem with the redistributables because previous plugins were registering properly on your machine. I did have a problem a long time ago with permissions on registry keys (you can set the permissions and ownership on registry keys just like you can with files). The key's owner was listed as "Unknown Account" or something like that and I couldn't change owners, edit it, or even delete it. Had to use a Linux boot disk and a Windows Registry utility to fix it.

BTW - I added you as a member on the Viramor Forum... UserName: AmberWolf, PW: <your dog's name, one word, all lowercase. We may have to move the convo there so as not to monopolize this forum. 😜

UPDATE - Nevermind about the redistributables, I'm pretty sure the problem is that the debug version needs the debug libraries to run. The C++ redistributable won't contain those, and having you install Visual Studio (mucho gigs) just to test the DLLs might be overkill 😬
It won't hurt to install the latest redistributables if you want to. At least it would rule out incompatibilities with the non-debug versions.

You can just delete the debug versions...

Edited by Variorum
Link to comment
Share on other sites

As you expected, the VCredistributable didn't change anything.  

Is there anywhere to get just the specific debug libraries?

According to the MS page https://learn.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2022 individual components can be installed, rather than the whole thing, so if you know which specific component I need to just do the debugging part, I can install those (as long as it isn't something that could break the computer--if it's possible to break something, I'll use the spare laptop instead). 

 

Link to comment
Share on other sites

You should only need to install Desktop development with C++, but beware it's a very large installation... 10's of GB.
Didi installing the redistributables fix the crashing of the original (non-debug) plugins by any chance?

Link to comment
Share on other sites

I didn't think to try the originals, but I'll do that now.  

Space isn't a problem for the spare laptop; ATM it basically just has Windows on it, and a few utility programs. 

it's windows10 can't be updated either, but in it's case it is because the updates always fail (even starting from a fresh Lenovo factory restore), and it ends up stuck in a loop trying to install, reboot, fail, install, reboot, etc, so I had to disable the ability to update, and because that's only temporary on 10home, I can't trust it to stay connected to a network.  So I'll have to do the downloading with the other machine for an "offline install" (if it has that option), then put the install files on the spare machine and let it go.   (yeah, nothing is ever easy)

Link to comment
Share on other sites

No change.   Here's the dump for CSMIDIModulator, if it's helpful.

 

SONARPDR.exe.5780.dmp.zip

 

In the meantime, while I'm figuring out how to setup the spare laptop to debug stuff, would a procmon system monitoring file be useful, run during the crash?  They're likely to be very large; even just a few seconds of just 32bit processes (excluding 64bit) is about 70mb.  

Edited by Amberwolf
Link to comment
Share on other sites

21 hours ago, Amberwolf said:

would a procmon system monitoring file be useful

Nah, I've been going over the (non-debug) crash dumps and I know exactly where and why the crashes occur in the code...  Gdiplus calls are failing. Now I'm trying to figure why the calls work on my machines but fail on yours. I'm hoping it's just a version mismatch of some kind. Need to do more research and experiments.

When you get a chance, send me the version of your GdiPlus.dll:

This is mine...

GdiPlus.dll (32 Bit)
Location: C:\Windows\SysWOW64
Version: 10.0.19041.4597

EDIT:
I'm figuring some of this dump file stuff out (slowly)...

It appears from the dump files and the loaded GdiPlus.dll that your Windows version is 10.0.10586, that would be from 2015.

I'm leaning toward some compatibility issues, but I'm not positive yet.

EDIT AGAIN:
You can't install the10586 libs anymore but luckily I still have them on my machine (one of the advantages of using the same box for years 😋) so I built a version of CSHumanize using them. I really don't know if it'll make a difference, but give it a try...

Download it here.

Edited by Variorum
Link to comment
Share on other sites

Unfortunately that didn't fix the crash. The log is attached.

 

But just to confirm, yes, that is the version of gdiplus.dll on my system.

 

I realize your plugins just *look* like the Cakewalk originals in style, and are not coded like them....but my broken brain seems to be trying to tell me something.  I can't tell what it is yet, since different parts of my brain sometimes don't talk to each other, but...i'll post it if I figure it out. I think they were coded in MFC rather than VS (I don't really know the difference, if there even is one).   

 

SONARPDR.exe.7684.dmp.zip

Link to comment
Share on other sites

A thought related to graphics:  My laptop's built in display is too small for me to read (yeah, don't get old), so I use a big external monitor.  Because the connectors on the side of the laptop failed years ago, I use an external USB DisplayLink box (by Targus, I think, but the drivers are all by DisplayLink for all of these things).   Is there a chance that the display drivers could cause this?  If so, I can get SONAR setup on the spare laptop (which has it's built in stuff still working); that has never had the displaylink connected to it so has no dl software.  

AFAIK it still has the same win10 version this one does; whatever was factory back then.  

Link to comment
Share on other sites

15 minutes ago, Amberwolf said:

Is there a chance that the display drivers could cause this?

No, display drivers wouldn't affect it. I've managed to duplicate the problem in my test harness by not initializing Gdiplus. Normally, the host program calls a pair of functions to start and stop Gdiplus. When I test the plugins, my test program calls these. If I comment out the gdiplus init, I get the same error I see in the dumps. I know SONAR 8.5.3 is calling these correctly because the plugins work here, but for some reason, there's a disconnect on your machine.

I made another test plugin to check that theory (maybe). Same drill... unzip, register, and crank up SONAR.

Grab it here.

  • Great Idea 1
Link to comment
Share on other sites

THAT worked. :)  No crash yet, been playing with it for 15-20 minutes at least (got lost in music 😊 ).

Inserted normally, GUI works.  

Loaded up the first MIDI file that came up for import, an old arp pattern I'd made for zeta, and played with the GUI more, but cant' hear what's happening so....

inserted Z3TA2+, hit the dice on a patch, turned the arp off in the patch, and routed this track to it.  turned the arp clip into a loop and dragged it out a lot of measures.

Hit play, and...it sounded kinda cool, so I played with the humanize settings (all the sliders enabled) until it was just on the stiffer side of non-mechanical.

inserted the SI drums and clicked the first preset (aggressive) just to have something to hear it against, and it got cooler.  

Bypassed cshumanize, and could clearly hear the difference, so it's working. :)

 

So now I guess the question is...why doesn't my SONAR (which ought to be the same as your test 8.5.3) init the gdiplus, while yours does?  Any ideas I can test without risk of breaking my setup?  (my guess is it has to do with the ancient Win10 version, but that's not something I can fix on this setup).   

I still have to setup SONAR on the spare laptop and test  there, anyway--this should give some sort of comparison. Won't happen tonight, but maybe tomorrow after work. (or more likely after my first nap after work, and after the Schmoo-monster claims her playtime). 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...