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 » Discussion » Composition
I want to build a midi perfomance setup
Post new topic   Reply to topic Moderators: elektro80
Page 1 of 3 [52 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: 1, 2, 3 Next
Author Message
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 7:15 am    Post subject: I want to build a midi perfomance setup
Subject description: But i'm sweating over the different software options...
Reply with quote  Mark this post and the followings unread

Hi folks, first post here eventhough i've been checking out the board for quite a while Smile

This is a pretty important question for me, as i feel it will be quite an important part of my musical evolution, so thanks in advance to anyone who'll take the time to read and comment.


Basically, i can't play the keyboard, and as far as composing goes, i feel quite restrained by the whole piano roll paradigm of 99% of Daws today.
So I've been meaning to build my own composition setup that would allow me to do things in a different way, my way i guess...
I've looked into Max, Chuck, SC etc, but I'm really unsure about which option will be best suited for what i want to achieve.

I'm gonna try and explain what my goals are, and i hope i'll get some feedback from users of different softwares.

I'd like this 'composition canvas' to be a modular environment, so that i could build and reuse all kinds of modules for arpegiation, chords etc, and define different paths and setups for different purposes.
It would be algorythmic in a sense i guess, but not based on pure randomness, the emphasis would be on user input ; wether it is from a controller, programmed note/gate sequences, or live playing/triggering of modulations and whatnot. So to speak, it would allow me to build my own stairway to go from one point to another, putting me in control of every step in the whole process.
Interaction would be the key, i'm not sure i'd be satisfied with anything that can't run live and be played in a sense.
My goal ultimately is to be able to build something that will be musically meaningful TO ME, and that i can play and interact with.

That probably sounds a little too abstract (and it still is for me tbh), but here is a practical example of something i'd like to achieve.

A sequencer to build chord progressions :
-it would work in scale degrees
-could easiely be switched to different scales
-would allow you to sequence by directly inputing a degree/chord type/inversion
-would somehow be 'smart' about the process of fitting chords to a scale, rather than blindly force an inappropriate chord to a key (maybe dynamically rearrange the chords list for each degree, according to the degree of pertinence with the current scale perhaps)
-have the capabilty to do such things as automatically select inversions to bias the voice leading. For example a 'realistic' mode, that would pick the inversions, so that the keys are as close to each other as possible ; pretty much like a keyboardist (maybe not a real talented one Smile ) would do.
The control over how the voice leading evolves is a good example of the type of interaction i'm aiming at.



I really hope that made sense, and that some users of Max, chuck, athenaCL, SC, CSound... will be able to comment on wether what they use would be a good way to achieve this.
That will be a long and hard process anyway, so i'm really sweating over a false start...

Cheers !

Last edited by disturb on Mon Apr 02, 2007 4:44 pm; edited 1 time in total
Back to top
View user's profile Send private message
kijjaz



Joined: Sep 20, 2004
Posts: 765
Location: bangkok, thailand
Audio files: 4

PostPosted: Mon Apr 02, 2007 8:01 am    Post subject: Reply with quote  Mark this post and the followings unread

wow!! i'm really excited by your goals now..
you've got such a big and exciting start.. and much bigger than mine now hehe.
so it's really nice.
and i'm looking forward to your ideas ^_^.. in the near future i hope!

by the different features you want for the system..
i guess there are more than 2-3 softwares you can use..
and each might serve better in a particular feature.
i'm not very good in all softwares / languages..
but i'll try to recommend from the software i've played with.

Csound, ChucK, Pure Data or Max/MSP

from most of your requirement, i recommend using Pure Data / Max/MSP
mainly because it'd be convenient to access the interface..

but for me i also recommend ChucK
sometimes i can't program some crazy ideas on puredata..
so i need to get into a deeper style of programming.
now chuck has more ways to build interface (on Mac OS)
so for a very algorithmic ideas, i recommend chuck.

but i was very in love with Csound 2-3 years ago in the flexibility i can do in programming..
and there are lots of Ugens to play with also.
but i moved to program mainly in chuck because it's easier to program for real-time performance,
and tweaking with the code while performing live is much easier -- the code is easier to read.
- - -

now, most of my patches for live performance are on PD and ChucK
and they're going well. i hope i can hear more from other artists also..
thanks in advance also for later ideas for this issue ^_^
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
v-un-v
Janitor
Janitor


Joined: May 16, 2005
Posts: 8932
Location: Birmingham, England, UK
Audio files: 11
G2 patch files: 1

PostPosted: Mon Apr 02, 2007 8:22 am    Post subject: Re: I want to build a midi perfomance setup
Subject description: But i'm sweating over the different software options...
Reply with quote  Mark this post and the followings unread

disturb wrote:

Basically, i can't play the keyboard, and as far as composing goes, i feel quite restrained by the whole piano roll paradigm of 99% of Daws today.


Snap! (oh and welcome to electro-music.com disturb!)

Me too. I can't really play anything (apart from the harmonica). My ears are my fingers Very Happy

But electronic music isn't necessarily about 'musicianship' or what is commonly classed as musicianship- ie noodly irovy tickling.

Who said anything about keyboards though? DAW's like Logic allow you to 'arrange' sounds- a bit like working with a tape recorder. Listen to Tod Docstader some time. It's complete arrangement of sound, with 3 tape machines and lots of things to record. In fact the only thing electronic is an old Heathkit test oscillator which has had the earth points disconnected to make it unstable. Computer music can be a bit like this too, but less 'hands on'.

My recommendation would be to look at Clavia's modulars (the micro and the newer G2. In fact both the micro and the G2 Engine have no keyboards at all, unless of course you choose to plug them in). These are really easy to grasp (no pun intended!).

CSound, Max/msp, SC et al all have one downfall, they all have severe learning curves, so if you choose to got that route, be prepared to wait rather a long time before you can create anything 'worthwhile' with them.

Personally I prefer to spend some time learning to play a keyboard and understanding intervals than swearing at my computer + monitor Laughing

_________________
ACHTUNG!
ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS!
DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKSEN.
IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS.
ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.
Back to top
View user's profile Send private message Send e-mail
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 8:40 am    Post subject: Reply with quote  Mark this post and the followings unread

kijjaz wrote:
wow!! i'm really excited by your goals now..
you've got such a big and exciting start.. and much bigger than mine now hehe.
so it's really nice.
and i'm looking forward to your ideas ^_^.. in the near future i hope!

by the different features you want for the system..
i guess there are more than 2-3 softwares you can use..
and each might serve better in a particular feature.
i'm not very good in all softwares / languages..
but i'll try to recommend from the software i've played with.

Csound, ChucK, Pure Data or Max/MSP

from most of your requirement, i recommend using Pure Data / Max/MSP
mainly because it'd be convenient to access the interface..

but for me i also recommend ChucK
sometimes i can't program some crazy ideas on puredata..
so i need to get into a deeper style of programming.
now chuck has more ways to build interface (on Mac OS)
so for a very algorithmic ideas, i recommend chuck.

but i was very in love with Csound 2-3 years ago in the flexibility i can do in programming..
and there are lots of Ugens to play with also.
but i moved to program mainly in chuck because it's easier to program for real-time performance,
and tweaking with the code while performing live is much easier -- the code is easier to read.
- - -

now, most of my patches for live performance are on PD and ChucK
and they're going well. i hope i can hear more from other artists also..
thanks in advance also for later ideas for this issue ^_^
hi kijjaz, and thanks for the answer.

Well unfortunately i don't have much to share regarding specifics right now...
I'm really new to this and don't have any experience with any of the softwares i'm eying right now.
All i have is this abstract idea of how i'd want it to work, and i'm afraid i won't be able to get into specifics until i settle for a development environment.
Because how it will actually work will depend on how things can be implemented, and that's deeply tied to the software itself...

I must say i'm a bit biased towards MAX from the start, since i've no experience with coding languages (even when it's as 'simple' as chuck or python) and i feel a bit intimidated by text based programming. It seems the graphic interface will make it easier to have some quick feedback on what's going on Question

But it's really hard to figure out how you'd go about doing something in say chuck or csound, with just a quick review of the documentation. Maybe behind these shady code lines there are ways to do this that would totally make sense, and more elegantly than patching in MAX....

I just don't know, i wouldn't want to keep reinventing the wheel in MAX just because i felt more attracted to the GUI. It's gonna be a tedious process, so i don't want to make it harder on myself than it ought to be...
Back to top
View user's profile Send private message
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 8:57 am    Post subject: Re: I want to build a midi perfomance setup
Subject description: But i'm sweating over the different software options...
Reply with quote  Mark this post and the followings unread

v-un-v wrote:
disturb wrote:

Basically, i can't play the keyboard, and as far as composing goes, i feel quite restrained by the whole piano roll paradigm of 99% of Daws today.


Snap! (oh and welcome to electro-music.com disturb!)

Me too. I can't really play anything (apart from the harmonica). My ears are my fingers Very Happy

But electronic music isn't necessarily about 'musicianship' or what is commonly classed as musicianship- ie noodly irovy tickling.

Who said anything about keyboards though? DAW's like Logic allow you to 'arrange' sounds- a bit like working with a tape recorder. Listen to Tod Docstader some time. It's complete arrangement of sound, with 3 tape machines and lots of things to record. In fact the only thing electronic is an old Heathkit test oscillator which has had the earth points disconnected to make it unstable. Computer music can be a bit like this too, but less 'hands on'.

My recommendation would be to look at Clavia's modulars (the micro and the newer G2. In fact both the micro and the G2 Engine have no keyboards at all, unless of course you choose to plug them in). These are really easy to grasp (no pun intended!).

CSound, Max/msp, SC et al all have one downfall, they all have severe learning curves, so if you choose to got that route, be prepared to wait rather a long time before you can create anything 'worthwhile' with them.

Personally I prefer to spend some time learning to play a keyboard and understanding intervals than swearing at my computer + monitor Laughing

Well i'm a bit confused about the Nord recommendation, i've tried the demo sometimes ago, and eventhough i'm sure it's a wonderful instrument, I thought it wouldn't allow enough flexibility in the midi department. And it's a bit out of my price range too Embarassed
Besides, if you recommended it as a way to delve deeper into SOUND, that's not what i want to do now. I'm very much aware of the technical aspects of electrnic music (soundwise), that's pretty much all i've been doing for a couple years.

But i feel the need to deepen my MUSICAL outcome, i want to find the right balance between composition in a classical sense and also in a "phuture-tweaking-a-303-to-the-next-level" way Very Happy .
As you mentionned i should probably just get piano lessions and read more about theory (which i definitely will at some point), but this doesn't feel like the thing to do just now for some reason...
Back to top
View user's profile Send private message
blue hell
Site Admin


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

PostPosted: Mon Apr 02, 2007 11:38 am    Post subject: Reply with quote  Mark this post and the followings unread

Maybe have a look at http://electro-music.com/forum/topic-7812.html and then maybe at http://electro-music.com/forum/topic-10436.html for some stuff on this forum that I got reminded on by this subject.
_________________
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
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 1:43 pm    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:
Maybe have a look at http://electro-music.com/forum/topic-7812.html and then maybe at http://electro-music.com/forum/topic-10436.html for some stuff on this forum that I got reminded on by this subject.

quite an humbling read !

I've only been through bachus' thread yet, a lot of insight there, eventhough our goals are totally different (and mine is much more modest).
I'm not aiming at making something that'd be able to generate a full score really...
I'd be more than happy if i could manage to make something that would allow me to make 16/8/4 bars variations and eventually work on the transitions between some selected 'presets'.

off to read xbeemer's thread

cheers
Back to top
View user's profile Send private message
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 3:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

I'll just quote mosc from one of the two aforementionned threads :
Quote:
There would be note number (freq), duration, volume, and many other parameters (user definable) for each note. A phrase is zero or more notes. Phrases could be generated and transformed by programs or functions that read them and and write them out. These programs might be generators (make new phrases) or analyzers (add annotation). Thus, given a phrase, one program might generate a harmony and another program might annotate the phrase with harmonic analysis.

Programs might take input phrases and generate movements based on some parameters that are specified in the same phrase language. For example, Bachus is interested in tonal music. Perhaps a special parameter phrase could describe harmonic movement.

Thus, a composition could be much like a unix shell program where generators are piped into harmonizers, counterpoint generators, rhythmic generators, orchestrators, movement makers, etc. You may have a really nice pipe that when fed different inputs would generate different music.


That's really pretty much what i have in mind !
He mentions working with phrases which is one on my main goals, and the modules structure is what i was thinking of.
Back to top
View user's profile Send private message
blue hell
Site Admin


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

PostPosted: Mon Apr 02, 2007 4:14 pm    Post subject: Reply with quote  Mark this post and the followings unread

Are you going to write a program yourself ? I assumed this from your first post, but after re-reading I'm not sure if you really wrote that.

Anyway, the user interface, that is how you would like to control your ideas, would be an imporatnt aspect I think. Howard' s ideas are still pretty abstract (in not directly suggesting a user interface), but my hope was that the threads I mentioned aboce might help you to get a better idea of the interface.

I'd not be much use helping you there I guess, as for me Tom's (v-un-v) idea of using the Nord Modular has become the preferred way. That however seems to go a more abstract road than you have in mind.

Maybe have a look at KeyKit .. ?

welcome BTW on the forum.

_________________
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
bachus



Joined: Feb 29, 2004
Posts: 2922
Location: Up in that tree over there.
Audio files: 5

PostPosted: Mon Apr 02, 2007 4:35 pm    Post subject: Reply with quote  Mark this post and the followings unread

I've never used keykit but from what I recall of reading some of the docs it might serve your purposes. It's free and the guy who wrote it sometimes shows up here. Anybody else want to comment on it?
_________________
The question is not whether they can talk or reason, but whether they can suffer. -- Jeremy Bentham
Back to top
View user's profile Send private message Visit poster's website
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Mon Apr 02, 2007 4:40 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hmm well i'm totally unexperienced when it comes to coding, so i'm not even thinking about doing this in C++ and he likes...

What i'm trying to do with this thread is get some insight from users of different music-oriented development platforms (probably not the best choice of words), to figure out which software is worthiest for this purpose.

The main flaw here is probably the lack of specifics regarding the inner workings, but as i have no previous experience with such things, i can only try to put the global concept into words and hope it makes sense for someone...


Also i've had a look at keykit sometimes ago, but was a little put off by the lack of ressources. And unless i missed it (see previous sentence) i couldn't figure out a way to use different modules in a user definable path (modular). I think data can only pass from a module to another through copy/paste type functions, which would probably prevent me from implementing the setup the way i envision it.
But tbh i sticked to the included modules and didn't have a good look at what's possible with the language.
I'll have another look at it.
Back to top
View user's profile Send private message
bachus



Joined: Feb 29, 2004
Posts: 2922
Location: Up in that tree over there.
Audio files: 5

PostPosted: Mon Apr 02, 2007 5:51 pm    Post subject: Re: I want to build a midi perfomance setup
Subject description: But i'm sweating over the different software options...
Reply with quote  Mark this post and the followings unread

disturb wrote:



I don't think that you can do what you want without a lot of coding. I think KeyKit is much more powerful than one can grasp without an understanding of the principles of programming. For example this statement regarding KeyKit:

"Function references can be passed as arguments, allowing parameterized operations to be specified in a flexible way. Variable numbers of arguments can also be passed around conveniently."

This says a great deal about it's power and the breadth of what it can do. If that sentence makes no sense to you, then KeyKit may be a good place to start learning "music programming." Because of its high level functions one could start doing something interesting but simple. I'll see if I can nudge some people who know more about KeyKit to address these generalities. May take a couple of days.

In any case I do not think what you want to do will be easy whatever program you choose. Then I can't say I've found much in life that was worth doing that was easy. Very Happy

BTW I know nothing of chuck and some of the other programs mentioned here which may be better suited to what you want.

_________________
The question is not whether they can talk or reason, but whether they can suffer. -- Jeremy Bentham
Back to top
View user's profile Send private message Visit poster's website
electroboz



Joined: Nov 29, 2006
Posts: 25
Location: Lyndonville VT USA
Audio files: 2
G2 patch files: 6

PostPosted: Mon Apr 02, 2007 8:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

if i may suggest. you should think about having a cheap midi keyboard. even if you cant play. you don't need lessons you can just noodle around. the more you play the keys the easier it becomes. it is by far easier to press some keys, hear a motive you like, and hit record then it is to put notes into a piano roll by hand. just a suggestion. my first keyboard was just a 2 octave controller. it works fine for coming up with a bass or lead line but i did grow out of it. its suprisingly easy to come up with great sounding stuff by recording into a 16 note looping sequencer.
just my 2 cents.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Tue Apr 03, 2007 4:35 am    Post subject: Reply with quote  Mark this post and the followings unread

@bachus : ok i'll have a better look at it, i'm warry with keykit i might have to do it all into one big module, as opposed to several specialized building blocks interconnected ; which seems to me less flexible and harder to do. I'm also unsure about the possibilities to actually control part of the application with midi, i'll check it out...

@electroboz : i do have a keyboard and fiddle with it quite often, it's just that i'm far from capable to play what i want.
But in this project, the keyboard would be used a lot ! Wether it is to capture a riff to tweak, or some sets of intervals for modifier modules, a simple rythm for a gate sequence, chords etc...
Back to top
View user's profile Send private message
Digiton



Joined: Jul 27, 2006
Posts: 146
Location: Brooklyn
Audio files: 3

PostPosted: Wed Apr 04, 2007 2:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
But i feel the need to deepen my MUSICAL outcome, i want to find the right balance between composition in a classical sense and also in a "phuture-tweaking-a-303-to-the-next-level" way Very Happy .

hell yes, i am right with you on that but look here i think in the broadest sense THERE IS NO DIFFERENCE BETWEEN THOSE TWO STATED POLES. OK when it comes to sound design, I usually think of computer based editing, synthesis, soundfiles, envelopes etc....but using pitchs in the 12 tone scale on acoustic instruments (ie stravinsky, debussy, bach), they are designing sound as well just on a less abstract level. On the flip side, artists that are considered NOISE artists like merzbow, hecker, tone, etc. just have a more corrosive, denser harmonic languge (making it more alienating) than socially and historically ingrained western music.
Just my two cents, and your ideas/ambitions seem great. So fresh compared to "i love aphex , i heard he uses max, can you tell me what he does to get his beats?" blablah Mad

_________________
Lets get it!
Back to top
View user's profile Send private message Visit poster's website
Digiton



Joined: Jul 27, 2006
Posts: 146
Location: Brooklyn
Audio files: 3

PostPosted: Wed Apr 04, 2007 2:57 pm    Post subject: Reply with quote  Mark this post and the followings unread

OH and disturb, check this shit out.......
http://www.obsolete.com/120_years/machines/free_music_machine/index.html

he is known mostly for VERY tonal (but beautiful) music, alot of "remixing" old irish folk tunes, but he had another bad ass side to him that due to technological restraints of the time could never be realized.

_________________
Lets get it!
Back to top
View user's profile Send private message Visit poster's website
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Wed Apr 04, 2007 4:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

thx for the kind word digiton, and yes i agree with you to some extent on the tight relationship of composition in a traditionnal sense and sound design.
Both benefit from the other, but i have yet to find out in which way my sound design will evolve with better composing skills...
I'm thinking of intertwining different sounds for each voice of a chord, and dynamically map the notes according to the voice leading and things like that. Sounds like fun...


Anyway, check this out guys : http://www.mloco.com/thesis/
Fun little thing, i like the idea of the visual feedback, i'll kep this in mind.

As an update on my project, i've been reading up a bit on algorythmic composition etc, i believe MAX is my best bet now.
Most of the papers i've found are implemented in MAX, and that will help getting started.

I'm starting to have a clearer sight on how it will work.
At the heart of the patch there will be a chord sequencer, a bit like the link above, but more flexible of course.
I'm thinking fuzzy logic will be a good way to get started on the mechanics of chord analysis etc.
I need to read up on colls, to find a way to dynamically display different sets of chords depending on the selected scale, and their level of consonance/dissonance.
Then it's gonna be all about building little modules that will use the data from the core of the patch, and alter the rythm, modulate pitches, arpegiate etc...

I'll look into key modulation at some point too, but i'll need to dig in music theory first !

Let me tell you that i'm way in over my head here, both on a theoritical and technical level (hey at least i'm honest :p) ; that will take me a lot of time i believe, and i'd be very glad if anyone would like to take part or help out in any way.

cheers


PS : This post probably is a little more specific about what this setup is about, so if anyone has some bright idea about a software that'd be more suited than max/mxp, speak now, cause i'll soon get started Smile
Back to top
View user's profile Send private message
Digiton



Joined: Jul 27, 2006
Posts: 146
Location: Brooklyn
Audio files: 3

PostPosted: Wed Apr 04, 2007 5:17 pm    Post subject: Reply with quote  Mark this post and the followings unread

in terms of COMPOSITION, i believe "your ear>music theory" if you catch my drift. not to stop you or anything, but its just my opinion. If your concerned about formal classical stuff, get some mozart mp3's cds, he rocks when it comes to how "classical" music is structured. Venetians snares rhythms? no. Stravinsky harmony? no. But its formal construction is of the hook! and beautiful too.
not to spam, but these two songs i recently posted (as with all my recent work) deals a lot with abstract sound/design and its relation/contrast to tonality (although sometimes I just like to get noisy Embarassed ). It might not be what your looking to do, but here is the link.
http://www.angelfire.com/planet/aveles/music/mf.mp3
http://www.angelfire.com/planet/aveles/music/sound.mp3
OKAY I'm outta here! good luck

_________________
Lets get it!
Back to top
View user's profile Send private message Visit poster's website
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18240
Location: Durham, NC
Audio files: 224
G2 patch files: 60

PostPosted: Wed Apr 04, 2007 5:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

Bachus alerted me to check out this thread.

Keykit is pretty much midi only, but it is IMHO the strongest language for algorithmic types of things because of the note/phrase structure quoted by disturb above. Keykit supports that exact concept.

In some ways, it's a great idea to separate the composition component from the sound generation components, but there are pros and cons to each approach.

Keykit is very modular. You can write functions to generate notes and phrases and pass those to other functions - much like one would do with patch cords. It is different from MAX/PD mainly because keykit uses code and MAX/PD is based on the graphical interface. Personally, I prefer code.

The keykit language is superb syntactically, again IMHO. For music, I would much much prefer writing in Keykit than C++. (Keykit isn't suitable for writing operating systems though.)

Your goals are appropriate but I think you'll have to spend some time looking at several alternatives before you find something that you will find something with which you will be most comfortable. Don't overlook ArtWonk.

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



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Wed Apr 04, 2007 6:43 pm    Post subject: Reply with quote  Mark this post and the followings unread

mosc wrote:
Bachus alerted me to check out this thread.

Keykit is pretty much midi only, but it is IMHO the strongest language for algorithmic types of things because of the note/phrase structure quoted by disturb above. Keykit supports that exact concept.

In some ways, it's a great idea to separate the composition component from the sound generation components, but there are pros and cons to each approach.

Keykit is very modular. You can write functions to generate notes and phrases and pass those to other functions - much like one would do with patch cords. It is different from MAX/PD mainly because keykit uses code and MAX/PD is based on the graphical interface. Personally, I prefer code.

The keykit language is superb syntactically, again IMHO. For music, I would much much prefer writing in Keykit than C++. (Keykit isn't suitable for writing operating systems though.)

Your goals are appropriate but I think you'll have to spend some time looking at several alternatives before you find something that you will find something with which you will be most comfortable. Don't overlook ArtWonk.

hi mosc, thanks for the answer.

Since you seem to know keykit, could you enlighten me on a few things ?

I've had a quick look ath the docs, and the langaugae sure is quite adapted to the kind of manipulations i'm after, things like :

Quote:
chadjust(melody,chords)
Adjusts the notes of the melody phrase so that they fall on the notes of the chords that are playing (at the same time) in the chords phrase.

make it look like it's full of potential, and would provide me with core functions more adapted to my purpose (something like the quote above must take a faire bit of patching in max, and there are tons of gems like that in keykit).


But i fail to realize if in use, it provides what i'm looking for, in terms of modularity, and in its capability to control from the gui/midi input, different variables in the processing modules.
For example, could you use something like a step sequencer tool, that'd generate a gate sequence used at the same time to define the groove of an arpegiator, and influence its randomness based on the steps' lengths ?
Not sure i'd want to do just that, but that's the knid of modularity i'm after.
Basically i just want to define modules that do 'stuff' and influence the way they'll do it over time using onscreen sequences, keyboard iinput etc.

I guess i just need to delve into the code's documentation to figure things out
Back to top
View user's profile Send private message
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Wed Apr 04, 2007 8:35 pm    Post subject: Shameless plug for my SC work! Reply with quote  Mark this post and the followings unread

Hi disturb,

This sounds a lot like what I am doing in SuperCollider. I'm not quite there -- I have yet to tackle the problem of handing control from live MIDI note input to algorithmic sequencing seamlessly (with the key word being "seamlessly" -- I can get the MIDI notes in in real time, and I can feed them into algorithmic processes, but doing it without a perceptible break is something I haven't figured out yet).

You might be interested in some of the elements of my framework:

  • ModalSpec -- Converts MIDI note numbers into a modal representation, preserving accidentals. You map the notes onto the mode for storage and processing, then map them back onto note numbers at play time. If you're using open sound control for note triggering (that is, with SuperCollider's native synth or another OSC-compatible sound module), I have some companion classes for non-ET tuning.

  • MIDIRecBuf -- A container for note data. Includes built-in methods for quantizing the notes, and parsing them to identify chord notes and grace notes. Grace notes, for instance, get "attached" to the following main note, which has a whole bunch of advantages. When you're manipulating the note data algorithmically, you don't have to worry about separating a grace note from its main note and thereby getting unwanted results. Also, when quantizing, the grace notes won't mess up the calculation. The main note gets quantized, and the grace note is adjusted to fit in proportionally.

    Parsed notes know how to stream themselves out in order, so it's very easy to sequence with them after processing.

  • I have several prewritten "process prototypes" that hide the really complicated flow of control from the user, and expose parameters that you can use to plug in your own note processing algorithms. I get a lot of mileage out of them. The problem right now is that I haven't had time to document them well, so you might have to ask me a lot of questions by e-mail which I might not always be able to answer quickly.

    But I think it has a decent amount of power. I didn't want to have to rewrite an algorithmic sequencer from scratch for every line of a texture -- I wanted to write little code bits for reusable, customizable algorithms and then reference them by name in the process parameters. (That is, modularity and reusability were TOP design considerations.)

    For just an example of the kind of power, the choice of algorithm on each iteration can even depend on the note data. So, in one piece I added up the note durations and if they were greater than a threshold, I would weight the choice of algorithm towards functions that would delete notes (make the phrase shorter); otherwise it would tend to expand the phrase. The result was a line that breathed organically on the macro scale, gradually inflating and deflating. I was delighted when I realized what it was doing, because the code I had to write outside the process prototype was actually pretty simple.

  • Also important is that the note output mechanism is abstracted away from the sequencing code, so you can choose which output device to use with only minimal changes. I use scsynth, the native audio engine, exclusively, but you can also use MIDI output, for example. (That's not unique to my library; it's a feature of the pattern-stream protocol in general. "Pattern" in this sense does not mean an n-step sequencer; it's much more powerful.)


Is that enough of a sales pitch? Razz Oh yes, and it is all geared toward realtime use.

James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
mosc
Site Admin


Joined: Jan 31, 2003
Posts: 18240
Location: Durham, NC
Audio files: 224
G2 patch files: 60

PostPosted: Thu Apr 05, 2007 8:44 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
But i fail to realize if in use, it provides what i'm looking for, in terms of modularity, and in its capability to control from the gui/midi input, different variables in the processing modules.


There are many functions like, chadjust. These are not part of the language itself, but part of a huge library of functions that come with it. These functions are written in keykit. The variables, in this case melody and chord, could be functions themselves, and usually are. It is very modular. Keykit is also superb for live midi processing.

You can also use global variables. Phrases are variables too, of course. So it would be easy to write a function that changes its function in real time.

The graphical interface of keykit is written in keykit, so you can write you own gui widgets if you want. But, you should realize that if you aren't interested in writing code, keykit, like ChucK, SuperCollider, etc. aren't for you.

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



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Thu Apr 05, 2007 10:35 am    Post subject: Reply with quote  Mark this post and the followings unread

@ James : WOW, this sounds mighty impressive ! Seems like we're on the same wavelength.
Your sales pitch really made its effect indeed, your design takes into account pretty much all the things that are crucial to me ; i really liked the part about the modularity, and the way you handle grace notes in the midi buffer seems really clever...
Too bad, that's another option to seriously consider Wink


I have a few questions for you, if you don't mind :

-Your website seems like a very cool SC resource too, I was wondering if the patch you talked about is the one available there, tarball, since you seemed to imply i'd be able to check it out, but i'm not sure it is what you're refering to...?
-When you mention your problem with what seems like latency with midi control, is it because of the too heavy computational problem, or something more SC specific ? Live tweakability is really crucial for me.
-Is your framework geared towards tonality (seems so, but i'd rather make sure)? Is tonality something that's easy to handle in SC ?
-Is SC really a stable platform on windows system (eventhough you seem to be a mac user)? I seem to recall people mentionning a lot of instabilities on xp, maybe that's been fixed.
-And finally, did you dvelop this on SC because you were already using it, or did you purposefuly chose it for this framework ? If you had to make a choice between SC and another application, what tilted the balance in favor of SC ?


@ mosc : hell this seems pretty convinient. And i'm unsure if code actually bothers me or not, i'll have to learn something new from scratch anyway...
Back to top
View user's profile Send private message
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Thu Apr 05, 2007 8:38 pm    Post subject: Reply with quote  Mark this post and the followings unread

It is available on my web site. There are two packages: dewdrop_lib, which contains more fundamental support classes, and something I currently call "chucklib" but whose name I will probably change at some point (because you might get the idea from the name that I'm trying to duplicate some of the structures of ChucK, but that isn't the case).

Documentation for dewdrop_lib is in pretty good shape; for chucklib, it's very spotty. One of the files has some examples, but they just scratch the surface. Most of the features are not documented yet.

There are a couple of problems remaining with live MIDI input. First, I had it working early on but then changed some structures internally in the process prototypes. That part of it is still buggy (but this conversation motivates me to dig in and fix it). Second is the problem I mentioned about handing control over seamlessly. The problem there is not computational requirements -- all the sequencing stuff is very cpu-cheap. Rather, it's that to ensure proper timing, sequencing routines in SuperCollider should execute slightly ahead of the time they're supposed to sound. Messages to scsynth can have a timestamp slightly in the future, so that small variations in the time it takes to transmit the message can be corrected. But, live MIDI input should have no timestamp so that the sound occurs as quickly after receiving the MIDI message as possible.

It's a time travel problem -- if you stop MIDI input precisely at beat 100.0, but your sequencing routine should have started at beat 95.5 so that it can make sound exactly at 100.0, how do you travel back in time to start the routine? Don't have a good answer for that yet... but talking through it here gives me a couple of promising ideas. Probably messing around with the timestamps would do it.

SC has built-in methods like keyToDegree and degreeToKey which convert between scale degrees and midi key numbers. I wanted more flexibility and a consistent way to store scale definitions, hence ModalSpec. Short answer, yes, you can do a lot with traditional or novel scales in SC.

Windows... still under development. You can get started learning the language but I can't consider it quite ready for prime time. It's not unstable in the sense of crashing a lot, but the scheduler chews up cpu like a dog who got into your sneakers -- everything is perfectly responsive but task manager shows your cpu pegged. I'm also not sure if MIDI is supported in Windows yet Sad

You might be better off setting up a Linux partition on your HD. The word "Linux" scares a lot of people but actually it's very pretty. (I sometimes joke about Linux but honestly, if OSX ever ceased to be a viable option [the Woz forbid], I would go to Linux sooner than Windows without a second thought.)

I chose SC the second I saw how powerful and efficient it is. I kind of stumbled forward at first with some structures that were not very powerful, and after a near failure in a performance... three years ago, gosh, doesn't seem that long... I reassessed my needs and rebuilt how I wanted to do sequencing from the ground up. That investment has paid off many times over.

James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
disturb



Joined: Mar 31, 2007
Posts: 15
Location: france

PostPosted: Sat Apr 07, 2007 9:22 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks for the answer James, still processing all this info Smile

BTW, i just found out that IRCAM's OpenMusic is open source, seems like the distribution fo linux has started, and windows seems to be on its way, anyone ever tried this program ?
Looks like everything i could wish for...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Moderators: elektro80
Page 1 of 3 [52 Posts]
View unread posts
View new posts in the last week
Goto page: 1, 2, 3 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Discussion » Composition
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