part of revolution with [line~]


    May 30 2006 | 4:15 pm
    Hello,
    First, I would like to say I really agree with one of the stickies, that's a shame that people forward private mails from the forum, it's really annoying.
    Second, I would like to ask you something (and I will not spam you with it) about the use of [line~]. Nowadays, I try to build a patch based on "pan4S-help"(which you could know if you are interested in spatialisation of the sound). And, in it, [line~] allows to inject values in [pan4S], so that it is both possible to chose one in 4 speakers (left, right, left rear, right rear), and to make revolutions of the sound between them.
    Make a revolution interests me a lot, but I need to make it more accurate, to make, for instance, a half or a quarter of a revolution. I managed to make it in clockwise but not counterclockwise... so what are the three or four arguments I can "inject" as values into an [line~] object ?
    Apologies for my english if it is not good (I am french and not very used to writing english). Cheers
    Manu

    • May 30 2006 | 4:52 pm
      Your english is better than my french will ever be.
      Send line~ a list in doubles: Value[0] duration[0] value[1] duration[1] ... Value[n] duration[n]
      Like this; [pack 1 100 0 500 1 1000 0 10]
      If clockwise looks like this: 0 0 1 1000, (jump to value 0. move to value 1. over 1000 ms) then counter-clockwise would look like this: 1 0 0 1000, (jump to value 1. move to value 0. over 1000 ms)
      hth -lcc
    • May 30 2006 | 5:20 pm
      If you want to make revolving sounds, this will be much easier with ambisonic technique - panning over four speakers can never be ideal. There are some ambisonic objects around, but for simple revolves you can knock up a quick patcher. Here are three small abstractions I keep handy:
      2sfcreate~ creates a 2d soundfield, with X, Y and W components in b- format. You can input either a rotation speed or an absolute position in degrees (use line on this to create you precise arcs.
      2sfmixrot~ mixes several soundfields together, and allows you to rotate the whole of the resulting soundfield.
      2sfdecode4~ decodes the b-format for a square four speaker setup - it is easy to adapt for other speaker arrays.
      The formulae are all in an article by Dave Malham and Tony Myatt in CMJ Vol 19, No 4
      Hope that helps
      Lawrence
    • May 30 2006 | 5:22 pm
      thanks, but I am aware that French is pretty hard to practice, particularly when it's written. Whatever, I haven't expected an answer that quick ! But, a problem remains because I have no brains. I am not sure to understand the "logic" of the difference clockwise and counterclockwise. For these two lists you took as an example : 0 0 1 1000 1 0 0 1000 is the second one counterclockwise because it is the opposite as the first one (100 would be the opposite of 001) ? And if it is, why a 0 is needed at the beginning of "001" and at the end of "100" ?
      Cheers, sorry if I bother you Manu
    • May 30 2006 | 5:47 pm
      Thank you, it could be useful, but could you just answer to my question please ? (I am curious)
      thx Manu
    • May 30 2006 | 6:13 pm
      Ah yes.
      So if a line~ out puts a ramp starting at a value of zero and moving to a value of one, and that drives a clockwise panning curve, then it could be safe to assume that a line~ which outputs a ramp starting at a value of one and moving to a value of zero will drive a counterclockwise panning curve.
      About that 0 0 and 1 0 part of the list. This is used to make line~ jump to that value with out interpolation. This guarantees that the ramp which line~ generates will start at a specific location, rather than interpolating from wherever its current location might be.
      There may be some tutorials on the line~ object in the MSP documentation. They may be worth reviewing for this project.
      -lcc
    • May 31 2006 | 3:07 pm
      thank you very much :)