Mercurial > hg > tipic
annotate src/CENS.cpp @ 60:1ea2aed23d4a tip
Fix version
author | Chris Cannam |
---|---|
date | Thu, 13 Feb 2020 13:37:36 +0000 |
parents | 00b6ae41efbe |
children |
rev | line source |
---|---|
Chris@39 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@39 | 2 |
Chris@42 | 3 /* |
Chris@42 | 4 Tipic |
Chris@42 | 5 |
Chris@42 | 6 Centre for Digital Music, Queen Mary, University of London. |
Chris@42 | 7 |
Chris@42 | 8 This program is free software; you can redistribute it and/or |
Chris@42 | 9 modify it under the terms of the GNU General Public License as |
Chris@42 | 10 published by the Free Software Foundation; either version 2 of the |
Chris@42 | 11 License, or (at your option) any later version. See the file |
Chris@42 | 12 COPYING included with this distribution for more information. |
Chris@42 | 13 */ |
Chris@42 | 14 |
Chris@39 | 15 #include "CENS.h" |
Chris@39 | 16 |
Chris@42 | 17 #include "maths/MathUtilities.h" |
Chris@39 | 18 #include "OctaveFold.h" |
Chris@39 | 19 #include "Resize.h" |
Chris@39 | 20 |
Chris@39 | 21 #include <cmath> |
Chris@39 | 22 #include <iostream> |
Chris@39 | 23 |
Chris@39 | 24 using namespace std; |
Chris@39 | 25 |
Chris@39 | 26 static Quantize::Parameters |
Chris@39 | 27 qparams(CENS::Parameters params) |
Chris@39 | 28 { |
Chris@39 | 29 Quantize::Parameters qp; |
Chris@39 | 30 qp.steps = params.quantSteps; |
Chris@39 | 31 qp.weights = params.quantWeights; |
Chris@39 | 32 return qp; |
Chris@39 | 33 } |
Chris@39 | 34 |
Chris@39 | 35 CENS::CENS(Parameters params) : |
Chris@39 | 36 m_params(params), |
Chris@39 | 37 m_quantize(qparams(params)) |
Chris@39 | 38 { |
Chris@39 | 39 } |
Chris@39 | 40 |
Chris@39 | 41 CENS::~CENS() |
Chris@39 | 42 { |
Chris@39 | 43 } |
Chris@39 | 44 |
Chris@39 | 45 RealBlock |
Chris@39 | 46 CENS::process(const RealBlock &in) |
Chris@39 | 47 { |
Chris@39 | 48 if (in.empty()) { |
Chris@39 | 49 return in; |
Chris@39 | 50 } |
Chris@39 | 51 |
Chris@39 | 52 RealBlock out; |
Chris@39 | 53 |
Chris@39 | 54 for (RealColumn col: in) { |
Chris@39 | 55 |
Chris@39 | 56 out.push_back(m_quantize.process |
Chris@42 | 57 (MathUtilities::normaliseLp |
Chris@39 | 58 (OctaveFold::process |
Chris@39 | 59 (Resize::process(col)), |
Chris@39 | 60 m_params.normP, m_params.normThresh))); |
Chris@39 | 61 } |
Chris@39 | 62 |
Chris@39 | 63 return out; |
Chris@39 | 64 } |
Chris@39 | 65 |