Skip to main content
Topic: DSP plugin making with SDK 0.9 (Read 2900 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DSP plugin making with SDK 0.9

I need an example or manual about DSP plugin making with SDK 0.9
goo.gl/JNZR8

DSP plugin making with SDK 0.9

Reply #1
I've got VLevel working just a couple of hours ago, and it looks like it's almost exactly the same. I've never worked with a DSP plugin for 0.8, but the changes I had to make to VLevel to get it to work in 0.9 were not too difficult:
  • the get_guid method is now static, and renamed with a g_ prefix:
    Code: [Select]
    static GUID g_get_guid()
        {
     // {EC001F79-9D79-4dc8-B7CB-40818D7A1009}
     static const GUID guid =
     { 0xec001f79, 0x9d79, 0x4dc8, { 0xb7, 0xcb, 0x40, 0x81, 0x8d, 0x7a, 0x10, 0x9 } };
     return guid;
        }
  • the get_name method is also static and has changed slightly (doesn't return a string, but takes a string_base out parameter):
    Code: [Select]
    static void g_get_name(pfc::string_base & p_out)
        {
     p_out = "VLevel";
        }
  • A new method need_track_change_mark has been introduced, here's the prototype from dsp.h:
    Code: [Select]
    virtual bool need_track_change_mark() = 0;
    //return true if you need to know exact track change point (eg. for crossfading, removing silence), will force-flush any DSPs placed before you so when you get END_OF_TRACK, chunks you get contain last samples of the track; will often break regular gapless playback so don't use it unless you have reasons to
  • The service factory now looks like this:
    Code: [Select]
    static dsp_factory_nopreset_t<your_dsp_subclass> foo;
With these changes it seems to be working nicely for me. All other methods seem to work fine like 0.8.

I haven't figured out presets yet, looks like it'd require atleast a different factory name and a couple of extra static and non-static methods. But I'm still working on that.

I hope this was what you were looking for. You can find the VLevel stuff here if you need an example.

DSP plugin making with SDK 0.9

Reply #2
Big thanks, you are speed up of my efforts.
Can you explain me about what 'get_latency()' should return?
goo.gl/JNZR8

DSP plugin making with SDK 0.9

Reply #3
get_latency() should return the length in seconds of the data you have buffered and still need to write out.

DSP plugin making with SDK 0.9

Reply #4
Can you show example of dsp plugin with preset like PPHS config?
goo.gl/JNZR8

 

DSP plugin making with SDK 0.9

Reply #5
With ssamadhi97's consent, I'll prepare a DSP tutorial using code from foo_dsp_delta soon. I still need to get the general tutorial out before that.

 
SimplePortal 1.0.0 RC1 © 2008-2019