Convolution reverb


    Dec 21 2006 | 7:37 pm
    Hi all,
    Has anyone implemented a convolution reverb in MaxMSP that would be willing to share their patch(es)/code with me? I'm putting together a project assignment for a MaxMSP class next semester, and would love to have some good examples to share with the students. I need something that only uses 'standard' MaxMSP objects/externals.
    Thanks,
    Steven
    ---- Steven M. Miller
    Associate Professor of Contemporary Music College of Santa Fe Contemporary Music Program 1600 St. Michaels Drive Santa Fe NM 87505 http://pubweb.csf.edu/~smill (505) 473-6197
    ~~~~~~~~~~~~~~~~~~~~~ SFIFEM Atrium Sound Space OVOS *opportunities for composers & sound artists*

    • Dec 21 2006 | 9:36 pm
    • Dec 21 2006 | 10:45 pm
      Most probably the technique you want here is partitioned convolution, which basically is that rather than doing the entire convolution in one go (which would be a problem anyway for larger impulses given limitations on the pfft~ FFT size), you take smaller nibbles through the impulse, thus giving you realtime output on the reverb. Unfortunately I do not have a patch to do this, but I strongly suspect it should be quite feasible as a pfft~ subpatch.
      There are a couple patents out on this technique (see http://tinyurl.com/ygokmh ) though in some views these patents are disparaged on the basis of the technique being super-obvious and/or the existence of prior art. IANAL but it seems at least remotely possible that posting a solution might infringe one of these patents. Please please please someone tell me I'm wrong about that.
      Eric
    • Dec 22 2006 | 4:00 am
      On 12/21/06, Eric Lyon wrote: > > > There are a couple patents out on this technique (see > http://tinyurl.com/ygokmh ) though in some views these patents are > disparaged on the basis of the technique being super-obvious and/or the > existence of prior art. IANAL but it seems at least remotely possible that > posting a solution might infringe one of these patents. Please please please > someone tell me I'm wrong about that.
      IANAL either, but i believe it's only an issue if you plan on selling something that makes use of the patented material.
      -j
    • Dec 22 2006 | 7:06 am
      Hi Steven,
      you can find snapshots of some patches here:
      I never managed to get this fully working when trying to reproduce from the images, but if you do, please post the patches on the list. In addition you can find an external for convolution here:
      Best, Trond
      > > Thanks for your message. Convolution of two soundfiles or two live > input sources, for example, is pretty straightforward with the > existing fft objects. What I'm looking for is someone who has used an > impulse response file and convolved audio files or live input with it. > The trick there is that each new input sample gets convolved and added > to each past input sample convolved with the corresponding impulse > sample; i.e. each input sample 'steps through' the impulse response > file for convolution and gets added with the current input sample. > (This is a generalized description of the process, mind you). > > At any rate, any thing you have that I could look at would be helpful > and appreciated. Thanks! >
    • Dec 22 2006 | 1:35 pm
      > > > IANAL either, but i believe it's only an issue if you plan on selling > something that makes use of the patented material. > >
      I'm sure it's fine to make it just for yourself. But I suspect that distributing it irrespective of price (including free) could be construed as a violation.
      Eric
    • Dec 22 2006 | 1:58 pm
      Depending on your jurisdiction, even using patented material for your own personal use may be an infringement.
      There is plenty of information on the web regarding patent & other intellectual property law. Just make sure you read about the country you're in, because what pertains to US law can be different in UK or Germany or Papua New Guinea or wherever. (quel surpris)
      PS to Eric: you'll find UK IP legislation a bit more restrictive than what you were used to in the US. OTOH, at least they recognize the notion of moral rights, which the US hasn't implemented despite signing on to Berne.
      -- P.
      On 22-Dec-2006, at 13:35, Eric Lyon wrote:
      >> IANAL either, but i believe it's only an issue if you plan on selling >> something that makes use of the patented material. >> >> > > I'm sure it's fine to make it just for yourself. But I suspect that > distributing it irrespective of price (including free) could be > construed as a violation.
      -------------- http://www.bek.no/~pcastine/Litter/ ------------- Peter Castine +--> Litter Power & Litter Bundle for Jitter Universal Binaries on the way iCE: Sequencing, Recording & Interface Building for |home | chez nous| Max/MSP Extremely cool |bei uns | i nostri| http://www.dspaudio.com/ http://www.castine.de
    • Dec 22 2006 | 2:16 pm
      On Dec 22, 2006, at 1:35 PM, Eric Lyon wrote: > I'm sure it's fine to make it just for yourself. But I suspect that > distributing it irrespective of price (including free) could be > construed as a violation.
      An honest question: Could teaching the technique in a classroom be considered a form of "distribution"? That's how it was "distributed" to me. Heck, I even had to program it for an assignment (as I am sure Eric and others did once as well). How does patent law come into play in this situation?
      ----- Nathan Wolek nw@nathanwolek.com http://www.nathanwolek.com
    • Dec 22 2006 | 4:38 pm
      Thanks Trond, much appreciated/ I'll have a look on the links!
      Best,
      Steven
      On Dec 22, 2006, at 12:06 AM, Trond Lossius wrote:
      > Hi Steven, > > you can find snapshots of some patches here: > > http://www.pescadoo.net/annexe/max/ > > I never managed to get this fully working when trying to reproduce > from the images, but if you do, please post the patches on the > list. In addition you can find an external for convolution here: > > http://www.zippernoise.net/data/ > > Best, > Trond >
      ---- Steven M. Miller
      Associate Professor of Contemporary Music College of Santa Fe Contemporary Music Program 1600 St. Michaels Drive Santa Fe NM 87505 http://pubweb.csf.edu/~smill (505) 473-6197
      ~~~~~~~~~~~~~~~~~~~~~ SFIFEM Atrium Sound Space OVOS *opportunities for composers & sound artists*
    • Dec 22 2006 | 5:51 pm
      Quote: Peter Castine wrote on Fri, 22 December 2006 13:58 ---------------------------------------------------- > Depending on your jurisdiction, even using patented material for your > own personal use may be an infringement. >
      Back in the 1980s Chris Penrose and I were working on a concept called "pay-per-think" for collecting royalties on our music. Looks like were getting there :(
      Eric
    • Dec 22 2006 | 5:58 pm
      > > An honest question: > Could teaching the technique in a classroom be considered a form of > "distribution"?
      My IANAL guess is that at least in the US that would be okay since you're not distributing a tool that uses the patented technique. In the good old days, I might have even ventured a guess that such teaching is protected as free speech under the first amendment to the American constitution. Today, it might be just one more thought crime of the 21st century.
      Cheers, Eric
    • Dec 23 2006 | 12:32 am
      > An honest question: > Could teaching the technique in a classroom be considered a form of > "distribution"? That's how it was "distributed" to me. Heck, I even > had to program it for an assignment (as I am sure Eric and others did > once as well). How does patent law come into play in this situation? > > ----- > Nathan Wolek > nw@nathanwolek.com > http://www.nathanwolek.com
      a _patend is for sure not taught anywhere, patended code is usually not even published anywhere, except for those who licensed it.
      and if someone reinvents a C++ altivec optimized deconcolution audio DSP which is patended by lake technology thats bad luck for one of them. :)
    • Dec 23 2006 | 9:36 am
      Hi Steven,
      I was talking about discrete convolution (http://en.wikipedia.org/ wiki/Convolution) in the mathematical sense, not the practical approach of multiplying two spectra generated via fft.
      Here is the patch I made some some years ago, I didn´t check it nowdays, but it should give the right output, please tell me if there is a mistake.
      I think this is ok for teaching since it gives trial and error approach for the formula (sorry for this little attachment) It should be possible to make an MSP Patch with peek~s and Uzis doing convolution in this way. For realtime this approach is not good.
      cheers
      Falk
      p.s. sorry for the delayed feedback, this message has been held back by cyclings mail system, because it was greater than 40kb. Pasting the Text below in the same font than above made it much smaller
      Am 21.12.2006 um 22:36 schrieb Steven Miller:
      > Hi Falk, > > Thanks for your message. Convolution of two soundfiles or two live > input sources, for example, is pretty straightforward with the > existing fft objects. What I'm looking for is someone who has used > an impulse response file and convolved audio files or live input > with it. The trick there is that each new input sample gets > convolved and added to each past input sample convolved with the > corresponding impulse sample; i.e. each input sample 'steps > through' the impulse response file for convolution and gets added > with the current input sample. (This is a generalized description > of the process, mind you). > > At any rate, any thing you have that I could look at would be > helpful and appreciated. Thanks! > > Best, > > Steven > > On Dec 21, 2006, at 1:39 PM, Falk Grieffenhagen wrote: > >> Hi Steven, >> >> Ages ago I once made a patch showing how convolution works, but it >> ´s no reverb, I have it somewhere and could look for it if you´re >> interested. I think the only object doing convolution is rtconv~ >> which belongs to the IRCAM Spat distribution. >> >> Falk >> > > ---- > Steven M. Miller > > Associate Professor of Contemporary Music > College of Santa Fe > Contemporary Music Program > 1600 St. Michaels Drive > Santa Fe NM 87505 > http://pubweb.csf.edu/~smill > (505) 473-6197 > > ~~~~~~~~~~~~~~~~~~~~~ > SFIFEM > Atrium Sound Space > OVOS > *opportunities for composers & sound artists* > >
    • Dec 23 2006 | 7:34 pm
      Thanks Falk, I'll have a look at this over the holiday break, and get back to you if I have any questions, comments, etc. Much appreciated.
      On Dec 23, 2006, at 2:36 AM, Falk Grieffenhagen wrote:
      > Hi Steven, > > I was talking about discrete convolution (http://en.wikipedia.org/ > wiki/Convolution) in the mathematical sense, not the practical > approach of multiplying two spectra generated via fft. >
      ---- Steven M. Miller
      Associate Professor of Contemporary Music College of Santa Fe Contemporary Music Program 1600 St. Michaels Drive Santa Fe NM 87505 http://pubweb.csf.edu/~smill (505) 473-6197
      ~~~~~~~~~~~~~~~~~~~~~ SFIFEM Atrium Sound Space OVOS *opportunities for composers & sound artists*
    • Dec 27 2006 | 6:23 am
      Eric Lyon wrote: > IANAL but it seems at least remotely possible that posting a solution > might infringe one of these patents. Please please please someone > tell me I'm wrong about that.
      The principal of patents is, that it is public. You can't infringe any patent with showing how to do it, as that is done by the publishing of a patent anyway... You just can't base a business on it without getting a license...
      Peter Castine wrote: > Depending on your jurisdiction, even using patented material for your > own personal use may be an infringement.
      Which contry? It would be the opposite of the original idea of patents, to encourage the inventor to open and publish the technology for everybody in exchange for the protection.
      Roman Thilenius wrote: > a _patend is for sure not taught anywhere, patended code is usually > not even published anywhere, except for those who licensed it.
      The principal of any patent, and the first aim is to get it published for anybody to access. (Thats why many claim copyright instead of patenting it, then they don't need to show it...)
      Stefan
      -- Stefan Tiedje------------x------- --_____-----------|-------------- --(_|_ ----|-----|-----()------- -- _|_)----|-----()-------------- ----------()--------www.ccmix.com
    • Dec 27 2006 | 12:10 pm
      Stefan,
      Thanks for posting that. Here are the patents that seem most relevant to this discussion:
      Also, check out this discussion of patent infringement:
      >>> 35 U.S.C. 271 defines infringement as "whoever without authority makes, uses, or sells any patented invention, within the United States during the term of the patent therefor, infringes the patent." >>>
      The above seems to support Peter's contention - you don't have to sell an invention to infringe on a patent.
      >>> Infringement can be direct, indirect, or contributory. Anyone who makes, uses, or sells the patented invention is a direct infringer. If a person actively encourages another to make, use, or sell the invention, the person so inducing is liable for indirect infringement. Contributory infringement can be committed by knowingly selling or supplying an item for which the only use is in connection with a patented invention. >>>
      That last bit also makes me nervous.
      Eric
    • Dec 27 2006 | 8:28 pm
      Thanks Falk for sharing.
      (for any other newbies liek me you need to add max v2; #N vpatcher 10 59 414 293; at the begining and #P pop; at the end.)
      This seems to use some optional blocks.
      The L blocks are part of the freeware Lobjects library from http://arts.ucsc.edu/ems/music/research/lobjects.readme.html
      Is that correct ?
      Thanks.
    • Dec 28 2006 | 3:30 am
      On 27-Dec-2006, at 1:23, Stefan Tiedje wrote: > Peter Castine wrote: >> Depending on your jurisdiction, even using patented material for your >> own personal use may be an infringement. > > Which contry? It would be the opposite of the original idea of > patents,
      Well, I would never generalize *any*thing to all countries. However, you are right that the general point of patents is to publish the information (as opposed to trade secrets, like the magic formula for Coca-Cola).
      However & IMS, the original question was about *using* a patented technology. USING. Not teaching or publishing. There is a difference. And in some jurisdictions personal use (regardless of whether for immediate commercial gain) may be regarded as a violation of patent law.
      -------------- http://www.bek.no/~pcastine/Litter/ ------------- Peter Castine +--> Litter Power & Litter Bundle for Jitter Universal Binaries on the way iCE: Sequencing, Recording & Interface Building for |home | chez nous| Max/MSP Extremely cool |bei uns | i nostri| http://www.dspaudio.com/ http://www.castine.de
    • Dec 28 2006 | 11:29 pm
      > The principal of any patent, and the first aim is to get it published > for anybody to access. (Thats why many claim copyright instead of > patenting it, then they don't need to show it...)
      does not mean you publish _anything about it! you only publish you idea/your product, not a full descripton about how to produce it (or in the case of software, the full source code.)
      in german it is called patentbeschreibung, i guess patent description would be the right translation.
      that publishing something means there is no copyright must be a french law. :)
      *absichtlich falsch versteh*
      -110
    • Dec 30 2006 | 9:05 am
      Peter Castine wrote: > However & IMS, the original question was about *using* a patented > technology. USING. Not teaching or publishing. There is a difference. > And in some jurisdictions personal use (regardless of whether for > immediate commercial gain) may be regarded as a violation of patent law.
      That would mean you can post a patch with a disclaimer that using it would violate a patent if you are in the US (software patents are not so easily possible in Europe, though the industry tries to change it...)
      Stefan
      -- Stefan Tiedje------------x------- --_____-----------|-------------- --(_|_ ----|-----|-----()------- -- _|_)----|-----()-------------- ----------()--------www.ccmix.com
    • Jan 05 2007 | 10:44 am