COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :

Go Back   Cockos Incorporated Forums > Other Software Discussion > WDL users forum

Reply
 
Thread Tools Display Modes
Old 09-24-2011, 04:54 PM   #41
cerberus
Human being with feelings
 
Join Date: Nov 2009
Location: memory
Posts: 634
Default

Quote:
Originally Posted by A_SN View Post
...how do I know when Reset() is being called after the plugin gets unbypassed? Since I'm making an EQ it 'remembers' what it's working on so if you bypass it and unbypass it then it plays what it had left in memory when I should blank it. So how do I know when Reset() is being called for that and not something else? Cause it seems Reset gets called for a lot of things? Or are all those things situations where I'd want to blank the buffers anyway? What do you usually do about that?
i think the host decides when it calls Reset, so afaik the only way to
know for sure is to put a breakpoint or cout/printf in the method...
cerberus is offline   Reply With Quote
Old 11-11-2011, 05:36 AM   #42
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

I have a problem with the value entry by right-clicking an IKnob (namely an IKnobLineControl). After I right click the value entry field appears but I can't input anything, everything I type something it reverts to the previous value almost instantly, so I just can't type in a new value.

I don't think I'm doing anything funny, this is how I initialise my knobs:
Code:
pGraphics->AttachControl(new IKnobLineControl(this, &IRECT(gx-25, gy-25, gx+25, gy+25), kEQg+i, &IColor(0, 0, 0, 0)));
pGraphics->GetControl(ctrlg+i)->SetBlendMethod(IChannelBlend::kBlendAdd);
A_SN is offline   Reply With Quote
Old 11-14-2011, 07:25 PM   #43
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by A_SN View Post
I have a problem with the value entry by right-clicking an IKnob (namely an IKnobLineControl). After I right click the value entry field appears but I can't input anything, everything I type something it reverts to the previous value almost instantly, so I just can't type in a new value.

I don't think I'm doing anything funny, this is how I initialise my knobs:
Code:
pGraphics->AttachControl(new IKnobLineControl(this, &IRECT(gx-25, gy-25, gx+25, gy+25), kEQg+i, &IColor(0, 0, 0, 0)));
pGraphics->GetControl(ctrlg+i)->SetBlendMethod(IChannelBlend::kBlendAdd);
It seems my problem has to do with the GUI (calls to my implementation of Draw()) not being frozen/suspended when the editing field first comes up. It only freezes after right clicking on it and then I can enter a value properly.

So, is there any way I can make it suspends calls to my Draw() when right-clicking a knob to enter a value? Does it really have to be suspended to enter a value?
A_SN is offline   Reply With Quote
Old 11-15-2011, 03:04 AM   #44
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

it's tricky to advise on this because the text entry stuff varies between different WDL/IPlug versions... cockos', tale's, mine, wdl-ce. Also it depends on what OS/host you're using... since there are three possible GUI situations on OSX (cocoa/carbon-composited/carbon-noncomposited).

i think you were using tale's version... and AFAIK the text entries work on his plugins. It may be something to do with how the controls are laid out in your plugin and if that is causing a lot of things to redraw. It might be the same issue mentioned here:

http://forum.cockos.com/showthread.p...ghlight=strict
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 03:06 AM   #45
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

yeah try setting pGraphics->SetStrictDrawing(false) in your plugin's constructor
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 05:49 AM   #46
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Thanks for the reply, unfortunately SetStrictDrawing(false) didn't do anything. I think maybe it has to do with my special setup: my first control is an IControl class I made that takes the whole window and that I use to draw my framebuffer, and it's set to always being dirty (since I need to constantly redraw it, mainly because of animated visualisation thingies). I guess it means that all my controls intersect with something dirty which causes them to be redrawn which prevents my inputting of new values? I don't know what I can do about that.

And this is indeed with Tale's code on Windows 7.
A_SN is offline   Reply With Quote
Old 11-15-2011, 06:10 AM   #47
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

I have experienced this myself on windows and here is how i fixed it. I can't say if this will work
without other modifications but you could try it

in IGraphicsWin::WndProc()

replace

Code:
if (pGraphics->IsDirty(&dirtyR)) {
  RECT r = { dirtyR.L, dirtyR.T, dirtyR.R, dirtyR.B };
  InvalidateRect(hWnd, &r, FALSE);
  UpdateWindow(hWnd);
  if (pGraphics->mParamEditWnd) {
	pGraphics->mParamEditMsg = kUpdate;
  }
}
with

Code:
if (pGraphics->IsDirty(&dirtyR)) {
  RECT r = { dirtyR.L, dirtyR.T, dirtyR.R, dirtyR.B };
  
  InvalidateRect(hWnd, &r, FALSE);
  
  if (pGraphics->mParamEditWnd) {
	IRECT* notDirtyR = pGraphics->mEdControl->GetRECT();
	RECT r2 = { notDirtyR->L, notDirtyR->T, notDirtyR->R, notDirtyR->B };
	ValidateRect(hWnd, &r2); // make sure we dont redraw the edit box area
	UpdateWindow(hWnd);
	pGraphics->mParamEditMsg = kUpdate;
  }
  else 
    UpdateWindow(hWnd);
}
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 06:27 AM   #48
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

I replaced the code and it doesn't flicker anymore, however it still doesn't work right. It lets me enter one value but if I try to enter another or try to validate it then it resets the value.
A_SN is offline   Reply With Quote
Old 11-15-2011, 06:33 AM   #49
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

sorry no idea... i don't have this problem - you're on your own I'm afraid. I attached my IGraphicsWin, which may have the answer somewhere...
Attached Files
File Type: zip olIGraphicsWin.zip (9.2 KB, 89 views)
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 07:04 AM   #50
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Well, now everything works fine because I made my own class inherited from IKnobControl just so that I could make it set a flag before it calls mPlug->GetGUI()->PromptUserInput() so that my window-wide framebuffer control declares itself not dirty so that it doesn't get drawn.

There's just two problems with that: I know where to set my flag to suspend the drawing, but I don't know where to unset it. What happens when the user is done with the input (either entering a new value or just cancelling)? What function is called/returns?

And secondly, did you actually manage to have the input work correctly while having an intersecting control being dirty/redrawing all the while? If not then I guess that's what my problem is all about.
A_SN is offline   Reply With Quote
Old 11-15-2011, 07:16 AM   #51
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

Quote:
Originally Posted by A_SN View Post
And secondly, did you actually manage to have the input work correctly while having an intersecting control being dirty/redrawing all the while? If not then I guess that's what my problem is all about.
yes, I just tested it and it's working with a constantly redrawing bg in my iplug
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 07:32 AM   #52
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by olilarkin View Post
yes, I just tested it and it's working with a constantly redrawing bg in my iplug
OK so I tried yours (from your github repo) but there's a couple of things missing I need to compile, namely GetDrawBitmap from class IGraphics and InformHostOfProgramChange. Do you have those somewhere under another name?
A_SN is offline   Reply With Quote
Old 11-15-2011, 07:35 AM   #53
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

my wdl isn't on github right now... that is my branch of wdl-ce.

Hopefully next week i will be able to make my private wdl public again
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 11-15-2011, 07:48 AM   #54
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by olilarkin View Post
my wdl isn't on github right now... that is my branch of wdl-ce.

Hopefully next week i will be able to make my private wdl public again
Oh okay. When you do I'd like to know, thanks (do you have a thread for that that I can follow maybe?).
A_SN is offline   Reply With Quote
Old 11-15-2011, 02:56 PM   #55
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

My code worked more or less alright for me. That is to say, it did flicker when e.g. the parameter is automated. Also, I had trouble entering values while the automation runs (i.e. when playing, or when LFO automated). So I have just revised and fixed my code. Changes:

+ Don't update contents of text input box
+ Don't redraw text input box when redrawing plug-in window
+ Switch to editing state not just on focus, but also when starting to type

For now you will find this patch (commit 81f50aa) on the "next" branch of my Git repository (I will merge it into "master" after some more testing).
Tale is offline   Reply With Quote
Old 11-15-2011, 04:28 PM   #56
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
My code worked more or less alright for me. That is to say, it did flicker when e.g. the parameter is automated. Also, I had trouble entering values while the automation runs (i.e. when playing, or when LFO automated). So I have just revised and fixed my code. Changes:

+ Don't update contents of text input box
+ Don't redraw text input box when redrawing plug-in window
+ Switch to editing state not just on focus, but also when starting to type

For now you will find this patch (commit 81f50aa) on the "next" branch of my Git repository (I will merge it into "master" after some more testing).
Excellent, I tried it and it works great! Although it does stop the redrawing of the background stuff when I start typing (and only when I start typing/editing, it keeps redrawing when the input field is just being displayed).

Are there any particular caveats with the current state of that branch, any known problems? I did a quick test and everything seems to work fine here (only tested 32-bit builds in Windows 7).
A_SN is offline   Reply With Quote
Old 11-16-2011, 07:47 AM   #57
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

I have tweaked things a little more, so it doesn't stop redrawing while editing. And I now revalidate the text input box instead of the control, i.e.:

Code:
InvalidateRect(hWnd, &r, FALSE);
if (pGraphics->mParamEditWnd) {
  GetClientRect(pGraphics->mParamEditWnd, &r);
  MapWindowPoints(pGraphics->mParamEditWnd, hWnd, (LPPOINT)&r, 2);
  ValidateRect(hWnd, &r);
}
UpdateWindow(hWnd);
I have tested this new code in a couple of hosts on both Win7 Pro x64 and WinXP Pro x86, and it seems to work fine. I will update my Git repository with these changes later on.

EDIT: The changes are on the "master" branch of my WDL.git repository now.

Last edited by Tale; 11-16-2011 at 10:00 AM. Reason: Updated my WDL.git
Tale is offline   Reply With Quote
Old 11-18-2011, 01:05 PM   #58
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
I have tweaked things a little more, so it doesn't stop redrawing while editing. And I now revalidate the text input box instead of the control, i.e.:

Code:
InvalidateRect(hWnd, &r, FALSE);
if (pGraphics->mParamEditWnd) {
  GetClientRect(pGraphics->mParamEditWnd, &r);
  MapWindowPoints(pGraphics->mParamEditWnd, hWnd, (LPPOINT)&r, 2);
  ValidateRect(hWnd, &r);
}
UpdateWindow(hWnd);
I have tested this new code in a couple of hosts on both Win7 Pro x64 and WinXP Pro x86, and it seems to work fine. I will update my Git repository with these changes later on.

EDIT: The changes are on the "master" branch of my WDL.git repository now.
Excellent, it works perfectly thank you. There is one minor detail, if you don't enter a new value and just press return it sets the value to 0.0 no matter what.
A_SN is offline   Reply With Quote
Old 11-18-2011, 02:55 PM   #59
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

Quote:
Originally Posted by A_SN View Post
Excellent, it works perfectly thank you. There is one minor detail, if you don't enter a new value and just press return it sets the value to 0.0 no matter what.
That doesn't happen here. If I right-click on a control, and then simply press the Enter key without changing the text, then the contol's value remains unchanged:

Tale is offline   Reply With Quote
Old 11-18-2011, 03:40 PM   #60
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
That doesn't happen here. If I right-click on a control, and then simply press the Enter key without changing the text, then the contol's value remains unchanged:
Strange, could it be a IKnobControl-only thing? (Doubt it, but who knows).
A_SN is offline   Reply With Quote
Old 11-19-2011, 06:02 AM   #61
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

Quote:
Originally Posted by A_SN View Post
Strange, could it be a IKnobControl-only thing? (Doubt it, but who knows).
I don't think so, because for me it also works fine on a IKnobMultiControl:

Tale is offline   Reply With Quote
Old 11-23-2011, 11:22 AM   #62
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Other question, how do I change the paramIdx assigned to a control after the control has been created? It seems like I just need to make a function in my knob class that will change the value of mParamIdx, is that correct or is there more to it?

I need to do that because one control controls the same parameter in many different bands (it's an equaliser with many control points but only a set of knobs for each), so it should change when a different point is selected.

EDIT: yep, seems like it's all it takes:
Code:
void IKnobInvisibleControl::ChangeParam(int paramIdx) { mParamIdx = paramIdx; }

Last edited by A_SN; 11-23-2011 at 02:01 PM.
A_SN is offline   Reply With Quote
Old 11-26-2011, 02:09 PM   #63
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Uh oh, in my version of IPlug there is no code for PromptForFile, does anyone have code for that anywhere?

Code:
// extensions = "txt wav" for example
void IGraphicsMac::PromptForFile(WDL_String* pFilename, int action, char* dir, char* extensions)
{
}
EDIT: In case no one has any code for that I have some, however it requires the use of a .nib file.

Last edited by A_SN; 11-26-2011 at 02:15 PM.
A_SN is offline   Reply With Quote
Old 11-26-2011, 02:58 PM   #64
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

I believe olilarkin's repository includes PromptForFile() for Mac.

EDIT: I have added an adaptation of Oli's PromptForFile() to my Git repository.

Last edited by Tale; 11-27-2011 at 07:09 AM. Reason: Added PromptForFile() to Git repo
Tale is offline   Reply With Quote
Old 11-29-2011, 07:30 AM   #65
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
I believe olilarkin's repository includes PromptForFile() for Mac.

EDIT: I have added an adaptation of Oli's PromptForFile() to my Git repository.
Thanks, works well (your implementation, I wasn't able to make a working project file that works with Oli's WDL). However now I can't build AUs anymore, the linker spits this out:

Code:
Undefined symbols:
  "_CFAUPresetRelease", referenced from:
      IPlugAU::GetProperty(unsigned int, unsigned int, unsigned int, unsigned int*, unsigned char*, void*)in IPlugAU-04F7637A.o
  "_CFAUPresetCreate", referenced from:
      IPlugAU::GetProperty(unsigned int, unsigned int, unsigned int, unsigned int*, unsigned char*, void*)in IPlugAU-04F7637A.o
  "_kCFAUPresetArrayCallBacks", referenced from:
      IPlugAU::GetProperty(unsigned int, unsigned int, unsigned int, unsigned int*, unsigned char*, void*)in IPlugAU-04F7637A.o
ld: symbol(s) not found
I have no idea what's wrong with it.
A_SN is offline   Reply With Quote
Old 11-29-2011, 07:45 AM   #66
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

Quote:
Originally Posted by A_SN View Post
I have no idea what's wrong with it.
I think I do. There were some memory leaks in IPlugAU, so I have added the Detroy FX AU Utilities to fix this. If you add the following two files to the AU build target of your project, it should work again:

WDL/dfx-library/dfx-au-utilities.c
WDL/dfx-library/dfx-au-utilities.h
Tale is offline   Reply With Quote
Old 11-29-2011, 09:16 AM   #67
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
I think I do. There were some memory leaks in IPlugAU, so I have added the Detroy FX AU Utilities to fix this. If you add the following two files to the AU build target of your project, it should work again:

WDL/dfx-library/dfx-au-utilities.c
WDL/dfx-library/dfx-au-utilities.h
Alright that works thanks. Regarding the targets, I made my Xcode project thing based on the IPlugExample, but I'm not sure I get what it does right. "VST" makes a VST that is Intel (32 & 64) and PowerPC (32 & 64) at the same time, right? And AU only makes Intel 32 and PowerPC 32, and AU_x64 does only Intel 64 and PowerPC 64, is that right? Cause in the later it says i386 and ppc too but it doesn't seem to make a binary that works in 32 bits.
A_SN is offline   Reply With Quote
Old 11-29-2011, 11:13 AM   #68
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

Quote:
Originally Posted by A_SN View Post
Regarding the targets, I made my Xcode project thing based on the IPlugExample, but I'm not sure I get what it does right. "VST" makes a VST that is Intel (32 & 64) and PowerPC (32 & 64) at the same time, right? And AU only makes Intel 32 and PowerPC 32, and AU_x64 does only Intel 64 and PowerPC 64, is that right? Cause in the later it says i386 and ppc too but it doesn't seem to make a binary that works in 32 bits.
The IPlugExample project in my repository contains the following targets:

VST: PowerPC 32 (ppc) & Intel 32 (i386)
AU: PowerPC 32 (ppc) & Intel 32 (i386)
AU_x64: Intel 32 (i386) & Intel 64 (x86-64)

I hope that helps.
Tale is offline   Reply With Quote
Old 12-15-2011, 09:04 AM   #69
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

so is SplineEq using IPlug? nice display!
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 12-15-2011, 09:09 AM   #70
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by olilarkin View Post
so is SplineEq using IPlug? nice display!
Hehe yep thanks, how did you hear about SplineEQ?
A_SN is offline   Reply With Quote
Old 12-15-2011, 09:10 AM   #71
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

computer music mag on twitter
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 12-15-2011, 09:38 AM   #72
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by olilarkin View Post
computer music mag on twitter
Hehe cool, but wait, how did you know it was by me?
A_SN is offline   Reply With Quote
Old 12-15-2011, 09:44 AM   #73
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

because i think you mentioned photosounder on kvr, when me and tale said you should try IPlug
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 12-15-2011, 09:49 AM   #74
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Oh yeah naturally. Anyway you and Tale have helped me so much making SplineEQ (and every future plugin I'll make based on that) I should send you guys a free version of SplineEQ if you'd like .
A_SN is offline   Reply With Quote
Old 12-25-2011, 04:26 PM   #75
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Is here any reason why POSIX semaphores (sem_t) shouldn't do their blocking job properly specifically in Ableton Live (and no other host), specifically on OS X (and not Windows) and specifically with the AU version (and not the VST version)? And it's not for just one person, it's systematic for everyone who tried, I'm able to reproduce it myself.
A_SN is offline   Reply With Quote
Old 01-02-2012, 09:29 AM   #76
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

It seems there's a systematic problem on my Mac OS builds, however I'm afraid I'm not interpreting the hang/crash (it hangs and people make it force quit) reports correctly.

Here's an example the recurring problem (the same stuff happens with the same hexadecimal offsets for different users with different hosts):
Code:
  User stack:
    9 ??? (in auvaltool + 2573) [0x1a0d]
      9 ??? (in auvaltool + 7663) [0x2def]
        9 ??? (in auvaltool + 5832) [0x26c8]
          9 ??? (in auvaltool + 57448) [0xf068]
            9 ??? (in auvaltool + 43972) [0xbbc4]
              9 AudioUnitSetProperty + 67 (in AudioUnit) [0x943d72fc]
                9 CallComponentDispatch + 29 (in CarbonCore) [0x965be51f]
                  9 ??? (in SplineEQ + 133009) [0x320791]
                    9 ??? (in SplineEQ + 128523) [0x31f60b]
                      9 SplineEQ_ViewEntry + 18786 (in SplineEQ) [0x331d88]
                        9 SplineEQ_ViewEntry + 1121 (in SplineEQ) [0x32d887]
                          9 ??? (in SplineEQ + 185228) [0x32d38c]
                            9 ??? (in SplineEQ + 185134) [0x32d32e]
                              9 mach_wait_until + 10 (in libSystem.B.dylib) [0x90440c0e]

 Binary Images:
      0x1000 -    0x1cfe7  auvaltool ??? (???) <5B09DA21-266C-1FB4-07F1-ED75A02B5506> /usr/bin/auvaltool
    0x300000 -   0x33ffe3  com.Photosounder.audiounit.SplineEQ ??? (1.0) <1F3143C7-E956-678C-91A7-7EB45FB53FD3> /Library/Audio/Plug-Ins/Components/SplineEQ32.component/Contents/MacOS/SplineEQ
When I try to make sense out of the "??? (in SplineEQ)" lines using atos I get this:
Code:
users-Mac:i386 user$ atos -o SplineEQ32 -arch i386 -l 0x300000 0x320791 0x31f60b 0x331d88 0x32d887 0x32d38c 0x32d32e
IPlugAU::IPlugAUEntry(ComponentParameters*, void*) (in SplineEQ32) (IPlugAU.cpp:282)
IPlugAU::GetProperty(unsigned long, unsigned long, unsigned long, unsigned long*, unsigned char*, void*) (in SplineEQ32) (IPlugAU.cpp:388)
SplineEQ::SplineEQ(IPlugInstanceInfo) (in SplineEQ32) (SplineEQ.cpp:206)
IDrawControl::OnMouseOut() (in SplineEQ32) (SplineEQ.cpp:1391)
SplineEQ::init_buffers(int, double, double) (in SplineEQ32) (SplineEQ.cpp:466)
SplineEQ::init_buffers(int, double, double) (in SplineEQ32) (SplineEQ.cpp:460)
However it doesn't make sense as a call stack so I must be doing something wrong. Plus in the crash report it says 'SplineEQ_ViewEntry' for the 3rd and 4th crashes but in the atos output it says 'SplineEQ::SplineEQ' and 'IDrawControl::OnMouseOut', which doesn't sound consistent.

It seems I'm using the load address correctly though...
A_SN is offline   Reply With Quote
Old 01-02-2012, 03:42 PM   #77
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

I can't seem to load SplineEQ either (on Mac OSX 10.6.8), indeed REAPER hangs and I have to terminate REAPER. The AU version also hangs when trying to validate it using auval -v.

I would try to load it through a debugger (e.g. GDB, which comes with Xcode), and set some breakpoints, so you can see how far it gets before it stops. Alternatively you could insert printf("foobar\n"); somewhere, and check the console to see if it got there. If it did, then move the line a bit further etc.
Tale is offline   Reply With Quote
Old 01-03-2012, 11:12 AM   #78
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
I can't seem to load SplineEQ either (on Mac OSX 10.6.8), indeed REAPER hangs and I have to terminate REAPER. The AU version also hangs when trying to validate it using auval -v.

I would try to load it through a debugger (e.g. GDB, which comes with Xcode), and set some breakpoints, so you can see how far it gets before it stops. Alternatively you could insert printf("foobar\n"); somewhere, and check the console to see if it got there. If it did, then move the line a bit further etc.
Thanks for the heads up, can you try the latest version (I just uploaded v1.0.2) and see if it works any better? Apparently I had heap corruption problems from freeing and allocating buffers at the wrong times/with the wrong sizes, so I just did the wise thing and allocated them all once and for all at a maximum size so I only have to alloc them once.
A_SN is offline   Reply With Quote
Old 01-03-2012, 03:02 PM   #79
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by Tale View Post
I can't seem to load SplineEQ either (on Mac OSX 10.6.8), indeed REAPER hangs and I have to terminate REAPER. The AU version also hangs when trying to validate it using auval -v.

I would try to load it through a debugger (e.g. GDB, which comes with Xcode), and set some breakpoints, so you can see how far it gets before it stops. Alternatively you could insert printf("foobar\n"); somewhere, and check the console to see if it got there. If it did, then move the line a bit further etc.
OK I fixed the problem with the validator and released 1.0.3. It came from trying to double lock a same mutex when the sample rate is changed, which the validator does as part of its tests.

I'm pretty sure that it's what the problem that I was trying to symbolize above was about, so nevermind that. Although I still don't know what I did wrong with the symbolization.

New problem: is there any reason why (using your version of WDL) the VST build shouldn't be recognized by a 64-bit host on Mac OS? Someone tells me that when they use WaveLab LE 7.2.1 on Mac OS 10.7.2 the 32-bit version of WaveLab sees the 32-bit VST of my plugin, but the 64-bit version of WaveLab doesn't see the VST at all. Sadly I can't test that for myself.
A_SN is offline   Reply With Quote
Old 01-03-2012, 03:38 PM   #80
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,932
Default

Well, in theory you should be able to build a 64-bit VST on Mac with my WDL version. However, thusfar I haven't actually tried this myself, so I don't really know what kind of trouble you might run into (if any).
Tale is offline   Reply With Quote
Reply

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 04:40 AM.


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