Guitar triggering in max

    Sep 28 2008 | 2:47 pm
    A couple of questions, Is there a way to convert signal from guitar to numbers to trigger samples and tempo.
    When using a guitar through max there is a large latency delay which is rather annoying. I have burnt the latency down to 10ms but its still too noticable. Is it possible to get a really low or in fact, no latency. I use a USB mackie spike as audio in device, so im guessing this is the limiting factor.

    • Sep 28 2008 | 5:52 pm
      In the Max DSP Status window, you can lower I/O Vector size(and you might as well lower Signal Vector size as well) to something like 64 or below. This will create less latency but will also require higher CPU usage. You are correct, using USB audio interfaces cause even more latency. A firewire audio interface would be faster. I have heard some say that using the built-in coreaudio driver is even faster.
      As for using your guitar's audio signal to trigger samples, there are many ways to map audio to MIDI and other events. Take a look at peakamp~ object if you're interested in doing simple amplitude following. Take a look at fiddle~ if you want to do some sort of triggering based on pitch(search for fiddle~ on the internet to find it, doesn't normally come with standard package). A signal is a whole different beast from any event-triggering, so to trigger samples and tempo you'd have to understand first how a signal works and then decide how to map the signal to your desired function. A signal runs between -1. to 1. in the amplitude range(normally for regular guitar audio which gets translated into the digital realm). It does this at whatever the sampling-rate is so if you have a 44.1kHz sampling rate, you will have to figure out how you want a very fast signal running anywhere between -1. to 1. 44,100 times per second(shaped according to the trajectory of the guitar's signal-waveform) to trigger a sample or a change in tempo. You might want simple amplitude-following which will cause triggering to require your playing to be very exact and allow for no mistakes if you want absolute control(on the other hand, it can get pretty interesting if you're willing to trigger random samples based on the amplitude of your guitar at any given moment). Anyways, i've rambled on, take a look at those two objects i've mentioned first, then decide what you really want to do with them and then create a patch, post it here, and i'm sure people will help you further. Best of luck!
    • Sep 28 2008 | 5:58 pm
      And while you're at it, you should really take a look at this tutorial:
      Look down near the bottom of the article for "The Great Stutter Effect" which uses amplitude-following to sample the guitar and output segments of recorded material at randomly chosen intervals. You can modify this patch to apply the amplitude-following to pre-recorded samples and tempo or you could use the stutter~ object as they have done to sample your guitar as you're playing it.
    • Oct 03 2008 | 9:10 am
      is there a way to express > 20 but < 30 in an "if" object?
    • Oct 03 2008 | 9:27 am
      On 3 oct. 08, at 11:10, Toiletmuck wrote:
      > is there a way to express > 20 but < 30 in an "if" object?
      [if $i1 > 20 && $i1 [split] may be helpfull too...
      _____________________________ Patrick Delges
      Centre de Recherches et de Formation Musicales de Wallonie asbl
    • Oct 03 2008 | 10:30 am