electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
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 » G2 FAQ
Store default values with MIDI
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [16 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Thu Aug 02, 2018 3:47 am    Post subject: Store default values with MIDI
Subject description: Using Sysex function to store an absolute default patch
Reply with quote  Mark this post and the followings unread

Hey all,

I've been experimenting with g2 lately with using SuperCollider/Tidal and I'd like to store the initial values of a performance before I send any CC and change the overall parameters
the idea is to recall a patch with the "default" parameters at any given time.

I am thinking in order to this, I can use the 'dump one' function to get midi data in Sysex format and then parse it in SuperCollider later to be sent as MIDI CC back to G2.

I was curious if this would be the right way of doing this or maybe some other folks have done this before

Open to any suggestions
Back to top
View user's profile Send private message
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 22567
Location: The Netherlands, Enschede
Audio files: 220
G2 patch files: 319

PostPosted: Thu Aug 02, 2018 5:12 am    Post subject: Reply with quote  Mark this post and the followings unread

Why not use "All Controllers Request"? (manual page 149/150)
_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Thu Aug 02, 2018 6:00 am    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:
Why not use "All Controllers Request"? (manual page 149/150)


Hey, thanks for the reply! Doesn't it only give me the CC'd parameters rather than all of the parameters in the patch?
Back to top
View user's profile Send private message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Thu Aug 02, 2018 6:12 am    Post subject: Reply with quote  Mark this post and the followings unread

On a side but related topic, I think one of the issues I am having right now is not being able to preserve a patch properly. My patches seem to be evolving a bit after each session hence this effort to keep a default state.
Back to top
View user's profile Send private message
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 22567
Location: The Netherlands, Enschede
Audio files: 220
G2 patch files: 319

PostPosted: Thu Aug 02, 2018 8:07 am    Post subject: Reply with quote  Mark this post and the followings unread

Ah yes .. CC-ed ones only ... so indeed you'll have to ask for the patch and then parse that ... or just send the whole dump back maybe ... yuck Confused

O .. and welcome

_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Thu Aug 02, 2018 9:08 am    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:
Ah yes .. CC-ed ones only ... so indeed you'll have to ask for the patch and then parse that ... or just send the whole dump back maybe ... yuck Confused

O .. and welcome


Delighted to be here Smile

So yea that's what I was thinking. However, I am unsure about the G2's Sysex protocol. also can't say that I have much experience using Sysex but in SC the format goes like this:

Code:
 m.sysex(Int8Array[0xf0, 0x00, 0x20, 0x3c, 0x02, 0x00, 0x61, 21, 54, 0xf7]);


Above is an example of the clock message for Machinedrum.

I am sure people has experimented with it before but my initial search didn't really give any results. Maybe you can point me to the right direction?

thanks again Smile
Back to top
View user's profile Send private message
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 22567
Location: The Netherlands, Enschede
Audio files: 220
G2 patch files: 319

PostPosted: Fri Aug 03, 2018 10:31 am    Post subject: Reply with quote  Mark this post and the followings unread

This is what I have ... http://www.bluehell.nl/iaf/html/nm-open/nm-open-g2info.htm
_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 260
Location: Kebek
G2 patch files: 37

PostPosted: Thu Aug 23, 2018 5:15 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi vou!

Quote:
the idea is to recall a patch with the "default" parameters at any given time.

Did you tried : Shitf + #variation ?

You can use dump too. But after when you send back the sysex G2 performance at 110 BPM (recorded at 30 BPM) somewhere at the middle of your project > your sequencer and the G2 will probably don't like that.

I store all G2 performances on my sequencer with sysex dump when I work on a project. Like this I'm sure the patches/performances are exactly the sames when I recall them with the project. Another reason why I save all G2 performances with project is when I have many versions (v11, v12, v13, v21, etc..). I don't want to take a lot of G2 memory for each performance version for this project.

I only save performance in G2 for live act and all my basic collection of patches/performances

But if you just need to recall the default parameters > shitf + #variation.
Back to top
View user's profile Send private message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Thu Aug 23, 2018 6:12 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi!
Quote:

I store all G2 performances on my sequencer with sysex dump


How do you actually do that/which sequencer? do you have some sort of a parser?
Back to top
View user's profile Send private message
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 260
Location: Kebek
G2 patch files: 37

PostPosted: Thu Aug 23, 2018 8:21 pm    Post subject: Reply with quote  Mark this post and the followings unread

I make cofee and will record a small video for you. What is a parser ?

Edit : Here is the video, G2 receive perf from sysex (at 1.50 I reset the variation) :
https://youtu.be/qEDdUaAdP9o


And a second video because I forgot to made another one with G2 sending perf with sysex message to sequencer and record it :
https://youtu.be/jjTyRLWJbU8

Let me know if you have question

Smile
Back to top
View user's profile Send private message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Fri Aug 24, 2018 9:12 am    Post subject: Reply with quote  Mark this post and the followings unread

thanks for that,
Ah so the Sysex gets parsed automagically. I guess they've made it so that it works within the established Sysex protocol. Not sure why I thought it wouldn't.

Just for the sake of this conversation, I use custom interface to sequence nord, not a conventional hardware sequencer
Back to top
View user's profile Send private message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Fri Aug 24, 2018 10:19 am    Post subject: Reply with quote  Mark this post and the followings unread

With the motivation I got from you, I was able to come up with SuperCollider patch to save/load performances from sysex just like you demonstrated with your sequencer.

In case that anyone else search for this, here's a working solution;

Code:

//Init MIDI
MIDIClient.init;
MIDIIn.connectAll;

//Get MIDI device
~nord = MIDIOut.newByName("USB MIDI Device", "Port 1");

//Create Arrays to store G2 performances/patches
~vsv1 = Array(50);


//Init Sysex listener
MIDIIn.sysex = {

   arg src, sysex;

   ~vsv1.add(sysex);

   sysex.postln;
};

//Load the patch back to G2
for (0, 50, { arg i;~nord.sysex(~vsv1[i])});



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



Joined: Apr 28, 2013
Posts: 260
Location: Kebek
G2 patch files: 37

PostPosted: Sat Aug 25, 2018 10:49 pm    Post subject: Reply with quote  Mark this post and the followings unread

Niiiiiiiiice!!! Very Happy

Some tools (open source) around here can convert .pch2 to sysex (no need to turn on the G2). I mention that in case you need to convert a lot of patches/perf (.pch2,. prf2 batch folder).
Back to top
View user's profile Send private message
vou



Joined: May 13, 2018
Posts: 15
Location: London

PostPosted: Sat Sep 01, 2018 3:42 pm    Post subject: Reply with quote  Mark this post and the followings unread

Oh ye? that's interesting.. mind pointing out some of these tools?
Back to top
View user's profile Send private message
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 260
Location: Kebek
G2 patch files: 37

PostPosted: Sun Sep 02, 2018 3:57 pm    Post subject: Reply with quote  Mark this post and the followings unread

After spending some time searching on my HD, I'm not sure which tool and source I used. But here's what I can tell you about it:

The NMG2 Editor 0.26 can load/save patch from/to G2 with sysex. Exemple : Menu > Sysex > Get patch sysex from bank. The code source and all reference is available with the editor. This editor is available on the forum I think. Or google it.

I see another tool in my computer : pch2midi - NM G2 patch/performance <> MIDI converter. I think this tool was made by Blue Hell (not sure). This tool is coded with delphi. pch2/.prf file can be converted to .bin.

I don't think I used G2ools (which you can find on the forum) code with python language for this task. I remember having already done this task. But it must be around 10 years and I'm not sure what I used. I have some pieces of code here and there that I must review to understand its function.

I don't know if it can be useful for you with SuperCollider/Tidal and I do not have much experience on this subject > You can use the NMG2 0.26 and the FMX FM v0.4 (another open source editor) over TCP IP. These 2 editors have log file, it can be useful too. Then you can send USB message manually for the G2.

I'll let you know if I find / remember the piece of code or the tool I used to convert patches/perf to sysex. I think that some members here would have the time to code this kind of tool the time that I look in my computer and that I write this message. Rolling Eyes
Back to top
View user's profile Send private message
Electromagnetic Wave



Joined: Apr 28, 2013
Posts: 260
Location: Kebek
G2 patch files: 37

PostPosted: Mon Sep 17, 2018 4:15 pm    Post subject: Reply with quote  Mark this post and the followings unread

I just came across this topic. The tool I used look to be pch2midi from Blue Hell. gomidas said he will use it too as a command line for big folders.
http://electro-music.com/forum/post-277137.html#277137
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 1 of 1 [16 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 » G2 FAQ
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
e-m mkii

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


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