A simple string synthesizer implementing the Karplus-Strong algorithm. Licensed under the GNU LGPL.

Dependencies:   mbed

Instrument.h

Committer:
elleo
Date:
2013-01-09
Revision:
0:ce6724069f0a

File content as of revision 0:ce6724069f0a:

/* 
 * libmbed-synth An audio synthesis library capable of running
 * alongside other activities. 
 * Copyright (C) <2009> Michael Sheldon <mike@mikeasoft.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
*/

#ifndef MBED_INSTRUMENT_H
#define MBED_INSTRUMENT_H

#include "Note.h"

class Instrument {

    public:
        Instrument();
        void note(Note note);
        void set_samplerate(int samplerate);
        void set_bpm(int bpm);
        float proc_sample();
        
    protected:
        float *_samples;
        int _num_samples;
        int _position;
        int _samplerate;
        int _bpm;
        int _duration;
        int _samples_played;
};

#endif