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
G2 Engine upgrade / mod to G2
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [19 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
sellblue



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Wed Nov 24, 2021 9:01 pm    Post subject: G2 Engine upgrade / mod to G2 Reply with quote  Mark this post and the followings unread

Hello,

It is possible to hack the NM G2 Engine using the G2 or G2x front panel, ie pluging the front panel of G2 onto the motherboard of the engine and use it as a controller?
It seems to me that the G2 / G2x / G2 Engine all use the same motherboard.

G2 / G2X:
Posted Image, might have been reduced in size. Click Image to view fullscreen.

G2 Engine:
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message
3phase



Joined: Jul 27, 2004
Posts: 1182
Location: Berlin
Audio files: 13
G2 patch files: 141

PostPosted: Fri Dec 10, 2021 9:55 am    Post subject: Reply with quote  Mark this post and the followings unread

probably..

but seens the engine is even more rare than the keyboard version.
seems the g2 will be an expensive classic..
still an unbeatable package with the 8 variation buttons.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 298
Location: Kebek
G2 patch files: 38

PostPosted: Sun Jan 09, 2022 8:51 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hey,
Quote:
On the question of modding the G2 Engine with G2 key features I can quote the Clavia developers:

The key versions have their specific features on the panel circuit board, e.g. the A/D converter for the pedal input is on the panel board, also some of the mic preamp circuitry. As there is no panel board in the Engine there is no straightforward way to add those features to an Engine. On startup the motherboard detects the presence of a panal board, if it can't find one all software that handles the G2 key and G2X specific features is simply not loaded and can't be activated (meaning all panel board functions plus mic preamp plus control pedal input).
The G2X panel board has an A/D chip with two more channels as the 3 oct G2 key, to handle the two extra global wheels. These global wheels cannot be simply added to the 3 oct G2 key, as it lacks A/D channels to read them.

https://www.electro-music.com/forum/post-59286.html#59286

Recently I wanted to do something similar > mod a G2 with some kind of switch to use the front panel to control a g2 keyboard and a G2 engine. I needed to understand how the OS would react if I assigned the front panel to the G2 engine while the G2 keyboard and G2 engine were already on. I believe this information closed the topic for me. Confused
Back to top
View user's profile Send private message
sellblue



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Tue Feb 08, 2022 12:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

Soon I will get a G2 keyboard version. I also have an Engine so will be able to plug the front panel to the Engine's main board.

According to the service manual it is possible to plug the front panel (panel board) Engine's main board. However it is only for diagnostic purposes and G2 Engine won't work as the keyboard version.
I think there is a trick to enable the keyboard version when the front panel is connected. Maybe it is resistor coded as the G2X features (see more in the service manual). I plan to do comparison on G2/G2 Engine main boards.

I have attached the service manual.


nord modular G2 service manual v1.2.pdf
 Description:

Download
 Filename:  nord modular G2 service manual v1.2.pdf
 Filesize:  1.35 MB
 Downloaded:  373 Time(s)

Back to top
View user's profile Send private message
sellblue



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Sun Feb 27, 2022 7:17 am    Post subject: G2 Rack
Subject description: Modify G2 Engine to G2 Rack
Reply with quote  Mark this post and the followings unread

Please vote if you would buy a controller with the same functionality as the G2 keyboard control panel.
It is possible according my research. I could implement such a controller based on the number of votes.


2022-02-27_15h08_24.png
 Description:
 Filesize:  147.78 KB
 Viewed:  74 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

2022-02-27_15h08_24.png


Back to top
View user's profile Send private message
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 298
Location: Kebek
G2 patch files: 38

PostPosted: Sun Mar 06, 2022 9:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

Thanks for sharing the service manual here! I think these 2 resistors are related to the extra controllers on the G2X. I did not follow the traces on the pcb but they must be connected. On the other hand, I doubt that the OS makes the difference between G2 keyboard and a G2 engine in the same way, with a resistor. But I'm not saying it's impossible to spoof / emulate G2 keyboard components and cheat the G2 engine OS. But it requires a little material, time .. and who wants to risk damaging his G2! But if you have other leads I can participate in the project (the one you are talking about at the start) and do some tests if I don't think it's too risky. I had in my possession a G2X, a G2 keyboard and a G2 engine. I changed some parts on some of them.

Quote:
Please vote if you would buy a controller with the same functionality as the G2 keyboard control panel.
It is possible according my research. I could implement such a controller based on the number of votes.

I also did some research in this direction. When I wanted to convert the parameter names for the 'parameter pages' to send them to the screen of a novation SL mk2. At this point several people were suggesting sites that make custom MIDI control surfaces. I use the Novation SL mk2 to control many other machines, especially with sysex. So I use the Novation to control the G2 engine parameter pages I gave up making a custom controller for the G2. But you have my vote if you want to work on it, if it's quality, serious and it costs a few hundred dollars.

Can you give a little more detail on what you have in mind? Would the engine OS be able to recognize the custom control surface as a G2 keyboard?
Back to top
View user's profile Send private message
sellblue



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Wed Jul 20, 2022 12:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

Electromagnetic Wave wrote:
Thanks for sharing the service manual here! I think these 2 resistors are related to the extra controllers on the G2X. I did not follow the traces on the pcb but they must be connected. On the other hand, I doubt that the OS makes the difference between G2 keyboard and a G2 engine in the same way, with a resistor. But I'm not saying it's impossible to spoof / emulate G2 keyboard components and cheat the G2 engine OS. But it requires a little material, time .. and who wants to risk damaging his G2! But if you have other leads I can participate in the project (the one you are talking about at the start) and do some tests if I don't think it's too risky. I had in my possession a G2X, a G2 keyboard and a G2 engine. I changed some parts on some of them.


Thanks for your support.

Quote:
I also did some research in this direction. When I wanted to convert the parameter names for the 'parameter pages' to send them to the screen of a novation SL mk2. At this point several people were suggesting sites that make custom MIDI control surfaces. I use the Novation SL mk2 to control many other machines, especially with sysex. So I use the Novation to control the G2 engine parameter pages I gave up making a custom controller for the G2. But you have my vote if you want to work on it, if it's quality, serious and it costs a few hundred dollars.


Are you able to control the Parameter Pages or other functions (like page buttons) via MIDI (Sysex not CC) commands? If so then I would go to that direction and make an external controller rather than hacking the hardware. Can you share more detail on the sysex implementation. I did not found any information on the internet other than what is written in the manual.

Quote:
Can you give a little more detail on what you have in mind? Would the engine OS be able to recognize the custom control surface as a G2 keyboard?


The Engine main board is a population variant of Keyboard version board (some components are soldered differently). My original idea was to make a controller that could be connected to the Engine's main board (However it would be much more elegant to connect it via MIDI/USB).
My goal is to achieve the same user experience as the Keyboard version gives.
Back to top
View user's profile Send private message
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 298
Location: Kebek
G2 patch files: 38

PostPosted: Sun Jul 31, 2022 5:49 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Are you able to control the Parameter Pages or other functions (like page buttons) via MIDI (Sysex not CC) commands?

Not directly but with the non-official G2 editor in the middle yes. I discussed about it and I shared a youtube video here .
https://electro-music.com/forum/post-450758.html#450758

The final goal is not to use the moded editor for the GUI but only to make the bridge between the Novation surface control and the G2 engine > to control the parameter pages .. and everything else (patch settings > arp, tempo, etc.., slot selection, etc..). All texts will show on the Novation screens (for each 8 encoders / buttons) if I can understand how to sniff the parameter page text from the G2 screens. I know how to send it after to the Novation screens and I should be able to edit the texts in real time.
Back to top
View user's profile Send private message
sellblue



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Mon Aug 01, 2022 5:54 am    Post subject: Reply with quote  Mark this post and the followings unread

Electromagnetic Wave wrote:
Quote:
Are you able to control the Parameter Pages or other functions (like page buttons) via MIDI (Sysex not CC) commands?

Not directly but with the non-official G2 editor in the middle yes. I discussed about it and I shared a youtube video here .
https://electro-music.com/forum/post-450758.html#450758

The final goal is not to use the moded editor for the GUI but only to make the bridge between the Novation surface control and the G2 engine > to control the parameter pages .. and everything else (patch settings > arp, tempo, etc.., slot selection, etc..). All texts will show on the Novation screens (for each 8 encoders / buttons) if I can understand how to sniff the parameter page text from the G2 screens. I know how to send it after to the Novation screens and I should be able to edit the texts in real time.


I also use the unofficial G2 editor with an AKAI Midimix. Actually the same method as you except I use a PC as intermediate interface.
I have dropped a message in the post you've mentioned for Bruno. Hope he will give us some insights about G2's USB protocol.
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 Aug 01, 2022 11:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi,

I don't think I received any messages, but I like to help you with your project.

Everything that is known about the file structure and usb protocol is in the code. I can point you to the relevant parts of the things that your are interested in.

Bruno.

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



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Wed Aug 03, 2022 5:40 am    Post subject: Reply with quote  Mark this post and the followings unread

brunov wrote:
Hi,

I don't think I received any messages, but I like to help you with your project.

Everything that is known about the file structure and usb protocol is in the code. I can point you to the relevant parts of the things that your are interested in.

Bruno.


Hi Bruno,

Thank you for your quick response.
So as I mentioned before I would like to design an external Physical controller for G2 Engine like G2 Keyboard version has. Same functions and similar layout.


I see three approaches to implement it:
1. "Clone" the G2 Keyboard front panel and connect it to G2 Engine main board (already proved it is working).

2. Design an external controller that is capable to control G2 Engine via MIDI(not CC).
For example use a Microcontroller:
- Interface to G2 Engine (MIDI host)
- Interface to Encoders (knobs), LCDs and buttons.

3. Design an external controller that is capable to control G2 Engine via USB. For example use a Raspberry Pi:
- Interface to G2 Engine (USB host)
- Interface to Encoders (knobs), LCDs and buttons.

Could you please help me and give some explanation how parameter page values are communicated via USB or MIDI(if so)? Sorry I'm not familiar with Delphy.
[img][/img]


2022-08-03_14h03_48.png
 Description:
 Filesize:  19.33 KB
 Viewed:  1455 Time(s)

2022-08-03_14h03_48.png


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: Wed Aug 03, 2022 6:35 am    Post subject: Reply with quote  Mark this post and the followings unread

A knob on the parameter page refers to a parameter.

To change the value of a parameter through USB you have to send the following message:

(In file g2_mess.pas, line 3657)

function TG2MessSlot.CreateSetParamMessage( aLocation, aModule, aParam, aValue, aVariation: byte): TG2SendMessage;
begin
Result := TG2SendMessage.Create;
Result.WriteMessage( $01);
Result.WriteMessage( CMD_NO_RESP + CMD_SLOT + SlotIndex );
Result.WriteMessage( FPatchVersion);
Result.WriteMessage( S_SET_PARAM);
Result.WriteMessage( aLocation);
Result.WriteMessage( aModule);
Result.WriteMessage( aParam);
Result.WriteMessage( aValue);
Result.WriteMessage( aVariation);
end;

CMD_NO_RESP (Hex30) means it is a message that does not initiates a response

CMD_SLOT (Hex08) + SlotIndex refers to the slot the patch is in.

FPatchVersion is a number that increases every time a structural change is made in a patch.

S_SET_PARAM (Hex40)

aLocation refers to the VA or FX section.
aModule is the Module id in the location
aParam is the id of the Param in the module
aValue is the new value for the parameter
aValraition is the variation


The in-memory data structure of the G2 is more or less the same as the file structure. The file structure consists of "chunks". So there one or more "module" chunks, one or more "cable" chunks, "module name" chunks, "parameter" chunks, "parameter name" chunks, "knob" chunks, "cc assignment" chunks and so on.

A single "Knob" in a "knobs" chunk has this structure

(g2_file.pas, line 566)

TKnob = class
private
FAssigned : TBits1;
FLocation : TBits2;
FModuleIndex : TBits8;
FIsLed : TBits2;
FParamIndex : TBits7;
...

With USB you can upload/download complete chunks but you can also send/receive all kinds of messages, one of which is setting a parameter value.

with MIDI (SysEx), as far as I know, you can only request a complete patch or performance and send a (changed) complete patch or performance.

_________________
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
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: Thu Aug 04, 2022 9:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

I'll explain a bit more on how the usb connection is set up:

The os editor uses the libusb library.

You can interface with the library using this header file.

In unit G2_USB.pas there are the functions for:

Setting up the connection:

function TG2USB.Init : boolean;

Closing the connection:

procedure TG2USB.Done;

Reading an interrupt (small) message:

function TG2USB.iread(addr: byte; var buffer; size, timeout: longword): integer;

Reading a bulk message:

function TG2USB.bread(addr: byte; var buffer; size, timeout: longword): integer;

Writing a bulk message:

function TG2USB.bwrite(addr: byte; var buffer; size, timeout: longword): integer;

For reading messages from the g2 a listening thread is set up:

procedure TReceiveMessageThread.Execute;

This thread blocks waiting for an incomming interrupt message. Possibly this is then followed by a bulk message.

For sending messages a thread is used also, but this may not be necessary.

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



Joined: Nov 24, 2021
Posts: 12
Location: Austria
Audio files: 3
G2 patch files: 1

PostPosted: Fri Aug 05, 2022 9:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

brunov wrote:
I'll explain a bit more on how the usb connection is set up:

The os editor uses the libusb library.
...


Thanks Bruno for your detailed description. I'll try to understand all information and try to implement something.
Back to top
View user's profile Send private message
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18127
Location: Durham, NC
Audio files: 188
G2 patch files: 60

PostPosted: Sat Aug 06, 2022 12:12 pm    Post subject: Reply with quote  Mark this post and the followings unread

3phase wrote:

seems the g2 will be an expensive classic..
still an unbeatable package with the 8 variation buttons.


Yep. It's been years since it was discontinued. I stopped patching it because of the discontinuation. I've been using it as a MIDI controller for playing out. Virtually all of my work is on IOS apps now. There a several nice "modular" apps there, but I'm finding the G2 is just as good or better than any of them. Easier to program as well.

As time goes on, I'm finding myself loading some patches from the archive here and finding them very useful in my music. I use the G2X on virtually every Twyndyllyngs performance live streams on e-m.

When we get this electro-music.com server migration issue sorted out, don't be surprised to see me posting some more patches.

_________________
--Howard
my music and other stuff
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 298
Location: Kebek
G2 patch files: 38

PostPosted: Thu Sep 08, 2022 3:55 pm    Post subject: Reply with quote  Mark this post and the followings unread

Awesome! Thanks for this additional info in gold brunov.

I asked you a question in "NMG2 Open Source Editor" topic. Do you have an idea how to collect controllers names (with OSC or whatever) from the parameter pages box on the G2? I want to mimic G2 display and pots with a Novation SL mk2. I know how to send/change knob names in real time with sysex for the Novation SL mk2. if I understand how to sniff parameter names in real time, I should be able to code a small tool that will do the conversion to sysex and send it to the Novation screen. I thought it might be easier from your editor to send the name of the parameters to an external tool than with the official editor

The Novation has 8 infinite knobs and 8 aligned buttons, then a screen at the top of each knob like the G2.

Cheers!
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: Fri Sep 09, 2022 4:15 am    Post subject: Reply with quote  Mark this post and the followings unread

Probably the simplest way is to initiate a patch/perf sysex dump from the g2 over midi and extract the knob assignments and parameter names from this data.

The complicated way would be to create a program that gets the data over the usb interface, as explained in the above posts.

There is also maybe a third way, that is you can connect to NMG2 OS editor using TCP/IP. The editor must be opened and connected to the G2 of course, but then you can get (or send) G2 messages over TCP/IP to the editor. These are the same messages you would use over the USB interface.

The TCP/IP port and host are on the "Application settings" dialog, tab TCP/IP.

This can be a bit complicated too of course, depends on your programming sklils. What programming language do you use?

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



Joined: Apr 28, 2013
Posts: 298
Location: Kebek
G2 patch files: 38

PostPosted: Fri Sep 09, 2022 2:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

Your first option is brilliant and simple. But I don't have a clear idea how I can only display the parameters of the current 'parameter page' on the 8 knobs of the Novation SL mkii. I assigned control changes on Novation SL mkii buttons to change the parameter pages (1,2,3,A,B,C,D,E) of the G2 with NMG2 OS editor. I imagine that a solution to make the bridge in real time would be to send the value of the ccs assigned to the 'parameter pages' to the tool to be programmed. After the value for the letter and number of a 'parameter page' (A,B,C,1,2,3,4,5) are sent the tool will update the name of the 8 knobs on the Novation SL mkii by sending the name of the parameters converted into sysex messages.

Quote:
The complicated way would be to create a program that gets the data over the usb interface, as explained in the above posts.

This is the option that looks like this that I was considering the most. I was wondering if it was not possible to modify the editor to retrieve the name of the parameters. Then send the 'pameter names' to the tool which will convert the names to the Novation screen.

Quote:
There is also maybe a third way, that is you can connect to NMG2 OS editor using TCP/IP.

If I understand correctly this solution is similar to the previous one but using TCP/IP instead of USB?

I know visual basic. I can open a project in delphi and understand a bit but I'm not comfortable coding. What seems certain is that even if I make a tool to transfer the names of the 'parameter pages' I will continue to use the NMG2 OS editor in parallel to control the knobs of the 'parameter pages' in real time on a G2 engine
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 12, 2022 1:03 am    Post subject: Reply with quote  Mark this post and the followings unread

Yes I think it is possible to send midi messages in response to label changes on the parameter pages. Only I don't think it is a good idea to build in code in the editor for a specific type of controller, this should be something that is generic.

I mean, you should be able to create some kind of config file in which you can define how to convert de label data into a SysEx message that is specific for your controller.

But, let's see wat sellblue ideas are on this.

[/img]

_________________
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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [19 Posts]
View unread posts
View new posts in the last week
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