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

Dependencies:   mbed

Committer:
elleo
Date:
Wed Jan 09 22:46:12 2013 +0000
Revision:
0:ce6724069f0a
Migration to new repository

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elleo 0:ce6724069f0a 1 /*
elleo 0:ce6724069f0a 2 * libmbed-synth An audio synthesis library capable of running
elleo 0:ce6724069f0a 3 * alongside other activities.
elleo 0:ce6724069f0a 4 * Copyright (C) <2009> Michael Sheldon <mike@mikeasoft.com>
elleo 0:ce6724069f0a 5 *
elleo 0:ce6724069f0a 6 * This library is free software; you can redistribute it and/or
elleo 0:ce6724069f0a 7 * modify it under the terms of the GNU Library General Public
elleo 0:ce6724069f0a 8 * License as published by the Free Software Foundation; either
elleo 0:ce6724069f0a 9 * version 2 of the License, or (at your option) any later version.
elleo 0:ce6724069f0a 10 *
elleo 0:ce6724069f0a 11 * This library is distributed in the hope that it will be useful,
elleo 0:ce6724069f0a 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
elleo 0:ce6724069f0a 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
elleo 0:ce6724069f0a 14 * Library General Public License for more details.
elleo 0:ce6724069f0a 15 *
elleo 0:ce6724069f0a 16 * You should have received a copy of the GNU Library General Public
elleo 0:ce6724069f0a 17 * License along with this library; if not, write to the
elleo 0:ce6724069f0a 18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
elleo 0:ce6724069f0a 19 * Boston, MA 02111-1307, USA.
elleo 0:ce6724069f0a 20 */
elleo 0:ce6724069f0a 21
elleo 0:ce6724069f0a 22 #ifndef MBED_INSTRUMENT_H
elleo 0:ce6724069f0a 23 #define MBED_INSTRUMENT_H
elleo 0:ce6724069f0a 24
elleo 0:ce6724069f0a 25 #include "Note.h"
elleo 0:ce6724069f0a 26
elleo 0:ce6724069f0a 27 class Instrument {
elleo 0:ce6724069f0a 28
elleo 0:ce6724069f0a 29 public:
elleo 0:ce6724069f0a 30 Instrument();
elleo 0:ce6724069f0a 31 void note(Note note);
elleo 0:ce6724069f0a 32 void set_samplerate(int samplerate);
elleo 0:ce6724069f0a 33 void set_bpm(int bpm);
elleo 0:ce6724069f0a 34 float proc_sample();
elleo 0:ce6724069f0a 35
elleo 0:ce6724069f0a 36 protected:
elleo 0:ce6724069f0a 37 float *_samples;
elleo 0:ce6724069f0a 38 int _num_samples;
elleo 0:ce6724069f0a 39 int _position;
elleo 0:ce6724069f0a 40 int _samplerate;
elleo 0:ce6724069f0a 41 int _bpm;
elleo 0:ce6724069f0a 42 int _duration;
elleo 0:ce6724069f0a 43 int _samples_played;
elleo 0:ce6724069f0a 44 };
elleo 0:ce6724069f0a 45
elleo 0:ce6724069f0a 46 #endif