symbol bang


    Jun 28 2007 | 6:59 am
    Why does the select object output "symbol bang" when it receives a bang, but any other input (that doesn't match an argument) seems to pass through the right outlet unchanged?
    I commonly need to intercept a specific message and handle it, otherwise pass the input along unchanged. Because of "symbol bang" I have gotten in the habit of using route instead of select. In my experience, this behavior just gets in the way of what I am trying to do, but I figure there must be a reason for it?
    The only info I could find on it was this old post:
    http://www.cycling74.com/forums/index.php?t=msg&goto=16079
    which seems to have been addressed by documenting the behavior in the reference manual, but the reason for the behavior is not explained. There must be some interesting trivia about Max's type system and how select is implemented - I'm all ears :)
    And I thought perhaps this behavior could be used to distinguish between a true bang and a symbol bang, but that doesn't seem to be the case. I've included a patch I was using to investigate this behavior. I also tried using the printit external but it didn't shed any light on this situation.
    max v2;

    • Jun 29 2007 | 8:51 am
      Adam Murray schrieb:
      > And I thought perhaps this behavior could be used to distinguish
      > between a true bang and a symbol bang, but that doesn't seem to be
      > the case. I've included a patch I was using to investigate this
      > behavior. I also tried using the printit external but it didn't shed
      > any light on this situation.
      I'd call select an oldtimer, which was intended for single values. Just
      use route instead of select and you will be fine, it does the same and
      more...
      A long time the manual claimed to pass everything which doesn't match to
      the right outlet, which isn't true (a list like [set 3] is truncated).
      This was also only corrected in the manual. The behaviour of such an old
      object you'd better not change, especially if there is an obvious
      alternative.
      Stefan
      --
      Stefan Tiedje------------x-------
      --_____-----------|--------------
      --(_|_ ----|-----|-----()-------
      -- _|_)----|-----()--------------
      ----------()--------www.ccmix.com
    • Jun 29 2007 | 11:54 am
      I'm asked to sync pictures to the beat of fairly straightforward
      house music. I'm using resonator~ to home in on the low end, followed
      by bonk~ for trigger detection. The results are a bit disappointing,
      low frequency sounds (bass synths) trick bonk~ into triggering too.
      I'm interested in alternative methods & tips for beat detection in
      electronic dance music. Anyone?
      Cheers,
      Zip
      Zip Boterbloem
      Media Mechanics
      Zwaluwstraat 54
      2025 VR Haarlem
      The Netherlands
      +31627014758
      zip@knoware.nl
    • Jun 29 2007 | 3:33 pm
      What I've done in the past is take a look a what I'm trying to use as
      a trigger and figure out characteristics that are easily identifiable
      (in spetrographs, wavelets, waveform, etc) and gone from there.
      There's a good article on a lot of the onset detection techniques by
      Juan Pablo Bello, et al.
      Keith
      On 6/29/07, Zip Boterbloem wrote:
      > I'm asked to sync pictures to the beat of fairly straightforward
      > house music. I'm using resonator~ to home in on the low end, followed
      > by bonk~ for trigger detection. The results are a bit disappointing,
      > low frequency sounds (bass synths) trick bonk~ into triggering too.
      >
      > I'm interested in alternative methods & tips for beat detection in
      > electronic dance music. Anyone?
      >
      > Cheers,
      >
      > Zip
      >
      > Zip Boterbloem
      > Media Mechanics
      > Zwaluwstraat 54
      > 2025 VR Haarlem
      > The Netherlands
      > +31627014758
      > zip@knoware.nl
      >
      >
    • Jun 29 2007 | 4:55 pm
      Your idea about filters is a good first step. You might have better
      luck with a lowpass filter (or several lowpass filters cascaded in
      series (you can do this with cascade~)) than a resonant filter, as most
      resonant filters have problems with low frequencies. That said, you
      may be able to do it all with bonk~.
      Have you trained bonk~? If you haven't then this will be a problem, as
      any percussive sound will trigger it, but if you train it to recognize
      specific types of sounds such as kick drum, snare drum, hi-hat, it'll
      be pretty decent. I do a beatboxing demo for my students that uses
      bonk to track sounds like tapping on a can, the desk, etc. and replace
      the sounds with percussive sounds and it works well, but you have to
      train it. Since you're probably doing a variety of tracks, you'll want
      to train it with multiple kinds of snares, kick drums, etc. so that it
      can generalize between them, rather than just being trained to one
      specific sound. (for example, "learn 20" and then play 20 different
      files of snare drums, 20 different kick drums, etc.)
      There's a paper from the ICMC on bonk~ (IIRC it's cited in the
      bonk~.help file) that might be useful to check out so you understand
      better how it's working.
      Hope this helps,
      Peter McCulloch
      www.petermcculloch.com