| Author |
Message |
aasmodular
Joined: Apr 16, 2016 Posts: 15 Location: aasmodular
|
Posted: Wed Apr 20, 2016 2:54 pm Post subject:
(out of curiosity) what I'd need to write my own editor? |
 |
|
Hello,
-------
DISCLAIMER: this is not a promise or will to write one. Just a request for info. An possibly one day, may be, perhaps in my very rare spare time.
-------
I bought a G2 on eBay and it's on its way to me!! Any day now!! I can't wait. The official Nord NM G2 Editor v 1.62 runs fine on OS X El Capitan (at least for what I can test so far: it installs, it launches and opens/edits patches just fine) but I don't have the chance to test it fully until the G2 will be here with me.
Now,
I've seen other editors like nomad and nmg2 but I was wondering what it would take to write my own multi-platform editor. Leaving the language aside for a moment, what kind of libraries would I need? How do I find out about the modules? Did the above mentioned projects reverse engineer it? Or did they get some specs/help/files from Clavia/Nord?
As you probably have deduce by now, I'm very far from it and don't have all the questions but it would be awesome if you'd reply with useful info beyod my poor understanding of this.
Thank you  _________________ follow my site if you'd like to check my music and sound design  |
|
|
Back to top
|
|
 |
brunov
Joined: Aug 03, 2011 Posts: 227 Location: delft
Audio files: 1
G2 patch files: 2
|
Posted: Wed Apr 20, 2016 10:25 pm Post subject:
|
 |
|
hi aasmodular,
If you like programming the nmg2 editor is an interesting project, it may not look very complex but there are many different aspsects.
So if I may make some suggestions
First you need to set up usb communication with the g2. You could use libusb or something else.
Then you have to program the protocol for sending and receiving g2 messages.
You have to build some kind of internal database to save the state (or multiple states) of the g2 into your application.
You have to build a undo-redo mechanism (very important in an editor), you could use for example the "command" design pattern
You have to be able to save the state of the g2 to to some physical medium in perf or patch format and maybe in midi format and be able to restore it from medium.
Then onto the graphical user interface, I ended up using openGL for this, because it guarantees a good performance (if used the right way) and is machine/os independent.
So to render controls and modules you use 2 triangles and a texture and you paint on the texture.
Also for the cables you can paint these on a separate layer made from two triangles covering the whole scene.
Look for sprite engines for openGL to get some examples.
My own project is on hold right now because of too much other things going on, but I hope to pick it up later on.
P.S. Where is the link to you site? _________________ My old OS NMG2 editor: http://sourceforge.net/projects/nmg2editor/?source=directory
My new G2 editor FMX: http://www.bverhue.nl/g2dev/?page_id=17
Source code: https://github.com/BVerhue/nord_g2_editor |
|
|
Back to top
|
|
 |
aasmodular
Joined: Apr 16, 2016 Posts: 15 Location: aasmodular
|
Posted: Thu Apr 21, 2016 5:47 am Post subject:
|
 |
|
Hi brunov
thank you so much for the quick and informative reply. I guess there's a lot more to it and if you want to add any more details I would be glad. Eg:
how/where did you get the info about the protocol and the modules?
did nord send you some specs?
did you have to reverse engineer the messages/firmware?
thank you
ps: added link to my site in my signature now. _________________ follow my site if you'd like to check my music and sound design  |
|
|
Back to top
|
|
 |
aasmodular
Joined: Apr 16, 2016 Posts: 15 Location: aasmodular
|
Posted: Sat Apr 23, 2016 8:13 am Post subject:
|
 |
|
Hi brunov,
I've downloaded your old editor but there's no source code. I see that you used GPL v2 license, if it's not a problem I would like the source code so I can read it and see how you handled things.
IF I'll ever start this project I'll do it to learn ObjC and Swift, making an OS X iOS only editor (which is what I use and can test on).
Thank you _________________ follow my site if you'd like to check my music and sound design  |
|
|
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: Sun Apr 24, 2016 2:47 am Post subject:
|
 |
|
Hi
First of all congratulation brunov for your work
I'm also a senior software developper, with a great background in C++ (expert), javascript (node js, angular js), Java...
I think that what is missing here is a multiplatform editor (Windows + Linux + Mac, and even Android and iOS). Is it alos what you are trying to get ?
So I was thinking about the ideal technology/language to use to achieve this
- First, as it's mainly about GUI, I would go for HTML5/CSS3 with a modern javascript framework like Angular JS or Ember JS. This would be a web interface.
- Then it would need a multi-platform backend, which would handle the USB connection, may be MIDI communication, and HTTP server for the GUI. Here we could reuse the work from brunov, or do something in C++, or node JS...
Separating the backend from a web interface may provide more flexibility. What do you think ? |
|
|
Back to top
|
|
 |
aasmodular
Joined: Apr 16, 2016 Posts: 15 Location: aasmodular
|
Posted: Tue Apr 26, 2016 10:35 am Post subject:
|
 |
|
hello,
brunov has a multiplatform editor already (see his signature).
If you were referring to me: nope, I'm not trying to achieve that. I would be just for fun and to learn coding. The original editor still works fine so there's no real pressure/need to put another one there (beside brunov good work too).
cheers _________________ follow my site if you'd like to check my music and sound design  |
|
|
Back to top
|
|
 |
ZeeByeZon
Joined: Mar 16, 2009 Posts: 32 Location: France
G2 patch files: 1
|
Posted: Wed Apr 27, 2016 6:40 am Post subject:
|
 |
|
His editor does not work on iOS or Android.
In fact I first misunderstood and thought that it did not work on OSX...
Cheers |
|
|
Back to top
|
|
 |
|