X-Git-Url: http://git.johnwright.org/?p=fmit.git;a=blobdiff_plain;f=libs%2FMusic%2FNote.cpp;fp=libs%2FMusic%2FNote.cpp;h=04e80edec6d99fa990d5a10a12d3b703b746ccd1;hp=0000000000000000000000000000000000000000;hb=49947d1cd4506f5574b3be62ee90e9f00227d9fd;hpb=82c9faab9421b3d87a0faa84a73f55aaccbbb689 diff --git a/libs/Music/Note.cpp b/libs/Music/Note.cpp new file mode 100644 index 0000000..04e80ed --- /dev/null +++ b/libs/Music/Note.cpp @@ -0,0 +1,62 @@ +// Copyright 2007 "Gilles Degottex" + +// This file is part of "Music" + +// "Music" is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or +// (at your option) any later version. +// +// "Music" 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +#include "Note.h" + +void Note::init() +{ + min_err = numeric_limits::max(); + max_err = -numeric_limits::max(); + avg_err = 0.0f; +} +Note::Note(int h) + : ht(h) +{ + init(); +} +Note::Note(int h, int num, int den) + : ht(h) +{ + init(); + factor = QString::number(num)+"/"+QString::number(den); +} +Note::Note(int h, float cents) + : ht(h) +{ + init(); + factor = QString::number(cents); +} +QString Note::getName() const +{ + return Music::h2n(ht)+factor; +} +void Note::addAnalysis(float err, float volume) +{ + min_err = (errmax_err)?err:max_err; + + if(!errors.empty()) + avg_err *= errors.size(); + + errors.push_back(err); + + avg_err += err; + avg_err /= errors.size(); + + volumes.push_back(volume); +}