Introduction Screenshots Links
Full version CPS2Browser Update
Changes F.A.Q.'s Manual Mailinglist Announce User Patches Feedback
Developers F.A.Q.
Developers F.A.Q.

Here are some questions that are asked by working with one of the SDK's. You can also read paragraph 5.1 in the manual, which is about creating plugins for CPS.

Can I make full-fledged VST plugins/instruments with GUI and all using CPS?
No, CPS is not a graphic authoring tool, so you can not make VST plugins with an interface (perhaps in the future, who knows!). You can write plugins for CPS in C++, and use them as well in CPS as in an other VST host. You can also run CPS inside VST, which is more convenient of course. For each controlrate input of CPS, one fader appears inside the VST host. The mouseOver name of the controlrate inputs, are used as names for these faders inside VST.

Top

How do I read the value of a numberField or a fader inside Director/Java/C++?
Generate sourcecode, and look closely to it, especially look for a call which mentions 'conversate'. Now conversate the command 'get' to the Display object that you want to read out. The return value is it's current value (in a string).

Top

Do I need to install a Java VM when using CPS standAlone (C++ or in Director)?
No. The Java Virtual Machine is only used to run the CPS program, but not when CPS is used standAlone. Unless of course if you are using CPS standAlone in Java, but then you can use any Java Virtual Machine you want, not just the Microsoft VM.

Top

Which compiler must I use to build a plugin?
On the Macintosh, you can only use the g++ compiler. All examples use this compiler. If you type 'g++' inside a 'Terminal' and it gives some output, then it is already installed. If the command is not found, then you should download it together with ProjectBuilder or Xcode, which are nice graphical editors (IDE's). On Windows, the only supported compiler is Microsoft C++ (5 or higher), though a lot of people have worked with all kinds of other compilers succesfully as well. For the Java part (for the graphical interface of your plugin or to use CPS standAlone), you can use any Java compiler on all the platforms.

Top

I read about 'a dynamic number of in- and outputs'. How dynamic is this?
You can change the number of in- and outputs in your plugin the way you want, as long as each steps reverses in the same way (otherwise a saved patch doesn't look the same after reloading). An example of a complete change of in&outputs are all the 'Operators' and 'Math' objects in CPS. They change from control in&outputs only to audio in&outputs only. So, there are no constraints towards changing the number of in- and outputs. The maximum of inputs or outputs is nine.

Top

Do I have to leave CPS to reload plugins?
No. Because you do not have to leave CPS, no special option is created for when creating plugins. Plugin dynamic libraries are released when there is no instance of it in CPS. The easiest way of debugging your plugin, is to create a patch with your plugin, save it, and when you have compiled a new version, select File - New, re-drag the new dynamic library into the /plugins/ folder, and open the saved patch back again.

This does not hold true for the Java plugin part. You may have to leave CPS for that. This is true because most Java interpreters cache their classes. Fortunately you are able to create the Java part independently from CPS.

Note that CPS tries to load a plugin before it tries to load a Macro from file (which are in the macros/ folder) in the Macro's menu. This is done so you can still make a nice Macro's folder, even when these are plugins in reality.

Top

Can I use VST-plugins when CPS is running standAlone, and can I open their graphic interfaces?
Yes. When CPS is running standAlone, you can still use and load plugins. Because CPS-plugins and VST-plugins are handled in the same way, you can use them both.

You can open the graphical interface of a VST plugin, even when CPS is running standAlone. Look for the appropiate command in the standAlone SDK documentation.

Top

Can I make a modal interface for my plugin?
Yes. Standard, you get a Dialog which is not modal, but you can make it modal by calling Dialog.setModel(true); Modal means that you cannot go back to the CPS graphical interface before you have closed your interface.

Top

Can I use other objects and other self-made plugins in my plugin?
Yes, you can, as much as you want.

Top

Do I have to have a lot of experience in programming to make a CPS plugin?
No, not at all. You can already make a CPS plugin when you have only a few months C or C++ experience. Then you can directly start and make a plugin that does something with audio and control data. This is one of the reasons why CPS is suitable for educational purposes. You do not have to know anything about programming in a certain native language, multithreading & synchronizing, or any platform dependent issue at all!

Top

I want my plugin in a 'Frame' instead of a 'Dialog'. Is this possible?
Yes, that is possible. The 'cpsChat' network object is a Frame plugin.

Top

I do not have an English compiler. Now what?
If you do not have an English compiler, then it might happen that you can't open the projects which are included in one of the SDK's, but only on Windows, because on the Macintosh there are no projects included (but only one command line to compile the project). What you must do then is doubleclick on the .cpp file, and press 'compile'. At asks then to create a new project, answer 'yes'. Then you have a correct project. Since all examples projects only have one .cpp file, this works for all C++ projects. The only thing you also must do is, go to Project - Settings - the 'C/C++' tab - Category: 'Code Generation' - set 'Use run-time library:' to 'Multithreaded DLL'.

Top

How much memory does the CPS engine use in standAlone mode?
Without a patch loaded, it allocates about 2.3MB. Objects theirselves are not really big, so depending on the size of your patch, it will double during runtime.

Top

Can I run several compiled patches or Director-CPS-patches at the same time?
Yes, but you have to run them in the same executable file, or in the same Director (or Projector). If you start one engine several times, but not within one file (for example not inside one .exe file), then some engine calls can get mixed up and things can go seriously wrong. This problem may be solved in the future, however if you are aware of this, it should be no problem.

Top

Features FAQ Users FAQ Developers FAQ Director/Shockwave specific FAQ Macintosh specific FAQ Windows specific FAQ