Author |
Message |
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Fri Sep 16, 2011 7:22 am Post subject:
|
|
|
I think the chunk is loaded with the project, just like parameters.
Your idea to map the parameter from the G2 parameter pages is excellent ! But the name of the parameters will be something like A1, A2... |
|
Back to top
|
|
|
wouter
Joined: Mar 07, 2009 Posts: 31 Location: Netherlands
G2 patch files: 1
|
Posted: Fri Sep 16, 2011 11:39 am Post subject:
|
|
|
brunov wrote: | That looks promissing, if I undestand it correctly the chunks are used to load/save presets and banks of a vst via the host from and to file as fxp/fxb files.
Do you know if they are automatically loaded into the vst if you load a project?
I've been thinking about the parameters also. Maybe the most logical thing to do is to expose the parameters to the host that are mapped in de parameter pages of the clavia software. Then you always have a fixed number of parameters. |
I assume it will but haven't tried it myself so I could be wrong.
I think it's a good idea to expose the parameter pages as vst parameters, every G2 user is familiar with this system.
Awesome project _________________ www.granucon.com |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Mon Sep 19, 2011 12:41 am Post subject:
|
|
|
About the editor, I put the messaging loop in a seperate thread, that made the usb connection much more stable. Also solved a few bugs, so I'm happy where that's going.
About the Vst, there's good and bad news. The good news is that I've been able to load patches from fxb files and send the over to the G2 from within the VST.
The bad news is that I can't get the messaging thread to start in the VST. So I'm only able to send messages to the G2 and not able to receive any.
Now I've some doubts if it's a good idea to have the VST make a USB connection with the G2. The problem is that you can have only one USB connection with the G2, and I think you want to have maybe four instances of the VST active, because you want a VST for each G2 slot in a seperate track.
And if you want to make a change to a patch, you would have to kill the VST and then start the editor.
So I've been thinking, maybe it's possible to make a kind of G2 server program that lives in the icon tray and that has the USB connection with the G2. And the VST's and the editor connect to the this server.
Then when you make a change somewhere this is communicated through the server to the G2 and the answer is broadcasted to all the clients.
That's only an idea now, but maybe It's better that I invest my time in this setup that trying to get the USB messaging to work in the VST. |
|
Back to top
|
|
|
dorremifasol
Joined: Sep 28, 2006 Posts: 814 Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49
|
Posted: Mon Sep 19, 2011 1:00 am Post subject:
|
|
|
You can make a multitimbral VST, and put it in the VST rack. For example the Motif XS VST plugin works that way, since there is only one machine but has 16 different channels. Well, there are lots of plugins that work this way. _________________ Cheers,
Albert |
|
Back to top
|
|
|
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Mon Sep 19, 2011 1:04 am Post subject:
|
|
|
Your idea of a service running in background to handle the USB connection is good. But this has to be transparent to the user: the service should be started by the first launched software instance and stopped by the last closed one.
Another solution is to merge the service and the editor application: the editor would be automatically launched when a VST instance is run. Closing the editor would be locked while VST instances are running.
@dorremifasol:
What is a "VST rack"? Is it something you find in Cubase?
What you suggest is a multi output VST, with only one instance allowed at a time, isn't it? |
|
Back to top
|
|
|
dorremifasol
Joined: Sep 28, 2006 Posts: 814 Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49
|
Posted: Mon Sep 19, 2011 1:16 am Post subject:
|
|
|
Cubase has a VST rack window, where you can put VST instruments. Then you can create a MIDI track and send the MIDI output to any VST in the rack, like it was an external MIDI module (ie. G2). This way a VST can have multiple MIDI inputs / audio outputs, and have only one instance in memory.
Until Cubase 4 I think, that was the only way of working with VST in Cubase. Now there are also Instrument Tracks, like in Logic, which puts the midi track and the VST in the same track, but this of course don't support "multi-timbrality". _________________ Cheers,
Albert |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Fri Sep 23, 2011 3:07 pm Post subject:
|
|
|
brunov wrote: | I've made a kind of client-server setup. |
Sounds just about right
Wondering why you didn't use TCP for communications though ... I think that would make portability easier. _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Fri Sep 23, 2011 3:22 pm Post subject:
|
|
|
Yes, that is more portable. For now I just wanted to use the most simple method because there already so much complexities, with the different threads that are running and so on. I had a very hard time with the threads...
And there's also a very high rate of led data and VU meter data exchange. I don't know if tcp can keep up. Depends on the connection of course. Maybe later on we can try tcp-ip |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Fri Sep 23, 2011 3:32 pm Post subject:
|
|
|
Not wanting to push you, just curious
brunov wrote: | Depends on the connection of course. |
It would be on the same computer ... not expecting bandwidth issues there. _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
BobTheDog
Joined: Feb 28, 2005 Posts: 4044 Location: England
Audio files: 32
G2 patch files: 15
|
Posted: Fri Sep 23, 2011 11:25 pm Post subject:
|
|
|
Or Named Pipes may be a simple solution, keeps you away from the windows message queue as well. |
|
Back to top
|
|
|
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Sun Sep 25, 2011 12:34 pm Post subject:
|
|
|
If one if the basic ideas of your project is the portability, then using messages like WM_COPYDATA is not a good idea.
I don't know much about Delphi, can you use some multi platform framework for such purpose ?
I think there is no issue with the data rate using TCP, whitchever the protocol chosen, the data amount is about the same... |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Tue Sep 27, 2011 2:48 am Post subject:
|
|
|
Yes, al change the communication protocol later on. I have some other things to do first:
- I have to build a database with al the moduletypes en parametertypes, I now use the extracted panel definitions from the resource file, but that doesn't contain alle the info I need.
- Then I have to look at the knobs and paramatere objects. When you change a parameter in a client, all the knobs assocated to the parameter have to move in all the clients and I have to look out for recursive loops there.
- Then i have define some messages between the server and the clients so when a new client connects to the server, it gets all the initialisation data from the server, like the loaded patches and the performance settings and so on.
But to start with the first problem, I have a question for Jan: I downloaded the project you started some years ago and there you made a module knowledge file and a parameter knowledge file. Do you mind if I use these? I would like to make a xml file out of them.
I also noticed there are some modules missing, from moduletype 167 and above. So these have to be added. How did you extract the info from the modules? |
|
Back to top
|
|
|
speak_onion
Joined: Oct 19, 2009 Posts: 57 Location: Queens, NY
G2 patch files: 3
|
Posted: Wed Sep 28, 2011 9:22 am Post subject:
|
|
|
This is AMAZING. Thank you a zillion burnov for blasting through this. I know there's a long way to go, but I'm already much less fearful that my G2 will one day become obsolete for lack of a computer that can run the editor software. Cheers! |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Wed Sep 28, 2011 10:20 am Post subject:
|
|
|
brunov wrote: | I have a question for Jan |
Missed this one yesterday
Will have a look at details later today, but you can use what there is of course. _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Wed Sep 28, 2011 10:53 am Post subject:
|
|
|
Thanks Jan, but it seems that I wasn't looking in the right place. All the module definitions are there, up to #208 RndPattern! That will save a lot of time..
On to the next task then... |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Wed Sep 28, 2011 12:01 pm Post subject:
|
|
|
Thank you speak onion, I just noticed on another thread there's someone else working on a G2 application also, so it seems the G2 development far from dead! |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Wed Sep 28, 2011 1:06 pm Post subject:
|
|
|
Wow! Yes, your work helped me a lot already Jan. Without it I wouldn't have bothered to start this project in the first place! |
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Wed Sep 28, 2011 2:02 pm Post subject:
|
|
|
Just happy to see you pick it up where it had fallen, and of course its not just me, several people did stuff on it.
And ... dunno .. if this is any good ... but it is some Delphi stuff I did on components for a Clavia like editor, using some of it still in Delphi 2009 currently, but most is dusty old stuff. Its a bit messy too, there are a couple of bugs, and it may not be super handy all, but maybe some of the utils stuff is useful to you.
There is a custif package with components, and a knobtest project (and exe) that demos a bit of it.
Description: |
Some delphi componenents and stuff for a clavia like user interface, not really finished, but maybe good for an idea or two. |
|
Download |
Filename: |
Knobtest.zip |
Filesize: |
1.27 MB |
Downloaded: |
282 Time(s) |
_________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
drapdap
Joined: Oct 11, 2004 Posts: 204 Location: London
Audio files: 1
G2 patch files: 1
|
Posted: Sun Oct 09, 2011 7:49 am Post subject:
|
|
|
hey Brunov!
any update on this?
i can't wait... |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
|
Back to top
|
|
|
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Mon Oct 10, 2011 12:58 am Post subject:
|
|
|
You will find many experimented guys on the KVR forum. |
|
Back to top
|
|
|
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Tue Oct 11, 2011 2:12 pm Post subject:
|
|
|
yes, thanks. I've got a lot of info from there. I think I know some of the reasons of the bad performance of the vst:
- The messaging with WM_COPYDATA was a bottleneck, so I changed the messaging to tcp-ip. Now it's behaving much better, but still too slow
- I've a couple of graphical control updates connected to a parameter change event, for example the knob in the editor moves. But Ableton is sending a lot of parameter data with automation. So the graphical updates are eating a lot of cpu. I have to make that more efficient, or don't do any updates of controls at all or maybe sample it with a timer.
- Maybe ableton sends even more parameter data than the usb interface can handle, don't know yet...
But for the rest it's looking good, the vst automatically loads a patch if you load a project and then you can edit it further with the editor and assign knobs for automation and so on while ableton is running.
I hope I'll get the performance problem under control. |
|
Back to top
|
|
|
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Wed Oct 12, 2011 1:13 am Post subject:
|
|
|
Good job, it sounds nice.
I think the timer is a good solution for graphics update.
You can check if an update is needed about 10 to 20 times per second.
Ableton sending more data than USB can handle sounds strange, but you counld check this by temporary implemening a counter... |
|
Back to top
|
|
|
|