symbol bang

Adam Murray's icon

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:
https://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 Patch
Copy patch and select New From Clipboard in Max.

Stefan Tiedje's icon

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

zipb's icon

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

keithmanlove's icon

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
>
>

Peter McCulloch's icon

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