Mercurial > hg > silvet
view src/Instruments.h @ 309:07ee4ebea57c
Add chromagram output
author | Chris Cannam |
---|---|
date | Mon, 19 Jan 2015 11:23:07 +0000 |
parents | 5bde003a43a9 |
children | ebe5e0942bb8 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Silvet A Vamp plugin for note transcription. Centre for Digital Music, Queen Mary University of London. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #include <vector> #include <string> #ifndef SILVET_INSTRUMENTS_H #define SILVET_INSTRUMENTS_H /** * Define an instrument pack, i.e. a group of templates that are made * available as a single preset at the user interface level. A pack * might contain only a single instrument template (e.g. bassoon), or * it may be a compound of several templates (e.g. different piano * recordings forming a single piano pack), or it may be a group of * distinct instrument templates (e.g. a pack containing all supported * instruments, or potentially groupings such as string quartet or * rock band). */ class InstrumentPack { public: static const int templateNoteCount; static const int templateHeight; static const int templateMaxShift; static const int templateSize; int lowestNote; int highestNote; int maxPolyphony; // realistic practical limit, not a theoretical one float pitchSparsity; float sourceSparsity; float levelThreshold; std::string name; struct Templates { int lowestNote; int highestNote; // templateNoteCount * templateSize std::vector<std::vector<float> > data; }; std::vector<Templates> templates; static std::vector<InstrumentPack> listInstrumentPacks(); private: InstrumentPack(int lowest, int highest, std::string n, std::vector<Templates> tt) : lowestNote(lowest), highestNote(highest), maxPolyphony(5), pitchSparsity(1.1), sourceSparsity(1.2), levelThreshold(5), name(n), templates(tt) { } }; #endif