electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
 Forum index » Clavia Nord Modular » Nord Modular G2 Discussion
NMG2 Open Source Editor
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 4 of 21 [513 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: Previous 1, 2, 3, 4, 5, 6, ..., 19, 20, 21 Next
Author Message
ZeeByeZon



Joined: Mar 16, 2009
Posts: 32
Location: France
G2 patch files: 1

PostPosted: Fri Sep 16, 2011 7:22 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
wouter



Joined: Mar 07, 2009
Posts: 31
Location: Netherlands
G2 patch files: 1

PostPosted: Fri Sep 16, 2011 11:39 am    Post subject: Reply with quote  Mark this post and the followings unread

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 Smile

_________________
www.granucon.com
Back to top
View user's profile Send private message
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Mon Sep 19, 2011 12:41 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
dorremifasol



Joined: Sep 28, 2006
Posts: 814
Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49

PostPosted: Mon Sep 19, 2011 1:00 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
ZeeByeZon



Joined: Mar 16, 2009
Posts: 32
Location: France
G2 patch files: 1

PostPosted: Mon Sep 19, 2011 1:04 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
dorremifasol



Joined: Sep 28, 2006
Posts: 814
Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49

PostPosted: Mon Sep 19, 2011 1:16 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Fri Sep 23, 2011 3:01 pm    Post subject: Reply with quote  Mark this post and the followings unread

Ok, finally I think I'm getting somewhere... I've made a kind of client-server setup. A server that keeps the USB communication with the G2 and a bunch of clients, can be an editor or a vst, that connect wiith the server.

I use the WM_COPYDATA message to exchange data between the server and the clients. That's a window message, so for the vst I create a hidden window to receive the messages.

So, with this setup you can have multiple vst's running, in for example ableton, from wich to load an save patches and automate parameters. The patches are automatically loaded with the project.

And at the same time you can alter the patches with the editor. I think that is a very flexible setup that may open up a lot of possibilties. I'll have to get rit of all the bugs off course...

Here's a screenshot with one very red vst. Maybe I'll integrate the server in the editor later on.


Result_10.jpg
 Description:
 Filesize:  483.08 KB
 Viewed:  635 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

Result_10.jpg


Back to top
View user's profile Send private message Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Fri Sep 23, 2011 3:07 pm    Post subject: Reply with quote  Mark this post and the followings unread

brunov wrote:
I've made a kind of client-server setup.


Sounds just about right Exclamation

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.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Fri Sep 23, 2011 3:22 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Fri Sep 23, 2011 3:32 pm    Post subject: Reply with quote  Mark this post and the followings unread

Not wanting to push you, just curious Wink

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.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
BobTheDog



Joined: Feb 28, 2005
Posts: 4044
Location: England
Audio files: 32
G2 patch files: 15

PostPosted: Fri Sep 23, 2011 11:25 pm    Post subject: Reply with quote  Mark this post and the followings unread

Or Named Pipes may be a simple solution, keeps you away from the windows message queue as well.
Back to top
View user's profile Send private message
ZeeByeZon



Joined: Mar 16, 2009
Posts: 32
Location: France
G2 patch files: 1

PostPosted: Sun Sep 25, 2011 12:34 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Tue Sep 27, 2011 2:48 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
speak_onion



Joined: Oct 19, 2009
Posts: 57
Location: Queens, NY
G2 patch files: 3

PostPosted: Wed Sep 28, 2011 9:22 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Wed Sep 28, 2011 10:20 am    Post subject: Reply with quote  Mark this post and the followings unread

brunov wrote:
I have a question for Jan


Missed this one yesterday Shocked

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.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Wed Sep 28, 2011 10:53 am    Post subject: Reply with quote  Mark this post and the followings unread

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.. Very Happy



On to the next task then...
Back to top
View user's profile Send private message Visit poster's website
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Wed Sep 28, 2011 12:01 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Wed Sep 28, 2011 12:42 pm    Post subject: Reply with quote  Mark this post and the followings unread

I found some work I did on XML, this was based on work done by Christian Schneider, and the idea was to get a uniform XML description for G2 and Classic NMs.

The XML was generated by the g2_patch_info.exe (that is on my website) - using a set of template files and the textual description files. When thats not all in the zip on my site please let me know, can post that as well.

Anyway, just a bag of ideas really there Wink

And what I did to get the info was to make a patch, save that from the G2 get it into my dump tool and see what changes do that way.


g2_defs.zip
 Description:
G2 module and parameter info in XML format

Download
 Filename:  g2_defs.zip
 Filesize:  42.32 KB
 Downloaded:  295 Time(s)


_________________
Jan
also .. could someone please turn down the thermostat a bit.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Wed Sep 28, 2011 1:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24079
Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320

PostPosted: Wed Sep 28, 2011 2:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

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.


Knobtest.zip
 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.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
drapdap



Joined: Oct 11, 2004
Posts: 204
Location: London
Audio files: 1
G2 patch files: 1

PostPosted: Sun Oct 09, 2011 7:49 am    Post subject: Reply with quote  Mark this post and the followings unread

hey Brunov!

any update on this?
Very Happy
i can't wait...
Back to top
View user's profile Send private message
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Sun Oct 09, 2011 1:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

There's not much changed on the outside because I spend a lot of time restructuring, it was all getting too big and too complex.

These three things I mentioned earlyer are now more or less finished. I've got the xml database thanks to Jan.

When I change a parameter or a knob, all the corresponding knobs in all the clients change also. And I've added assigning & deassiging knobs in the parameter pages and these changes are also communicated to the clients.

And the clients get there initialization data from the server in stead of directly from the G2.

So, now I'm working again on the VST. I tried some automation in Ableton, you can see in the screenshot. It works, but it's too slow, it's also using too much CPU.

I'm not at all experienced with VST developement, it's all trial and eror. This VST I have now is just thrown together so I probably made some fundamental errors there. I've to study a bit more and that will take some time.

Don't know if there's someone on the forum that has some more experience with vST's?


Result_11.jpg
 Description:
 Filesize:  394.21 KB
 Viewed:  283 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

Result_11.jpg


Back to top
View user's profile Send private message Visit poster's website
ZeeByeZon



Joined: Mar 16, 2009
Posts: 32
Location: France
G2 patch files: 1

PostPosted: Mon Oct 10, 2011 12:58 am    Post subject: Reply with quote  Mark this post and the followings unread

You will find many experimented guys on the KVR forum.
Back to top
View user's profile Send private message
brunov



Joined: Aug 03, 2011
Posts: 227
Location: delft
Audio files: 1
G2 patch files: 2

PostPosted: Tue Oct 11, 2011 2:12 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
ZeeByeZon



Joined: Mar 16, 2009
Posts: 32
Location: France
G2 patch files: 1

PostPosted: Wed Oct 12, 2011 1:13 am    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 4 of 21 [513 Posts]
View unread posts
View new posts in the last week
Goto page: Previous 1, 2, 3, 4, 5, 6, ..., 19, 20, 21 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Clavia Nord Modular » Nord Modular G2 Discussion
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use