COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 06-10-2013, 04:00 AM   #241
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by Tale View Post
Thanks for sharing! I thusfar haven't succeeded in compiling a 10.6 SDK project in Xcode 4, but this looks promising.
Thanks to Oli's instructions above I have now successfully compiled Combo Model F using Xcode 4.6.2 (using the LLVM GCC 4.2 compiler) and the 10.6 SDK, targetting OSX 10.5 (and even OSX 10.4).

I will stick to Xcode 3 for now, but at least I now have an alternative. Thanks, Oli!
Tale is offline   Reply With Quote
Old 08-15-2013, 02:25 PM   #242
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default Tooltips

I have just pushed an update to github (next branch) which includes Tale's Tooltip support.

https://github.com/olilarkin/wdl-ol/commits/next

please let me know if you have any issues, since I haven't had a chance to try this out properly yet

oli
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 08-30-2013, 02:51 PM   #243
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

just updated next branch to support AAX v2. If any other people are developing for ProTools would be interested to know how you get on

EDIT - I suggest you re-duplicate a template project since quite a few things have changed
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook

Last edited by olilarkin; 08-31-2013 at 02:30 AM.
olilarkin is offline   Reply With Quote
Old 09-16-2013, 04:01 AM   #244
JackReaperITA
Human being with feelings
 
Join Date: Sep 2013
Location: Philippines
Posts: 20
Default

Hi Oli, thanks for sharing wdl-ol-master.
What have I to do to run on Repaer the plugin located in the IPlugExamples folder?
I just want to try the samples on Reaper, not install the program. Thanks again!
JackReaperITA is offline   Reply With Quote
Old 09-16-2013, 04:35 AM   #245
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

you need to compile the examples before you can run them in reaper. See the file Examples.rtf for further info
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 10-11-2013, 01:48 PM   #246
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

Please could anyone developing for ProTools with WDL-OL let me know if they have any audio glitching in the latest versions of PT on Windows? I have recently upgraded to version 10.36 and 11.01 to do the 64bit AAX version of Endless Series but it seems that even RTAS in PT10 is glitching, where it didn't previously (AAX in PT10 and PT11 is also glitching badly). I think IPlug's mutexes are causing problems with these recent ProTools Windows builds. If I comment out the Mutex locks the glitching disappears. The Mac version seems OK though.
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 10-26-2013, 07:37 AM   #247
Nubeat7
Human being with feelings
 
Join Date: Oct 2013
Posts: 10
Default troubles with vst 3 in vst3 testhost

hallo, i`m new here and want to do my first steps in developing vsts in c++
i tried to debug the example (iplugeffect) like shown in the video "setup wdl on windows"

apps for win 32 / 64 worked fine!
vst2 32 / 64 (with savihost) worked fine too except that after quit savihost i got the message :
"Windows hat einen Haltepunkt in savihost.exe ausgelöst.

Dies kann auf eine Beschädigung des Heaps zurückzuführen sein, die auf ein Problem in savihost.exe oder in einer der geladenen DLLs hinweist.

Dies kann auch darauf zurückzuführen sein, dass der Benutzer F12 drückt, während savihost.exe den Fokus hat."

means savihost made a breakpoint. this could be because of damage heap because savihost has a problem, or the user used F12 while savihost was fokused (what i did not!)

ignoring the message ended debugging with code 0, so i dont know if its a big problem?

vst3 was worse because debuggíng opened vst3 testhost and i could find "myFirstPlugin" in the dropdownlist of the vst rack, but when i try to open it vst3testhost quits and debug ends with code 3.

there are also (in every scenario) loads of SysWOW64 dll`s which couldnot be found or opened?

any suggestions?

sorry for posting it on two places but i thuoght it is better to ask here because its wdl-ol
Nubeat7 is offline   Reply With Quote
Old 10-27-2013, 03:30 AM   #248
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

nubeat -> better to start a new thread. so i'll answer there
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 11-03-2013, 09:26 AM   #249
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Hey Oli, would it be possible in the Windows app-wrapper to have an option for WASAPI loopback? I'm going to try to do it myself anyway (it would be great for my visualisation plugin Spiral), I'm not sure I'll make anything you can reuse though (I'm bad with working with other people's code).

One would only have to adapt the code found there http://blogs.msdn.com/b/matthew_van_...-you-hear.aspx

Also would there be any way to have the same kind of thing for OS X? I ask out of ignorance, but I'd really love it if I could make my Spiral visualiser be a simple OS X app that displays whatever's currently being played.
A_SN is offline   Reply With Quote
Old 11-03-2013, 10:06 AM   #250
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

Sounds interesting but i have more pressing issues to deal with (see below). You could ask the developer of RTAudio to support WASAPI. IPlug standalone uses RTAudio.

This weekend I've rewritten IPlug, because I don't think it's possible to make RTAS and AAX plugins with it that don't glitch with it's current design.

https://github.com/olilarkin/wdl-ol/issues/23
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 11-03-2013, 10:10 AM   #251
A_SN
Human being with feelings
 
Join Date: Aug 2011
Posts: 89
Default

Quote:
Originally Posted by olilarkin View Post
Sounds interesting but i have more pressing issues to deal with (see below). You could ask the developer of RTAudio to support WASAPI. IPlug standalone uses RTAudio.

This weekend I've rewritten IPlug, because I don't think it's possible to make RTAS and AAX plugins with it that don't glitch with it's current design.

https://github.com/olilarkin/wdl-ol/issues/23
Oh okay great thanks . And yeah that does sound more important, I only got feedback from one person on the AAX build of Spiral and apparently it doesn't even work at all (I never tested it though, I don't have PT).
A_SN is offline   Reply With Quote
Old 11-03-2013, 04:21 PM   #252
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

assuming you've got an avid dev account, contact them about getting a test copy. it beggars belief that anyone could make plugins without testing the plugin! Especially ProTools. Not saying that you don't, but in general people should really understand that JUCE or IPlug are far from a "one-click" solution to making products in all these formats. A LOT of testing is required to make professional plug-ins.
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 11-03-2013, 09:17 PM   #253
Lazarus
Human being with feelings
 
Join Date: Aug 2013
Posts: 1,355
Default

Good catch. I'm looking at Boost to create an additional thread for interprocess communication, but it would be nice if the revised IPlug had whatever you are going to use for cross platform thread/data management exposed to us mortals.
Lazarus is offline   Reply With Quote
Old 11-04-2013, 05:43 PM   #254
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

I'm using boost in the new IPlug for a lock free queue. of course it's also possible to use the rest of boost
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 11-05-2013, 01:33 AM   #255
Lazarus
Human being with feelings
 
Join Date: Aug 2013
Posts: 1,355
Default

Looking forward to taking it for a spin. Thanks for all the work and expertise you are putting into this.
Lazarus is offline   Reply With Quote
Old 11-11-2013, 11:51 PM   #256
onqel
Human being with feelings
 
onqel's Avatar
 
Join Date: Jun 2007
Location: Tromsø, Norway
Posts: 223
Default

I'm having trouble with Cubase 7 on OSX 10.9.. VST2.4
Loading up my 64bit plugin works fine, but the 32 bit doesn't load the GUI, it's just a black box.. any ideas? The plugin works fine in Reaper, both 32/64bit
onqel is offline   Reply With Quote
Old 11-12-2013, 07:20 AM   #257
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

sounds like you built against the 10.7 or higher sdk. 32bit carbon guis require building against the 10.5 or 10.6 sdks
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 11-12-2013, 07:38 AM   #258
cisdsp
Human being with feelings
 
cisdsp's Avatar
 
Join Date: Mar 2013
Posts: 75
Default

Have you clicked on the black box? Cubase (x64) has since 6.x a build in wrapper for 32bit plugins.
On my system it works by clicking on the black box, then the plugin window is shown up.
__________________
Website: CIS DSP Factory
cisdsp is offline   Reply With Quote
Old 11-12-2013, 10:37 AM   #259
onqel
Human being with feelings
 
onqel's Avatar
 
Join Date: Jun 2007
Location: Tromsø, Norway
Posts: 223
Default

Quote:
Originally Posted by cisdsp View Post
Have you clicked on the black box? Cubase (x64) has since 6.x a build in wrapper for 32bit plugins.
On my system it works by clicking on the black box, then the plugin window is shown up.
Nothing happens, if i choose to run it from Xcode (64bit) it works..
But yeah, Oli, I'm building for 10.7 and up because of C++11 support so that must be it :P
Just thought it was fine because it works in reaper
onqel is offline   Reply With Quote
Old 11-12-2013, 10:43 AM   #260
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

Reaper and Live 9 (perhaps from 8.4 actually) use cockos' cocoa vstextension. that's why it works in reaper
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 12-01-2013, 03:35 AM   #261
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 171
Default PT crackles

Hi Oli, I just got the SDK from avid (dome days ago) and was working to release my next plugin also for PT i'm testing right now with my own system and at a friend's studio but we all use mac so we haven't found any of the issues you mention, did you push any change into the "next" brach?

If not, if you can do it as soon as you have some spare time, i can then review the code and help test it!

Saverio

ps.
I've finally refactored my codebase a little bit so i can contribute back a couple of custo method for IControl and some controls i've written for my plugins, I'll send you a pull request soon!
HoRNet is offline   Reply With Quote
Old 12-01-2013, 04:19 AM   #262
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

I haven't shared the new version yet and I have barely started work on the new AAX wrapper. The new version is a dramatic change from the previous version of IPlug, and probably won't be backwards compatible. I have a new product that is about to go into beta testing based on the new version, so i will see how that goes before I make it publicly available.

If you're happy that your RTAS/AAX version works on Mac, then you could just release for Mac ProTools using the current IPlug. I think most ProTools users are on Mac anyway.
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 12-06-2013, 09:19 AM   #263
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

Hi Oli,probably I did, like many of us as soon as I started using iplug,
some modifications to WDL to be a bit more c++ compliant/robust.
As an example, I use stl and many parameter types for strings passed to the API were char* when in fact they were only const char *. that makes std::string conversions to be casted to char* (i.e. c_str()) which makes me worried in terms of potential side effects. I fixed that and other minor other aspects.
Also some bugs fixes from current WDL have been applied in my local branch.
How can I (we?) contribute to your git branch ?

Thanks for your great work and for still maintaining iplug.

Last edited by fabulousfab; 12-06-2013 at 09:52 AM.
fabulousfab is offline   Reply With Quote
Old 12-06-2013, 10:06 AM   #264
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

if you want to submit patches make an account on github, fork wdl-ol, commit your changes and do a pull request. That doesn't mean i'll merge it, but i'll have a look and if it is a sensible addition or fix and it's done neatly maybe I will. I'm not going to start replacing everything with STL stuff though.
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 12-06-2013, 11:03 AM   #265
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

That makes senses, I was not even considering replacing content with stl dependencies too, just facilitate integration with it and make the toolkit more robust and strongly typed, so i think we are on the same page on that regard.
Thanks Oli, will certainly investigate the git fork solution, for now I am more familiar with subversion, but will ramp up on it.
fabulousfab is offline   Reply With Quote
Old 12-06-2013, 04:24 PM   #266
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

Ok done,
my branch fork is fab672000 / wdl-fab on GitHub.

The detailed changes are:
- fixed build errors on xcode 3.2.6
- fixed warnings on xcode 3.2.6
- fixed bad/archaic char* casts on constant strings
- enhanced backup command to generate significantly smaller size archive while backing up more sources (i.e. all sdks folders)
- set the default mac sdk to mac os x 10.6 (and intel standard 32/64 bits)

Last edited by fabulousfab; 12-08-2013 at 10:25 PM.
fabulousfab is offline   Reply With Quote
Old 12-13-2013, 04:48 AM   #267
tamirh67
Human being with feelings
 
Join Date: Dec 2013
Posts: 1
Default developing on mac

If i develop a vst on mac, will it work on windows as well with WDl-OL?
tamirh67 is offline   Reply With Quote
Old 12-13-2013, 06:42 AM   #268
random_id
Human being with feelings
 
random_id's Avatar
 
Join Date: May 2012
Location: PA, USA
Posts: 356
Default

Quote:
Originally Posted by tamirh67 View Post
If i develop a vst on mac, will it work on windows as well with WDl-OL?
Yes it will.
Occasionally, you might run into differences between the OSX and MS compilers. Those are pretty easy to find and fix. You can also use macros to specify if it is a OSX or Windows build if you need to do different things in different operating systems.
__________________
Website: LVC-Audio
random_id is offline   Reply With Quote
Old 12-17-2013, 06:30 PM   #269
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

My changes will always be compatible to both windows and mac too, I developed new UI elements that I needed too that I need to submit once polished...
fabulousfab is offline   Reply With Quote
Old 12-19-2013, 03:00 PM   #270
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

coming soon:

- new IPlug based on VST3 SDK
- very similar implementation, but with GUI and DSP separated and lock free messaging between them: yey no mutexes!
- audiounit sandboxing support
- option to use VSTGUI4 or (shock horror!) JUCE for the GUI instead of IGraphics
- audio processing can now be either single precision or double precision (switch via a template parameter). Although it doesn't seem to gain any speed, this is useful for porting projects that have a lot of single precision code, e.g. FFT routines, and probably better for IOS.
- better IOS support (via steinberg ios wrapper)
- faust2IPlug script see http://faust.grame.fr/
- better IDE projects and build scripts
- guaranteed 16 byte aligned buffers for SIMD processing
- fully working on XCode3/10.6 and XCode5/10.8+
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook
olilarkin is offline   Reply With Quote
Old 12-19-2013, 04:22 PM   #271
random_id
Human being with feelings
 
random_id's Avatar
 
Join Date: May 2012
Location: PA, USA
Posts: 356
Default

Holy Crap!!!
That is awesome. You are the man!
__________________
Website: LVC-Audio
random_id is offline   Reply With Quote
Old 12-19-2013, 05:42 PM   #272
Lazarus
Human being with feelings
 
Join Date: Aug 2013
Posts: 1,355
Default

Wowsers, talk about unexpected... that's a super exciting update Oli - can't wait to check it out!

++HolyCrapolaOMeter //
Lazarus is offline   Reply With Quote
Old 12-20-2013, 06:53 AM   #273
Obe
Human being with feelings
 
Obe's Avatar
 
Join Date: Feb 2013
Location: France
Posts: 18
Default

Great !!

The faust part seems very intriguing.
Obe is offline   Reply With Quote
Old 12-20-2013, 11:47 AM   #274
onqel
Human being with feelings
 
onqel's Avatar
 
Join Date: Jun 2007
Location: Tromsø, Norway
Posts: 223
Default

Oli: how much work do you think there is going to be to port my projects to your new upcoming repository (from WDL-OL-Next) ? ..
onqel is offline   Reply With Quote
Old 12-20-2013, 01:31 PM   #275
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default

probably not very much work. The only things that might take a little thought are

A) any communication between the gui and dsp for metering/visualization

the gui and dsp are totally separated, so you cannot get a pointer to an IControl from ProcessReplacing()

B) custom IControls need to have a few methods/members renamed

C) serialization of custom data. bit strange how this works in vst3, will explain at a later date.

here is the new source code for IPlugEffect. You can see there are a few more files, but the implementation is basically the same.

resource.h
Code:
// THIS FILE WAS AUTO-GENERATED BY make_resource.py
// BEGIN_IDS
#define knob_ID 100
// END_IDS
// BEGIN_FILENAMES
#define knob_FN "knob.png"
// END_FILENAMES
config.h
Code:
#ifndef __IPLUGEFFECTCONFIG__
#define __IPLUGEFFECTCONFIG__

// Version Number in Hex
//                        0xMAJRMNBG
#define PLUG_VERSION_HEX  0x00000001
#define PLUG_VERSION_STR "0.0.1"

#define PLUG_COPYRIGHT  "Copyright 2013 Acme Inc"
#define PLUG_TRADEMARKS "VST is a trademark of Steinberg Media Technologies GmbH, Audio Unit is a trademark of Apple, Inc. AAX is a trademark of Avid, Inc."

#define BUNDLE_MFR "AcmeInc"
#define BUNDLE_NAME "IPlugEffect"

#define PLUG_NAME_STR "IPlugEffect"
#define PLUG_UID 'Ipef'
#define PLUG_MFR_NAME_STR "Acme Inc"
#define PLUG_MFR_UID 'Acme'

#define PLUG_CONTROLLER_NAME IPlugEffectController
#define PLUG_PROCESSOR_NAME IPlugEffectProcessor

#define PLUG_LATENCY 0

#define MFR_URL_STR "www.acmeinc.com"
#define MFR_EMAIL_STR "support@acmeinc.com"
#define PLUG_CAT_VST3_STR "Fx"
#define PLUG_CAT_PT "Effect"

#define PLUG_CHANNEL_IO "2-2"

#define PLUG_DOES_CARBON 1

// 0 = effect, 1 = midi-controlled effect, 2 = instrument
#define PLUG_TYPE 0

#define PLUG_DOES_MIDI_IN 0
#define PLUG_DOES_MIDI_OUT 0
#define PLUG_IS_INST 0

#define PROCESS_FUID 0x4917E3B5, 0x2F0969C0, 0x8217D3E6, 0xA8C12588
#define CONTROL_FUID 0x948AF437, 0xC1064910, 0x92B7367A, 0x1F0B8321

// GUI default dimensions
#define GUI_WIDTH   300
#define GUI_HEIGHT  300

#endif // __IPLUGEFFECTCONFIG__
IPlugEffect_ids.h
Code:
#ifndef __IPLUGEFFECTIDS__
#define __IPLUGEFFECTIDS__

// parameter tags
enum 
{
#pragma mark MASTER
  kParamGain = 0,
  kNumParams
};

#endif
IPlugEffect_paramdecl.h
Code:
GetParam(kParamGain)->InitDouble("Gain", 50., 0., 100.0, 0.01, "%");
GetParam(kParamGain)->SetShape(2.);
IPlugEffect_controller.h
Code:
#ifndef __IPLUGEFFECTCONTROLLER__
#define __IPLUGEFFECTCONTROLLER__

#include "IPlug_include_in_plug_hdr.h"
#include "IPlugEffect_ids.h"

class IPlugEffectController : public BaseController
{
public:
  IPlugEffectController();
  ~IPlugEffectController();

//from IPlugBase
    
//  void OnParamChange(int paramIdx, int offsetSamples = 0);
//  void OnHostIdentified();
//  bool SerializeState(ByteChunk* pChunk);
//  int UnserializeState(ByteChunk* pChunk, int startPos);
    
//from IPlugController
//  bool CompareState(const unsigned char* incomingState, int startPos);
//  bool SerializeGUIState(ByteChunk* pChunk);
//  int UnserializeGUIState(ByteChunk* pChunk, int startPos);
//  void ProcessMidiMsg(IMidiMsg* pMsg);
//  bool ReceivedIMessage(IMessage* message);
//  void OnGUIOpen();
};

#endif //__IPLUGEFFECTCONTROLLER__
IPlugEffect_controller.cpp
Code:
#include "IPlugEffect_controller.h"
#include "IPlug_include_in_plug_src.h"
#include "resource.h"

const int kNumPresets = 1;

enum ELayout
{
  kWidth = GUI_WIDTH,
  kHeight = GUI_HEIGHT,
  
  kGainX = 100,
  kGainY = 100,
  kKnobFrames = 60
};

IPlugEffectController::IPlugEffectController()
: IPLUG_CCTOR(kNumParams, kNumPresets)
{
  #include "IPlugEffect_paramdecl.h"
 
  IGraphics* pGraphics = MakeGraphics(this, kWidth, kHeight);
  pGraphics->AttachPanelBackground(&COLOR_RED);
  
  IBitmap knob = pGraphics->LoadIBitmap(knob_ID, knob_FN, kKnobFrames);
  
  pGraphics->AttachControl(new IKnobMultiControl(this, kGainX, kGainY, kParamGain, &knob));
  
  AttachGraphics(pGraphics);
  
  MakeDefaultPreset((char *) "Default", kNumPresets);
}

IPlugEffectController::~IPlugEffectController()
{
}
IPlugEffect_processor.h
Code:
#ifndef __IPLUGEFFECTPROCESSOR__
#define __IPLUGEFFECTPROCESSOR__

#include "IPlug_include_in_proc_hdr.h"
#include "IPlug_processor.h"

typedef double ifloat;

class IPlugEffectProcessor : public IPlugProcessor<ifloat>
{
public:
  IPlugEffectProcessor();
  ~IPlugEffectProcessor();

  void OnParamChange(int paramIdx, int offsetSamples);
  void ProcessReplacing(ifloat** inputs, ifloat** outputs, int nFrames);
  //void Reset();

//  void ProcessMidiMsg(IMidiMsg* pMsg);
//  void ProcessSysEx(ISysEx* pSysEx);
//  bool ReceivedMessageFromController(IMessage* message);
//  bool SerializeState(ByteChunk* pChunk);
//  int UnserializeState(ByteChunk* pChunk, int startPos);
//  void OnIdle();
  
private:
  double mGain;
};

#endif //__IPLUGEFFECTPROCESSOR__
IPlugEffect_processor.cpp
Code:
#include "IPlugEffect_processor.h"
#include "IPlugEffect_ids.h"

#include "IPlug_include_in_proc_src.h"

IPlugEffectProcessor::IPlugEffectProcessor ()
: IPLUG_PCTOR(ifloat, kNumParams)
, mGain(0.)
{
  #include "IPlugEffect_paramdecl.h"
}

IPlugEffectProcessor::~IPlugEffectProcessor ()
{
}

void IPlugEffectProcessor::OnParamChange(int paramIdx, int offsetSamples)
{
  switch (paramIdx)
  {
    case kParamGain:
      mGain = GetParam(kParamGain)->Value() / 100.;
      break;
      
    default:
      break;
  }
}

void IPlugEffectProcessor::ProcessReplacing(ifloat** inputs, ifloat** outputs, int nFrames)
{
  ifloat* in1 = inputs[0];
  ifloat* in2 = inputs[1];
  ifloat* out1 = outputs[0];
  ifloat* out2 = outputs[1];
  
  for (int s = 0; s < nFrames; ++s, ++in1, ++in2, ++out1, ++out2)
  {
    *out1 = *in1 * mGain;
    *out2 = *in2 * mGain;
  }
}
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook

Last edited by olilarkin; 12-20-2013 at 01:44 PM.
olilarkin is offline   Reply With Quote
Old 12-22-2013, 05:06 PM   #276
onqel
Human being with feelings
 
onqel's Avatar
 
Join Date: Jun 2007
Location: Tromsø, Norway
Posts: 223
Default

Thanks! Looks interesting, although I'm very curious how to solve the communication between the Controller and Processor not using locks when you require common access to objects created in the Processor object for catching data to the GUI controller, I haven't been doing very much multi-threading before tbh..

Anyway, I can't wait to give your new version a spin and see if I fail or not Any ETA on your next repository ?
onqel is offline   Reply With Quote
Old 12-26-2013, 03:26 PM   #277
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

Looks like great news Oli,
I'm looking forward to having a look to your new branch soon.
I am continuously easing the integration of WDL/iPlug, and also after having a stack overflow couple of times with current code, started to make it probably much more robust avoid loose constructions like strcpy, sprintf and replacing these by safer operations.
Also eased the linking process on windows, now all msvc deps are automatically linked from a pragma in the source ...
Also making good progress on cmake automatic makefiles generation that should help people to build on any popular ide's supported by cmake and compatible with the current iPlug implementation.
Just updated my wdl-fab fork with these changes today.

EDIT: Also finished the TODO implementation of MessageBox simulation on OS X, now fixes incorrect button values were returned ...

Last edited by fabulousfab; 12-26-2013 at 05:41 PM.
fabulousfab is offline   Reply With Quote
Old 12-28-2013, 12:37 AM   #278
onqel
Human being with feelings
 
onqel's Avatar
 
Join Date: Jun 2007
Location: Tromsø, Norway
Posts: 223
Default

I had some issues unserializing internal states that were also dependent on the actual parameter states and this is my workaround.. It could save others from hours of head scratching.. I don't know why this has been the standard, but to me it makes sense to load the visible parameters first and then internal states.

Code:
bool TSEX50::SerializeState(ByteChunk *pChunk)
{
  TRACE;
  IMutexLock lock(this);
  
  bool savedOK = IPlugBase::SerializeParams(pChunk);

  pChunk->Put(&panelSelected);
// etc...
  return savedOK;
}
Code:
int TSEX50::UnserializeState(ByteChunk *pChunk, int startPos)
{
  TRACE;
  IMutexLock lock(this);

  // Load the plugins parameters first
  startPos = IPlugBase::UnserializeParams(pChunk, startPos);

  // Load saved internal states
  startPos = pChunk->Get(&panelSelected, startPos);
// etc...
  return startPos;
}
onqel is offline   Reply With Quote
Old 12-29-2013, 10:02 AM   #279
fabulousfab
Human being with feelings
 
Join Date: Dec 2013
Posts: 29
Default

Thanks for sharing that ongel, TSE-808 is awesome !
fabulousfab is offline   Reply With Quote
Old 01-07-2014, 11:07 AM   #280
olilarkin
Human being with feelings
 
Join Date: Apr 2009
Location: Berlin, Germany
Posts: 1,248
Default Xcode5/clang compile

I've updated the next branch of WDL-OL with some fixes for compilation on Xcode5 with clang (the compiler that comes with Xcode5).

https://github.com/olilarkin/wdl-ol/compare/next

It's now possible to compile Carbon composited GUIs with SDKs > 10.6 but they won't be very efficient, since the whole gui is redrawn all the time. Carbon non composited guis don't work, which means you can forget about compiling RTAS.

AFAIK you can't get the 10.6sdk working with Xcode5

oli
__________________
VirtualCZ | Endless Series | iPlug2 | Linkedin | Facebook

Last edited by olilarkin; 01-08-2014 at 06:49 AM.
olilarkin 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 09:49 AM.


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