Пример #1
0
def main():
    pyaud = pyaudio.PyAudio()

    stream = pyaud.open(format=pyaudio.paInt16,
                        channels=2,
                        rate=44100,
                        input_device_index=1,
                        input=True)

    last_note = last_vol = last_time = 0

    while True:
        t = timing.get_time()

        rawsamps = stream.read(SAMPLE_SIZE)
        samps = numpy.fromstring(rawsamps, dtype=numpy.int16)

        event = ''

        midi_note = analyse.musical_detect_pitch(samps, min_note=28.0)

        if midi_note:
            midi_note += OCTAVE_CORRECTION

            latest_note = notes.midi_to_note(midi_note)
            latest_vol = analyse.loudness(samps)

            attacked = latest_vol - last_vol > ATTACK_THRESHOLD

            if latest_note != last_note or attacked:
                if latest_vol > MINIMUM_VOLUME:
                    event = {'note': latest_note, 'time': t}
                    last_time = t

                last_note = latest_note
                last_vol = latest_vol

        elif last_note:
            last_note = None

        print event
        sys.stdout.flush()
Пример #2
0
def main():
    pyaud = pyaudio.PyAudio()

    stream = pyaud.open(format=pyaudio.paInt16, channels=2, rate=44100, input_device_index=1, input=True)

    last_note = last_vol = last_time = 0

    while True:
        t = timing.get_time()

        rawsamps = stream.read(SAMPLE_SIZE)
        samps = numpy.fromstring(rawsamps, dtype=numpy.int16)

        event = ""

        midi_note = analyse.musical_detect_pitch(samps, min_note=28.0)

        if midi_note:
            midi_note += OCTAVE_CORRECTION

            latest_note = notes.midi_to_note(midi_note)
            latest_vol = analyse.loudness(samps)

            attacked = latest_vol - last_vol > ATTACK_THRESHOLD

            if latest_note != last_note or attacked:
                if latest_vol > MINIMUM_VOLUME:
                    event = {"note": latest_note, "time": t}
                    last_time = t

                last_note = latest_note
                last_vol = latest_vol

        elif last_note:
            last_note = None

        print event
        sys.stdout.flush()
Пример #3
0
    sample_size = int(paramaters.sample_size)
    if not available > sample_size:
        time.sleep(0.01)
        continue

    rawsamps = stream.read(available)
    samps = numpy.fromstring(rawsamps, dtype=numpy.int16, count=sample_size)

    event = ''

    midi_note = analyse.musical_detect_pitch(samps, min_note=28.0)

    if midi_note:
        midi_note += paramaters.octave_correction * 12

        latest_note = notes.midi_to_note(midi_note)
        latest_vol = analyse.loudness(samps)

        attacked = latest_vol - last_vol > paramaters.attack_threshold

        if latest_note != last_note or attacked:
            if latest_vol > paramaters.minimum_volume:
                event = {'note': latest_note, 'time': t}
                last_time = t

            last_note = latest_note
            last_vol = latest_vol

    elif last_note:
        last_note = None
Пример #4
0
    sample_size = int(paramaters.sample_size)
    if not available > sample_size:
        time.sleep(0.01)
        continue

    rawsamps = stream.read(available)
    samps = numpy.fromstring(rawsamps, dtype=numpy.int16, count=sample_size)

    event = ''
    
    midi_note = analyse.musical_detect_pitch(samps, min_note=28.0)
    
    if midi_note:
        midi_note += paramaters.octave_correction * 12

        latest_note = notes.midi_to_note(midi_note)
        latest_vol = analyse.loudness(samps)

        attacked = latest_vol - last_vol > paramaters.attack_threshold

        if latest_note != last_note or attacked:
            if latest_vol > paramaters.minimum_volume:
                event = {'note':     latest_note,    'time':     t}
                last_time = t

            last_note = latest_note
            last_vol = latest_vol

    elif last_note:
        last_note = None