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 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » Clavia Nord Modular » G2 Patches - Experimental
multi-layer arppegiator
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [6 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
chinard



Joined: Dec 07, 2006
Posts: 23
Location: toronto
G2 patch files: 2

PostPosted: Sat Jan 20, 2007 10:25 pm    Post subject: multi-layer arppegiator
Subject description: attempting to mimic the behavior of a triton arppegiator
Reply with quote  Mark this post and the followings unread

Ok, i started a different thread in the genral forum on this subject and got some wonderful suggestions and ideas to develop this idea

http://www.electro-music.com/forum/topic-15657.html

Original Thread wrote:

i just finally got my hands on a G2 a few days ago and i've been having a blast noodling around and trying a few experements with patch building.

I already have a fair amount of experience with analog modular synths that i have in my studio. (got some moog and moogerfooger stuff, ms-20, metasonix stuff, and im currently building a paia 9700s modular)

Right now what i am trying to do is i am trying to 'scale down' my studio.
The G2 directly replaces almost all of my existing VA synths, and HOPEFULLY if i can program this thing to do what i want it to do, then i can also retire my 'Live' keyboard (korg triton studio) and use this as a lightweight and more flexible live keyboard.

lets get right to the live thing that i am trying to do.
now the triton for starters is a sampler with a VERY sophisticated arppegiator on it, which for a couple of songs i CANNOT live without for live use.
The sampling part doesnt really bother me, cause i can create much BETTER sounding patches on the G2, the thing that has me scraching my head is HOW to build a 'building block' that will emulate the flexibility of the triton arppegiator.

I've decided to make this my first real programming challenge on this platform. From reading the manual i am still trying to decide what the best approach is and there is alot to absorb here.

Here's what i want to do:
i want to take the note and gate from they keyboard in and sort the notes as they are being pressed.
From here i want to take the gate and pitch from each note, and seperate it to its own step sequencer.
For example; holding lower C2 by itself would activate only the step-sequencer 1 for those notes being pressed.
when holding lower C2, and a higher note, lets say.. D3 would still play sequencer 1 on c2 but would also in parallel play sequencer 2 on D3.
If a third key were to be pressed, lets say F4 then it would play sequencer 3 in parallel to sequencer 1 and 2 being played on their respected notes.
The original triton arppegiator would let you do up to 11 layers like this.

I know this all sounds confusing.. i think i might have to take some screenshots of the arppegiator config on a triton so that you can see what im talking about.

Im thinking this can be done, but the programming is going to be interesting to say the least. The biggest challenge i think will be figuring out how to sort and seperate the notes as they are triggered so that each note can be routed to its own sequencer.

If anybody else has attempted to do anything similar, or has any ideas on how to perform this function let me know.


So far i have found two main foundations to build this on.

First is an experement a while ago called 'peggy-pegiator' http://www.electro-music.com/forum/topic-5711.html
Pretty interesting work here where the author used Voice No. to tell the 1-8mux which sequencer to play. The biggest problem with this was the round-robin voice selection did not behave properly when keys were released.
the thing i liked about this was that it was designed as a Perf and had all the sequencer controls in slot D. From slot D it was possible to send the note output of each seq to slots A-C. (useful for splits)

The next piece of the puzzle came from use Antimon who had an interesting little incremental key sorter using the internal bus to add gate values together instead of using voice no. as a signal to the 1-8 mux.
The nice thing about this was that it would count up AND count down as keys were pressed.

Afterwards i had to do a bunch of other rewiring and massaging of logic gates. I'll explain it all by function later.

In the meantime, heres what i have done so far. Its still not done, and it still has a crapload of problems.
The biggest thing im trying to figure out is the sequence reset functionality.
right now as it stands it resets the sequence on EACH keypress. I would like to fix it so that it ONLY resets sequence at keypress of note 1.


dynamic arp 1.prf2
 Description:
Work in progress triton arppegiator.
use polyphony -1 to determine how many sequencers to play.
(polyphony of 3 will play the first 4 sequencers)

Download
 Filename:  dynamic arp 1.prf2
 Filesize:  7.98 KB
 Downloaded:  1316 Time(s)

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



Joined: Jan 18, 2005
Posts: 4145
Location: Sweden
Audio files: 371
G2 patch files: 100

PostPosted: Sun Jan 21, 2007 7:50 am    Post subject: Reply with quote  Mark this post and the followings unread

The cmp c module in the level collection will output a high value if the input is greater than a set value. If you compare the delayed output from the bus against 1, invert the result (using the converter under level) and then AND it with the incoming gate signal, there will be a momentary pulse if and only if it was the start of the first sequencer... if my mind is processing this right. I'm unable to try this out myself at the moment.

Glad to see you are making progress! Very Happy It is a bit tricky to wrap your head around this inter-voice realtime stuff, especially if you (like me) are mostly accustomed to procedural programming.

/Stefan

_________________
Antimon's Window
@soundcloud @Flattr home - you can't explain music
Back to top
View user's profile Send private message Visit poster's website
chinard



Joined: Dec 07, 2006
Posts: 23
Location: toronto
G2 patch files: 2

PostPosted: Sun Jan 28, 2007 2:31 am    Post subject: Reply with quote  Mark this post and the followings unread

im still trying to wrap my head around some of the way that this sorter works. I think i get the basic flow, but there are some particulars i dont fully understand.

I get that its taking the gate values delaying then comparing the result (looking for change in voltage)
when theres a change, the S/H adds or subtracts the control value of 4 to the output (similar to voice number going up in increments of 4) then sends it to the mux which knows what to do with this value.

The biggest thing im trying to piece together is why the ADSR amp out has to pass through the bus before hitting the S/H module.
I tried an experement of just routing straight to the S/H and it didnt seem to work.

Im also trying to figure out why the constant1 value is 4 (what i would expect the voice no increment to be) and why the lvl add is 2 after passing through the S/H.

either way that part of the circuit is extremely handy for key sorting.

as far as the other part where im trying to sync everything on the first sequencer, i still havent tried figuring that out yet.
i'll get to it after all the nyquil wears off and i can think straight again.
Back to top
View user's profile Send private message
chinard



Joined: Dec 07, 2006
Posts: 23
Location: toronto
G2 patch files: 2

PostPosted: Mon May 14, 2007 10:43 am    Post subject: Reply with quote  Mark this post and the followings unread

Ok, i've given this a complete overhaul and its actualy starting to behave properly now.

i've given it a decent synth patch and a more melodic pattern. Original pattern was random crap just for testing purposes.

right now i have limited this to 3 notes just for simplicity, but this can easily be increased by adding more sequencer windows, and increasing the polyphony of slot D.
I had to add a 'padding' note in order to make this feature work. without this, the polyphony and number of active sequencer windows wont match.

the key sorter is slightly simplified. I removed some of the un-necesary modules, but it still retains the basic design idea submitted by Antimon of triggering envelopes for each gate, and having the sum routed to 1-8 muxes. The only thing i still dont understand is WHY this signal needs to be routed through a bus in order to work. Someone please explain this part?

I have also added a bunch of new features onto it such as a tempo tracker and sync-reset button to manually resset the arp to beat 1 for live sync'ing.
I originally wanted this to sync on key press but only when the first key was pressed or when all keys were released then a new key was pressed again. This turned into a spagetti nightmare that i never did get working.
I opted for a simpler design with a manual reset key and a tempo ticker that shows every 4th beat.
This design is way friendlier for manual syncing which i usually like to do when playing live.

What still doesnt work right:
I am having a few problems here when too many keys are releaased or added too fast. It seems to trigger the wrong sequencer window when this happens.

To see what i am talking about, try this:
press 3 keys, one slightly later than the other so that each note gets a chance to assign to the right sequencer. Now release all 3 keys and quckly press a different lower key. it seems to favour sequencer 2 instead of sequencer 1 like i had intended.

Another example, press 3 keys simultaniously. This sounds all 3 notes on all 3 sequencers. Can't figure out how to work around this one.


poly-arp.prf2
 Description:
improved functionality, still a few bugs

Download
 Filename:  poly-arp.prf2
 Filesize:  6.65 KB
 Downloaded:  1271 Time(s)

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



Joined: Jan 18, 2005
Posts: 4145
Location: Sweden
Audio files: 371
G2 patch files: 100

PostPosted: Mon May 14, 2007 11:37 am    Post subject: Reply with quote  Mark this post and the followings unread

The bus is used to sum up values from different voices. 2-Out1 and 2-In1 (in your performance) together act as a kind to 3 to 1 mixer (since you have voice mode="3(3)"), with one input from each voice. Everything you send to a bus gets added to the stuff already there, so you could send in values from other slots as well.

One problem with this is that it's hard to be completely safe from the situation where you press several keys simultaneously. In a programming language you would solve this with what is called a "monitor", but I don't know how that could be implemented here. I think I overlooked this issue earlier, concentrating on the situation where you press each key with distinct time intervals.

The major problem here lies in the fact that it's difficult to communicate between voices. Maybe we could form some kind of suggestion for enhancing inter-voice communication for the ongoing wish list thingie here. A module doing what you want (out: of all pressed notes, in which order am I? How many lower/higher?), doesn't seem unreasonable or difficult to implement.

/Stefan

_________________
Antimon's Window
@soundcloud @Flattr home - you can't explain music
Back to top
View user's profile Send private message Visit poster's website
chinard



Joined: Dec 07, 2006
Posts: 23
Location: toronto
G2 patch files: 2

PostPosted: Mon May 14, 2007 2:10 pm    Post subject: Reply with quote  Mark this post and the followings unread

ah, ok.. so putting it through the bus acts in sort like an adding mixer on all the mux'ed channels coming from the poly cv/gate input.
shame that a regular mixer couldnt do the same job. with the limited number of inter-voice busses available, i hate to tie one up just for the purpose of gate summing.
I also hate to waste the DSP's reserved for audio on something that only passes gate signals. I have changed the cable colours accordingly, but i have a feeling that isnt making much of a difference.

in general i think that alot of these problems could SO EASILY be fixed just by changing the behaviour of Voice No. in the 'status' module.
The way it is now, it forces itself to be 'round robin' and has no way to change its mode to 'note sort' or 'as played'

one of the things i did remove from your original note sorter is the delay module. the circuit works just fine without it, as the envelope already has 0.5ms of delay built in as that is the fastest attack/decay speed available to the ADSR envelope.
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 [6 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 Patches - Experimental
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