MIDI Generating LFOs Pt. 2

After some time of pro­cras­ti­na­tion and a brief period of inspi­ra­tion I finally got around to fur­ther devel­op­ing the project that I started in my pre­vi­ous post on MIDI Generating LFOs. There are two big addi­tions included in the sec­ond ver­sion of this patch. The first is that I bor­rowed some aspects of Gregory Taylor’s excel­lent new tuto­r­ial on the Cycling 74 web­site, and the sec­ond is that I added TouchOSC sup­port to cre­ate cooler ways of con­trol­ling the new para­me­ters. Here is a short exam­ple of what it sounds like through one of my favorite synths.

Audio clip: Adobe Flash Player (ver­sion 9 or above) is required to play this audio clip. Download the lat­est ver­sion here. You also need to have JavaScript enabled in your browser.

LFOs2

In my pre­vi­ous post, I pre­sented a list of things to work on for the next ver­sion. I got around to some, but not all of it, and despite not want­ing to put forth poorly done projects on the inter­net, I just decided to let this one go in its cur­rent state. I’ve taken it about as far I as care to for the moment. The list from my pre­vi­ous post look like this:

The Future

I don’t con­sider myself any­where near being done with this project. While writ­ing this post I real­ized a few things that I could have done better.

  • The idea of scal­ing the LFO’s out­put (-1 to 1) to match a series of notes is cool, and if those series of notes are an aurally pleas­ing scale that’s even bet­ter, how­ever I think I could improve the way I am doing this. Once I started play­ing with the LFOs I noticed that scal­ing the out­put down to just 8 notes some­times doesn’t gen­er­ate all that much vari­ety. On top of that, if we use a full major scale for instance, with cer­tain para­me­ters the LFO might get suck undu­lat­ing between the 4th and 7th tones in the scale, which might not exactly be the sound you are going for. In the next ver­sion I am plan­ning on using less tones over more octaves. Maybe instead of the full scale, just the tones that I think will fit nicely, then have them span over maybe 3 octaves to give the LFOs more range to gen­er­ate num­bers within.
  • Using only one LFO to gen­er­ate veloc­ity val­ues seems to lend itself to fairly pre­dictable val­ues being out put. For instance a sin­gle square wave will pro­duce a very high veloc­ity, fol­lowed by very low one, then a high one again….etc. The sec­ond audio clip is a good exam­ple of this. In the case of that sam­ple, I think it cre­ated a sort of cool bell-like sound with the syn­the­sizer, but it doesn’t have much ver­sa­til­ity. For the next ver­sion, I think I’ll also add another one, or two, LFOs that can be summed together for veloc­ity val­ues and see how that effects things.
  • As much as I enjoy star­ing at all of this overly com­pli­cated look­ing mess, I think I’ll also have to spend a bit of time work­ing out some more use­ful and infor­ma­tive GUI ele­ments in Max 5’s pre­sen­ta­tion view.
  • Lastly, mak­ing LFO gen­er­ated Synth parts that move with a har­monic pro­gres­sion is all fine and dandy, but it doesn’t mean much unless I can link it up with an exist­ing com­po­si­tion, and have a full song to show off. That will be my work for the next week or so, hope­fully some­thing totally awe­some will come of it

The first prob­lem I had was the note val­ues inside the [coll] objects. I changed the note val­ues in each [coll] object to a pen­ta­tonic scale over 5 octaves (the range of my key­board). I made some adjust­ments to the scales I am using and when they get trig­gered to go with another song I am cur­rently work­ing on. To me this pro­vided much bet­ter results. If you lis­ten to the audio exam­ples from my first post there are points when the note sequences sound a lit­tle off, I think the exam­ple above sounds a lit­tle more nat­ural, at least in terms of some­thing that is com­pletely com­puter generated.

I also made the obser­va­tion that using only one LFO to gen­er­ate the veloc­ity data was a lit­tle bor­ing for me, so I did go ahead and add another LFO. Now, on the right side of the patch you can sum together 2 LFOs to gen­er­ate MIDI veloc­ity data. Realistically, at this point I was start­ing to feel a lit­tle like Spinal Tap brag­ging about amps that go to 11. Why not just make the orig­i­nal LFO more use­ful? In fact, that is exactly what some of the other addi­tions from Gregory Taylor’s tuto­r­ial did, which I’ll get to later.

The third goal I gave myself was to add some improved GUI aspects to the patch, which I did do to cer­tain extent. What you see in the pic­ture above is essen­tially the bare min­i­mum you need to use the patch. The left side con­trols gen­er­a­tion of note val­ues, and the right side the veloc­ity data. You can view each indi­vid­ual LFO that you are using and the summed result underneath.

The new slid­ers and the win­dow on the right of each side of the patch are what I took from Gregory Taylor’s tuto­r­ial. For an in depth expla­na­tion of what is going on with these con­trols I would highly rec­om­mend read­ing the tuto­r­ial. What I use them for here is to solve the prob­lem of select­ing an appro­pri­ate range for my data out­put and, bet­ter yet, per­form­ing real­time adjust­ments. Being able to play with the veloc­ity para­me­ters and “move” around the range that I am work­ing in gen­er­ates a much more inter­est­ing piece. Also, mov­ing up and down, scal­ing the ranges of notes the LFOs uti­lize allows me to focus on cer­tain tim­bers at dif­fer­ent times through­out a progression.

I’d like to offer a big thanks to Gregory Taylor for solv­ing a whole bunch of prob­lems for me!

Finally, being able to “mouse” around with all of these para­me­ters to make sound is cool and geeky, but I thought it would be bet­ter to use TouchOSC to con­trol my patch. I thought at first that using slid­ers would be the thing to do, but after some con­sid­er­a­tion I real­ized that two xyPads would be the way to go.

XYPadI used the 2 xyPads on the 3rd page of the Mix2 lay­out. The pic­ture here is rotated to the left ’cause that’s the way I like to hold my iPod when using TouchOSC. I pro­grammed my patch so the X value of each Pad con­trols the ran­gle of val­ues to be used by the LFO’s out­put data. As you move from left to right on the Pad, the bar on the [rslider] gets wider indi­cat­ing a larger range of data from inside the [coll] can be used. The Y value of each pad allows you to move the selected range data up and down within the entire range of what is inside the [coll] you are using. As you move up and down, the grey bar on the [rslider] will stay the same size, but will move up and down though the whole range of the [rslider].

The red xyPad is used for con­trol­ling note data, and the green  one for veloc­ity data. Playing the para­me­ters of my new patch with xyPads was prob­a­bly the best thing for the patch. Finally an effi­cient way of manip­u­lat­ing the range and veloc­ity of ran­dom­ness with­out hav­ing to stare at my lap­top and keep one hand on the mouse at all times.

After hav­ing some fun with the xyPads, as one final addi­tion, I decided to add a slider that would move through the var­i­ous time val­ues for each note being gen­er­ated. I got kind of bored hear­ing straight notes all the time and thought this might be a cool way to add some variety.

MIx2frontpage

I used the red slider on the first page of the same Mix2 lay­out. Using this slider you can increase the time value of the notes being gen­er­ated. This also effects the time val­ues for the veloc­ity data being trig­gered. This might not always be the best thing, but its the way I am doing it at the moment.

That’s about it for where I am right now. Once again, I am post­ing this patch on my down­loads page. If you have TouchOSC, and want to use it with this patch you will have to adjust the IP address and Incoming Port to what­ever you are using before it will work .

Please feel free to leave com­ments or write me and email and tell me what you think.

Share and Enjoy:
  • Facebook
  • Twitter
  • Digg
  • Reddit
  • Technorati
  • del.icio.us
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • MySpace
  • Fark
  • Tumblr

Tags: , , ,

Leave a Reply

Trackbacks