Zyklus Improvisor, real-time harmonic sequencer
-
- KVRist
- Topic Starter
- 261 posts since 14 Apr, 2006
Let me shine some light on how Improvisor is a Max program but uses (mostly) Java for its internal workings.
The only things that are purely Max in Improvisor are its GUI, timing objects, midi in/out objects and some few routing objects. 90% is Java I guess. The reason for using Java is simple: 1) Improvisor is too complex to be a pure Max program and 2) the language C was not an option because the learning curve was too high for me back then. Keep in mind, I had to learn Java from the start when developing Improvisor. Programming OTOH was not new, years of Delphi under my belt. If Delphi only had some more midi and timing components as Max have, I never touched Max again, at least not for a program like Improvisor.
Improvisor doesn't use [seq] or [mtr] Max objects; it's all done using object arrays being scanned in Java when the appropriate tick arrives. Reading and writing files are also Java, only the dialog windows are provided by Max. Harmonizer code is Java. As a rule of thumb, everything that could be done in Java, is Java. The main reason for this is I'm more comfortable working with an IDE like Eclipse then patching objects in Max.
Pitch bend and other controller data are excluded from sequencing because I was afraid that my scanning routine was not fast enough to handle 32 sequences for example full with pitch-wheel data. It's funny however that as the moment we speak I'm rewriting this part of code so you can record and loop pitch bend and controller data. There will be one more update of the current version after all.
Import/export midi files is something I want to try on the next version.
The only things that are purely Max in Improvisor are its GUI, timing objects, midi in/out objects and some few routing objects. 90% is Java I guess. The reason for using Java is simple: 1) Improvisor is too complex to be a pure Max program and 2) the language C was not an option because the learning curve was too high for me back then. Keep in mind, I had to learn Java from the start when developing Improvisor. Programming OTOH was not new, years of Delphi under my belt. If Delphi only had some more midi and timing components as Max have, I never touched Max again, at least not for a program like Improvisor.
Improvisor doesn't use [seq] or [mtr] Max objects; it's all done using object arrays being scanned in Java when the appropriate tick arrives. Reading and writing files are also Java, only the dialog windows are provided by Max. Harmonizer code is Java. As a rule of thumb, everything that could be done in Java, is Java. The main reason for this is I'm more comfortable working with an IDE like Eclipse then patching objects in Max.
Pitch bend and other controller data are excluded from sequencing because I was afraid that my scanning routine was not fast enough to handle 32 sequences for example full with pitch-wheel data. It's funny however that as the moment we speak I'm rewriting this part of code so you can record and loop pitch bend and controller data. There will be one more update of the current version after all.
Import/export midi files is something I want to try on the next version.
-
- KVRist
- Topic Starter
- 261 posts since 14 Apr, 2006
Uh, no. Although Java is used extensively it's still a Max program. See it as Java embedded, using a special Max object, inside the Max program.stanlea wrote:So could it work under Linux ?
-
- KVRer
- 15 posts since 3 Oct, 2006 from Transylvania NY
thank you Bert for that detailed explanation above^^^, the inside of the program makes a lot more sense to me now.bronswerk wrote: Pitch bend and other controller data are excluded from sequencing because I was afraid that my scanning routine was not fast enough to handle 32 sequences for example full with pitch-wheel data. It's funny however that as the moment we speak I'm rewriting this part of code so you can record and loop pitch bend and controller data. There will be one more update of the current version after all.
Import/export midi files is something I want to try on the next version.
sometimes when trying to learn a protocol it helps to look at previous developers work, learn by example, your program certainly left me with more questions than answers in MAX.
happy to hear you still have a few tricks up your sleeve and you haven't thrown in the towel after all.
I tried for a while to use this program in a live setting but it just proved to be to hard to trigger/re-trigger all those tracks/scenes with a foot controller while playing midi instruments with my hands and feet, one track with multiple channels proved to be better for me (simple bass and drum backing track type stuff)
I suppose it would be perfect for a DJ or someone used to mostly using hand controllers to create/manipulate patterns, like a dedicated keyboard player.
the Xposer was my favorite tho, being able to step through patterns with a single note trigger worked well with a footar and allowed me to do things my other midi loopers currently can't do.
oh, and now that you might include other controller data this will be great for storing sweeps (eg. bass velocity ramps, pitch) can actually be used as a live synth bass effect controlling the notes you are currently playing when mixed in an external midi stream.....(think Hot Hand, dubstep, source audio type stuff).
keep up the good work bro!
jerm
-
- KVRer
- 15 posts since 3 Oct, 2006 from Transylvania NY
Usine would be perfect for you then, it is developed in Delphi, uses objects/modules like MAX and makes it easy for users to connect them.bronswerk wrote: Programming OTOH was not new, years of Delphi under my belt. If Delphi only had some more midi and timing components as Max have, I never touched Max again, at least not for a program like Improvisor.
keep shinin
jerm
-
- KVRist
- Topic Starter
- 261 posts since 14 Apr, 2006
Not exactly what I had in mind. I love Delphi's IDE and language and all what I need is a few midi in/out components that handles the low level midi stuff and a good timing component that provides a stable midi tick.jeremysdemo wrote:Usine would be perfect for you then, it is developed in Delphi, uses objects/modules like MAX and makes it easy for users to connect them.
I have the recording of pitch bend and controller data working. In the program there's behind the scenes an "control event" list running parallel with the notes list. Some more tests are needed, but it looks good for now.
-
- KVRer
- 15 posts since 3 Oct, 2006 from Transylvania NY
well the only advantage I could see over MAX with Usine is the ability to export projects as VST's.
if memory serves me correct earlier versions of MAX/mps (before 5) used to allow this with Pluggo which was buggy....I don't think pluggo is even supported anymore...
obviously a Vst can rely on any users DAW for timing...problem eliminated?
can't wait to test out the new toy...
is there a file I can replace in my existing program to get it up to speed?
or do I need to download whole new build?
jerm
if memory serves me correct earlier versions of MAX/mps (before 5) used to allow this with Pluggo which was buggy....I don't think pluggo is even supported anymore...
obviously a Vst can rely on any users DAW for timing...problem eliminated?
can't wait to test out the new toy...
is there a file I can replace in my existing program to get it up to speed?
or do I need to download whole new build?
jerm
-
- KVRist
- Topic Starter
- 261 posts since 14 Apr, 2006
Yes, making VST's is cool, that's a miss in todays Max, bummer. Zyklus Improvisor OTOH was never intended to be a VST anyway. About the timing, Max has stable clocks on board when running Improvisor as a stand-alone, no problem. If however Improvisor is used as a slave, meaning listening to midi clock coming from a daw, I've programmed a special part in Max that takes the average timing of the last 8 midi clock messages that was received from the daw and does this continuously. In practice this gives (at least over here) very good results. If I record the midi output from Improvisor in Cubase and see how close those notes are lying to the grid lines in the key editor I always check if auto quantize was not accidentally on. It was not so very good results if I may say. YMMV.jeremysdemo wrote:well the only advantage I could see over MAX with Usine is the ability to export projects as VST's.
if memory serves me correct earlier versions of MAX/mps (before 5) used to allow this with Pluggo which was buggy....I don't think pluggo is even supported anymore...
obviously a Vst can rely on any users DAW for timing...problem eliminated?
can't wait to test out the new toy...
is there a file I can replace in my existing program to get it up to speed?
or do I need to download whole new build?
jerm
Whenever there is a new update, it's best to "install" all files. In Improvisor case there is no install actually, only a copy of a folder to your destination of choice and start the exe file from there. It's noted that in this case your old songs won't work anymore because of the changed song file format hence the extra controller data that can be recorded.
-
- KVRer
- 1 posts since 21 Oct, 2012
Hello, I just joined KVR audio now so I could write to you on this thread. I work as a programmer and the youtube video I just watched with you showing how the Improvisor works is simply amazing. It is the tool every computer music composer should have. Simply great.
I am not a professional musician but I like to mix programming and music whenever time allows. I am almost 40 and I've been fiddling with audio and computers since I learned my first Qbasic programming skills back in the DOS era!
Now, I find this amazing tool called Improvisor.
I'll see if I can install it here in my computer. Any tips to dodge any known pitfalls?
I'm very excited about trying your Improvisor. Really a great job what you are doing here.
Cheers,
Daniel
I am not a professional musician but I like to mix programming and music whenever time allows. I am almost 40 and I've been fiddling with audio and computers since I learned my first Qbasic programming skills back in the DOS era!
Now, I find this amazing tool called Improvisor.
I'll see if I can install it here in my computer. Any tips to dodge any known pitfalls?
I'm very excited about trying your Improvisor. Really a great job what you are doing here.
Cheers,
Daniel
- KVRAF
- 13863 posts since 19 Jun, 2008 from Seattle
Can't this "MIDI file" (for direct "import") be predefined with the necessary/appropriate elements, and those which should/must be excluded, thereby circumventing any real or imagined (current) limitation to loading MIDI sequences?bronswerk wrote:@UncleAge
Using standard midi files is something I thought about, but what if there's all sort of data that ZI can't handle at the moment? I would have to scan the file, check for errors, transform it into the appropriate format that ZI uses etc. Technically very difficult..
Notwithstanding there will always be something someone wants/needs/must-have, but considering everything Zyklus Improvisor DOES ~ I'm thinking most users would be delighted with any type of "import".
Creating a usable sequence, or stripping a MIDI file of things that won't "translate" is not difficult.
[2c]
I'm not a musician, but I've designed sounds that others use to make music. http://soundcloud.com/obsidiananvil
-
- KVRAF
- 1769 posts since 30 Jul, 2007
Sorry, I do not want to go through each page on this thread, but can I download this for my windows 7 PC?
Thanks
Thanks
-
- KVRist
- 327 posts since 13 Jan, 2006 from top down
-
- KVRer
- 15 posts since 3 Oct, 2006 from Transylvania NY
it worked better for me with Java 6 than 7, (on Windows XP pro).danielmonte wrote:
Now, I find this amazing tool called Improvisor.
I'll see if I can install it here in my computer. Any tips to dodge any known pitfalls?
Cheers,
Daniel
other than that there really wasn't anything to install, the app is just a folder and you launch the .EXE file from there to run it.
on one of my systems (on O.Q.O. UPMC) I did have to install a Microsoft re-distribution package 2010 but that was it.
keep shinin
jerm
-
- KVRer
- 15 posts since 3 Oct, 2006 from Transylvania NY
the only way I know how to get it is to join the Zyklus Yahoo group and ask bert to send you a link to the file.vaisnava wrote:Sorry, I do not want to go through each page on this thread, but can I download this for my windows 7 PC?
Thanks
He's happy for beta testers specially with the new build for CC data recording.
keep shinin
jerm
-
- KVRer
- 2 posts since 27 Dec, 2012 from West Midlands UK
This is very interesting.
I was pointed to this by a friend, been out of the industry for years.
Bill Marshall, was one of the founders of Zyklus, along with myself and
Peter Kellock. I was the MD of the company.
Its gratifying to know that our ideas are finally being taken up.
In some ways I am amazed that this has not been developed sooner.
Given modern hardware, processing power and software tools.
Pete and myself developed the original Zyklus MPS code in about 8 months.
Would be great to have a follow up
Good Luck with the project
I was pointed to this by a friend, been out of the industry for years.
Bill Marshall, was one of the founders of Zyklus, along with myself and
Peter Kellock. I was the MD of the company.
Its gratifying to know that our ideas are finally being taken up.
In some ways I am amazed that this has not been developed sooner.
Given modern hardware, processing power and software tools.
Pete and myself developed the original Zyklus MPS code in about 8 months.
Would be great to have a follow up
Good Luck with the project
