## SDK6

Scope and XITE Development

Original topic on PlanetZ: https://forums.scopeusers.com/viewtopic.php?t=32089

#### SDK6

Posted: Sat Jun 29, 2013 12:15 am
by Roland Kuit
When patching stuff I want to delete/change a module. By deleting not all, but some of them, SDK6 stops working.
How come?

#### Re: SDK6

Posted: Sat Jun 29, 2013 1:13 pm
by Shroomz~>
It's not a known issue in SDK 4 or 5 Roland, so not being an SDK 6 user, I can't help.

#### Re: SDK6

Posted: Sat Jun 29, 2013 1:27 pm
by garyb
you might want to let Julian know, although i haven't heard of such a bug.
do you have an irq shared with a USB controller and the XITE?

#### Re: SDK6

Posted: Sun Jun 30, 2013 12:59 am
by Roland Kuit
Thanks Gary,
I looked at the IRQ's, but no conflicts.
I have this problem on both my laptops.

#### Re: SDK6

Posted: Sun Jun 30, 2013 2:07 am
by garyb
it's when you select several modules and delete them together, right?
if you delete them all one at s time it's ok?

#### Re: SDK6

Posted: Sun Jun 30, 2013 2:42 am
by Roland Kuit
No, just by deleting one module. And it depends by which module I'm deleting.
F.i. I was creating a Glitch Delay. So I needed the Analogue In and the output to the headphones.
Deleting the Analogue In causes(every time) stopping the SDK6 software.
I get a windows failure: DEP problem, but I can't change that.
Sometimes I have to start up Windows again after this failure.

Attachments
    Roland Kuit Glitch Delay.jpg (133.56 KiB) Viewed 5917 times

#### Re: SDK6

Posted: Sun Jun 30, 2013 7:11 am
by petal
I didn't know that the SDK6 was available yet. I believe I paid for it when I bought my XITE a year back. How did you get your hands on it?

#### Re: SDK6

Posted: Sun Jun 30, 2013 8:37 am
by Roland Kuit
I got my Xite-1, Mod IV and SDK6 in February this year by mail.

#### Re: SDK6

Posted: Sun Jun 30, 2013 9:13 am
by petal
Hmm. Sounds like I need to write a mail.
Thanks for the insight

#### Re: SDK6

Posted: Sun Jun 30, 2013 9:22 am
by garyb
ok, i'll write a letter to Julian.

#### Re: SDK6

Posted: Sun Jun 30, 2013 3:15 pm
by garyb
if you're getting DEP errors, perhaps an elevated level of security is set in windows. DEP is windows security. i think there's settings in system properties\advanced\data execution protection. the first box should be checked, "turn on DEP for essential windows programs and serices only".
also, the SDK needs to run "as administrator" too...

#### Re: SDK6

Posted: Thu Jul 11, 2013 5:52 am
by Roland Kuit
The last trick did the job. Run as Admin.
Thanks Gary!

#### Re: SDK6

Posted: Fri Nov 01, 2013 3:29 am
by wouterz
I have a similar problem (on windows XP) when I delete a module sometimes the SDK application crashes (Error message: "Pure function call"). Run as admin does not help.

#### Re: SDK6

Posted: Fri Nov 01, 2013 6:36 am
by djmicron
i use the sdk 6 for exporting dsp modules only.
I too can't delete modules and can't develop GUI, it is still in beta and we need to wait for updates.

#### Re: SDK6

Posted: Fri Nov 01, 2013 8:59 am
by jhulk
you need to ask for the gui tools
as it was missing from the sdk6
for the guitools you need the juce and on pc the visualstudio2010c++ ide and then make a introjucer so that juce can
be used to create gui and the scopedll.lib which you can then create a dll file to put in the scope sdk6 or 5
this way you can create native fx models that interfaces with the sdk6 via the dll which has async i/o control and sync i/o audio
which the sampler modules use
you need to ask garyb for the guitools because with out it you cant make gui
another program to get is knobman for png nobs and switches so you can create your own
there are other vsti gui tools also but the juce is a good set the wusicstation and there new modular plug uses juce

#### Re: SDK6

Posted: Fri Nov 01, 2013 9:09 am
by jksuperstar
Make sure you build your Juice GUI with multi-touch enabled. Might not be a big deal right now, but it will be someday . futureproof!

#### Re: SDK6

Posted: Fri Nov 01, 2013 9:15 am
by Eanna

> wouterz wrote:(Error message: "Pure function call")

Pure Virtual Function Call...? Don't remind me

#### Re: SDK6

Posted: Fri Nov 01, 2013 10:47 am
by jhulk
thats just a matter of adding osc control

#### Re: SDK6

Posted: Fri Nov 01, 2013 10:50 am
by jhulk
http://code.google.com/p/osccalibrator/ ... 21cfc9dd82

#### Re: SDK6

Posted: Fri Nov 01, 2013 11:13 am
by djmicron

> jhulk wrote:you need to ask for the gui tools
> as it was missing from the sdk6
> for the guitools you need the juce and on pc the visualstudio2010c++ ide and then make a introjucer so that juce can
> be used to create gui and the scopedll.lib which you can then create a dll file to put in the scope sdk6 or 5
> this way you can create native fx models that interfaces with the sdk6 via the dll which has async i/o control and sync i/o audio
> which the sampler modules use
> you need to ask garyb for the guitools because with out it you cant make gui
> another program to get is knobman for png nobs and switches so you can create your own
> there are other vsti gui tools also but the juce is a good set the wusicstation and there new modular plug uses juce

i did ask for the gui tools, not possible at the moment.
You don't need juce or vstgui, you can develop your code how you prefer, juce is just a way to do it, but i'm talking about something written in the sdk6 manual that i can't test at the moment.

#### Re: SDK6

Posted: Fri Nov 01, 2013 12:27 pm
by wouterz

> Eanna wrote:

> > wouterz wrote:(Error message: "Pure function call")

> Pure Virtual Function Call...? Don't remind me

This one:
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!
Program: D:\Program Files\SCOPE6 SDK PCI\App\Bin\ScopeSdk6.exe
R6025
- pure virtual function call
---------------------------
OK
---------------------------

#### Re: SDK6

Posted: Fri Nov 01, 2013 1:09 pm
by djmicron
Gary sent me the sdk gui tools.
Learning time now....

#### Re: SDK6

Posted: Fri Nov 01, 2013 2:04 pm
by Eanna
Fyi, I said 'don't remind me' cause its sbout 15 years since I was programming c++ and used to see that message too often.. Its a coding error..
Best of luck djmicron with the Gui tools!

#### Re: SDK6

Posted: Sat Mar 22, 2014 4:23 pm
by happycritter
I am totally unfamiliar with the SDK development environment, but I getting ready to jump into it with both feet. Is the following an image of a conglomeration of atoms, and is this what happens beneath the GUI? Thanks in advance!

  Roland Kuit Glitch Delay.jpg (133.56 KiB) Viewed 4498 times

#### Re: SDK6

Posted: Wed Mar 26, 2014 11:26 am
by soren_jepsen
In short: yes
The SDK6 is however, to my knowledge, still in an early alpha stage. You can get a lot more done in an earlier SDK. The GUI SDK is then for making a surface, and connect the controls to the pads of the atoms or modules. The GUI SDK however, to my knowledge, is still in an early alpha stage. I can make a gui-module with it, but it crashes the main SDK.
Cheers
Søren

#### Re: SDK6

Posted: Thu Mar 27, 2014 1:27 pm
by happycritter
Thanks soren!
How does one implement a FIR/IIR to modify the data stream?
Do FIR/IIR codes claim or attach to a(n) atom(s) and then become available for use?
I plan to code in MATLAB for some filters and then implement them. Is there any documentation concerning this process with SDK?
Thanks in advance!

#### Re: SDK6

Posted: Thu Mar 27, 2014 8:19 pm
by jksuperstar
you'll need to look at the Circuit Design part of the SDK manual. That tells you how to connect things. But for design, you'll need to go through the list of *.dsp (atoms) files, and you can general tell what they do by the name, and once you've figured out the "language" you can translate your matlab designs into the atoms available.
Then you start thinking about a GUI...and Graphic Objects (GOs)

#### Re: SDK6

Posted: Thu Mar 27, 2014 10:30 pm
by happycritter

> jksuperstar wrote:you'll need to look at the Circuit Design part of the SDK manual. That tells you how to connect things. But for design, you'll need to go through the list of *.dsp (atoms) files, and you can general tell what they do by the name, and once you've figured out the "language" you can translate your matlab designs into the atoms available.
> Then you start thinking about a GUI...and Graphic Objects (GOs)

Thank you for your rapid reply.
From my understanding and intuition, the SCOPE SDK atoms are tools/modules coded & vetted by ADI (compiled to SHARC machine code) then integrated into the SDK 'wrapper'. Knowing a little bit about how all these items work (together), it must be possible to create another atom (compiled through ADI supplied tools) and add it to the library. However, I'm sure if I am clever enough I can work around with what is already available.
Do you folks know of anyone who has bothered to tear into the SDK to such an extent?
It is not my intention to bump-up against or expose proprietary features, it's just that as a budding engineer who has coded microcontrollers and explored SHARC development as a possible avenue that I arrived at this point. For me, development through the Xite-1 and SDK is much easier to achieve my ends than designing both hardware and software/firmware. So, I understand if a moderator edits my post.

#### Re: SDK6

Posted: Fri Mar 28, 2014 12:02 am
by w_ellis
Worth getting in touch with S|C to discuss licencing for the SDK versions. Unless something's changed in the meantime, they are only licenced to owners of Xite hardware or 14/15dsp Scope boards.
I think certain developers have coded custom DSP (atom) files in the past, presumably using lower-level development kits and licencing tools provided by Creamware (as they were back then), but as far as I'm aware, all current development is making use of the various versions of the SDK with pre-built atoms. With the latest GUI SDK (and its predecessor ScopeFX), you are able to take advantage of host (CPU) processing alongside the on-chip (DSP) processing, although there are obviously considerations like latency and bandwidth when doing that.

#### Re: SDK6

Posted: Fri Mar 28, 2014 12:07 am
by w_ellis
P.S. There are some very old posts on this forum discussing creation of custom atoms. IIRC, you'll need a fairly expensive AD dev kit (including hardware), plus agreement from S|C to get the dsp files to run on their hardware.
e.g.
../development/14932.html?
https://forums.scopeusers.com/viewtopic.php?f=5&t=8108

#### Re: SDK6

Posted: Fri Mar 28, 2014 12:17 am
by garyb
all possible...

#### Re: SDK6

Posted: Fri Mar 28, 2014 1:59 am
by jhulk
for that to work you need a dongle that converts the dsp code to compatible atoms for scope to use
s/c has the dongle for it
but the whole point of the gui dsp is to do the dsp in c++ in the dll file so not needing the dongle
and you have the best of both host and dsp as

#### Re: SDK6

Posted: Fri Mar 28, 2014 4:16 pm
by happycritter

> jhulk wrote:for that to work you need a dongle that converts the dsp code to compatible atoms for scope to use
> s/c has the dongle for it
> but the whole point of the gui dsp is to do the dsp in c++ in the dll file so not needing the dongle
> and you have the best of both host and dsp as

I'll be heading in that direction when it's time. My largest concern, as a noob, is that my new code/atom compromises others - the well-vetted and stable codes/atoms the end-user relies upon.
Thanks for all of your replies.
Anyone mess with custom IIR/FIRs and implement them in their SDK projects?
Can one segregate a single SHARC (or even a pair) to dedicate solely to the tasks of a specified algorithm (i.e. can we manually create a 'resource hog' so that it can do its thing without interrupts or sharing)?

#### Re: SDK6

Posted: Fri Mar 28, 2014 4:17 pm
by happycritter

> w_ellis wrote:P.S. There are some very old posts on this forum discussing creation of custom atoms. IIRC, you'll need a fairly expensive AD dev kit (including hardware), plus agreement from S|C to get the dsp files to run on their hardware.
> e.g.
> ../development/14932.html?
> https://forums.scopeusers.com/viewtopic.php?f=5&t=8108

Thanks! I'll be digging in.

#### Re: SDK6

Posted: Sat Mar 29, 2014 1:02 am
by jhulk
yes you can put it on 1 dsp
tgstgs analyzer is a guisdk plug that uses fir in real time
so yes it is possible
convolveeq is another plug that tgstgs and das created
but they use .dll
and not dsp atoms
dsp atoms can be wrote in note pad then into asm sharc dsp code then s/c can convert them to compatible scope versions
i brought the sharc dsp evaluation board and have matlab for creating modules from matlab algo
i have been through the same questions your asking now
and why i know about the dongle for making them compatible with scope

#### Re: SDK6

Posted: Sat Mar 29, 2014 3:03 am
by Bud Weiser

> soren_jepsen wrote: The SDK6 is however, to my knowledge, still in an early alpha stage.

Sorry for asking, but I´m a bit irritated now ...
Does that mean, we´ll see SCOPE 6 (not SDK) in some years earliest ?
Bud

#### Re: SDK6

Posted: Sat Mar 29, 2014 4:18 am
by tgstgs
convoleq is using sys files_
for low latency
convolveq as well as analyzer are doing ffts btw;
eric made a sys file host based fir filter that is included free for customers in the convolveq.zip
// ---
dsps are made for fir_
you can do the readout multiply add in 1 circle;
1024 taps could be realized on 1 old dsp at 44k1
good vibes

#### Re: SDK6

Posted: Sat Mar 29, 2014 6:04 am
by happycritter
Thanks for the great infos JHulk and Tgstgs!
Coding in C++ seems the easiest (and least expensive) at the moment, although, I don't believe I have ever converted a prog into .dll so that will be fun. If I needed greater efficiency and possible robustness then atoms become more useful (theirs or mine: if they work hahaha)...
How much memory do we have at our disposal onboard the Xite-1?
Are there atoms available where I can enter mathematical equations?
Are there atoms available that can perform Newton's Method of Approximation or other such methods?
1024 taps, I should be able to do something sophisticated with that, eh?
Thanks again gang!

#### Re: SDK6

Posted: Sat Mar 29, 2014 6:56 am
by jhulk
if your going to compile into a .dll you will need the guisdk and compiler of your choice vstudio is recommended for pc then you can use your own class library or one of the others juce vstgui
you can create your c++ algos and then interface them to use sync and async pads for the scope dsp,s and a gui interface for the controls
once you have compiled your .dll file it then can be added to the module list and you can then wire it up using the sdk
you will need the sdk 5.1 is very stable and would recommend asking for that version as sdk6 crashes
ask gary b about the sdk for the xite and the guisdk beta
then go to bcmodular and ask sharc to join the sdk developers forum
there are several developers working on the guisdk as its a new avenue to lots of them and theirs a wiki being created about it only for developers
explaining the atoms list and various how to,s
and the master that is tgstgs also frequents with his vast knowledge

#### Re: SDK6

Posted: Sat Mar 29, 2014 1:43 pm
by jksuperstar
Happycritter, atoms are already compiled code, they don't have interpreters or compilers in themselves, so no, there isn't anything to just type in a math equation. I think matlab can export C code, but you'd probably need a special license for that. But I wouldn't worry about that yet...the atoms do have a lot to offer, and you can get most things done there.
What SCOPE SDK does is take your circuit design, of graphically connected atoms, and links those into a device or module. Think of the SDK as a graphic programming language. That's for the DSP end of things. For SDK 5.1, there are also scripts and other ways to run on the host/PC aside from atoms. But they are more or less completely contained within the parent process of SCOPE.
What the new SDK6 and GUI SDK offer is APIs to run your native code in any way you like. They suggest JUCE, but that's not the limit. Graphical programming of DSPs using atoms is still mostly the same.
Really, you can get most objectives accomplished in Modular. The SDK takes it to a lower level, and let's you use all the atoms available to make an optimized device for scope fusion, or a new module for use in modular. Many atoms exist as a modular in Modular. Then there's the dongle/gui sdk approach that allows you to write your own DSP code. It is very much worth while spending time in Modular first, since you will get to understand the system rules, such as how polyphony works, how to deal with feedback paths, and even various data type connections available. These rules more or less apply to the SDK graphical language as well. By the time you get to writing assembler code, you will understand what you can and cannot do.

#### Re: SDK6

Posted: Sat Mar 29, 2014 5:49 pm
by happycritter

> jksuperstar wrote:Happycritter, atoms are already compiled code, they don't have interpreters or compilers in themselves, so no, there isn't anything to just type in a math equation. I think matlab can export C code, but you'd probably need a special license for that. But I wouldn't worry about that yet...the atoms do have a lot to offer, and you can get most things done there.
> What SCOPE SDK does is take your circuit design, of graphically connected atoms, and links those into a device or module. Think of the SDK as a graphic programming language. That's for the DSP end of things. For SDK 5.1, there are also scripts and other ways to run on the host/PC aside from atoms. But they are more or less completely contained within the parent process of SCOPE.
> What the new SDK6 and GUI SDK offer is APIs to run your native code in any way you like. They suggest JUCE, but that's not the limit. Graphical programming of DSPs using atoms is still mostly the same.
> Really, you can get most objectives accomplished in Modular. The SDK takes it to a lower level, and let's you use all the atoms available to make an optimized device for scope fusion, or a new module for use in modular. Many atoms exist as a modular in Modular. Then there's the dongle/gui sdk approach that allows you to write your own DSP code. It is very much worth while spending time in Modular first, since you will get to understand the system rules, such as how polyphony works, how to deal with feedback paths, and even various data type connections available. These rules more or less apply to the SDK graphical language as well. By the time you get to writing assembler code, you will understand what you can and cannot do.

Thank you for the clarification. I realized that atoms were compiled, but could possibly leave a string for certain custom function calls such as coefficients or even logic arguments. So, now I know they are quite 'tight'. And I thank you for this info.
For some things I have in mind, the circuit approach may prove to be very useful...

> jhulk wrote:if your going to compile into a .dll you will need the guisdk and compiler of your choice vstudio is recommended for pc then you can use your own class library or one of the others juce vstgui
> you can create your c++ algos and then interface them to use sync and async pads for the scope dsp,s and a gui interface for the controls
> once you have compiled your .dll file it then can be added to the module list and you can then wire it up using the sdk
> you will need the sdk 5.1 is very stable and would recommend asking for that version as sdk6 crashes
> ask gary b about the sdk for the xite and the guisdk beta
> then go to bcmodular and ask sharc to join the sdk developers forum
> there are several developers working on the guisdk as its a new avenue to lots of them and theirs a wiki being created about it only for developers
> explaining the atoms list and various how to,s
> and the master that is tgstgs also frequents with his vast knowledge

Thanks for this very useful information! I look at MATLAB as a wrapper for a C++ engine since the commands are more than 90% the same, only one doesn't have write/bookkeep code for common functions. I will develop in MATLAB for numerous reasons, and then when code is ready, make the necessary adjustments.
I now have a clearer understanding of what approaches are available for what tasks, and for this I am very grateful.
Thanks all!

#### Re: SDK6

Posted: Fri Aug 01, 2014 1:17 am
by tgstgs
sdk6 is out now for some time;
where are the devices made?

#### Re: SDK6

Posted: Sat Aug 02, 2014 11:05 pm
by happycritter
SDK6 requires an XITE or ScopePro (15DSP min.) and I have none of these...Neither the SDK6, the XITE, nor a ScopePro...So, as I learn DSP and code in MATLAB I'll be saving towards that environment. Proabably end of next year at the earliest - no worries: you're outstanding plugs/devices are quite safe for a long while