File: MDP_example.cxx

package info (click to toggle)
clam 1.4.0-5.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 17,780 kB
  • sloc: cpp: 92,499; python: 9,721; ansic: 1,602; xml: 444; sh: 239; makefile: 153; perl: 54; asm: 15
file content (121 lines) | stat: -rw-r--r-- 3,308 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * Copyright (c) 2001-2002 MUSIC TECHNOLOGY GROUP (MTG)
 *                         UNIVERSITAT POMPEU FABRA
 *
 *
 * 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.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU 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 "MDPModeler.hxx"


int main()
{
	unsigned nToTrack, nCandidates, nFrames;
	double semitoneRange, amplitudeRange;

	nToTrack = 2;
	nCandidates = 4;
	nFrames = 5;
	semitoneRange = .2599; // 4 semitones
	amplitudeRange = 2;

	CLAM::Candidates cand;

	cand.Allocate( nCandidates, nFrames );

	cand.GetNCandPerFrame()[0]=nCandidates-2;
	cand.GetNCandPerFrame()[1]=nCandidates-1;
	for(unsigned n=2; n<nFrames; n++)
		cand.GetNCandPerFrame()[n]=nCandidates;

	// First Frame
	cand.GetFreqMatrix()( 0, 0 )  = 200;
	cand.GetFreqMatrix()( 1, 0 )  = 400;
	//cand.GetFreqMatrix()( 2, 0 )  = 600;
	//cand.GetFreqMatrix()( 3, 0 )  = 800;

	cand.GetMagMatrix()( 0, 0 )  = 0.8;
	cand.GetMagMatrix()( 1, 0 )  = 0.6;
	cand.GetMagMatrix()( 2, 0 )  = 0.5;
	//cand.GetMagMatrix()( 3, 0 )  = 0.4;


	// Second Frame
	cand.GetFreqMatrix()( 0, 1 )  = 250;
	cand.GetFreqMatrix()( 1, 1 )  = 400;
	cand.GetFreqMatrix()( 2, 1 )  = 600;
	cand.GetFreqMatrix()( 3, 1 )  = 800;

	cand.GetMagMatrix()( 0, 1 )  = 0.8;
	cand.GetMagMatrix()( 1, 1 )  = 0.7;
	cand.GetMagMatrix()( 2, 1 )  = 0.5;
	cand.GetMagMatrix()( 3, 1 )  = 0.4;


	// Third Frame
	cand.GetFreqMatrix()( 0, 2 )  = 250;
	cand.GetFreqMatrix()( 1, 2 )  = 450;
	cand.GetFreqMatrix()( 2, 2 )  = 600;
	cand.GetFreqMatrix()( 3, 2 )  = 800;

	cand.GetMagMatrix()( 0, 2 )  = 0.9;
	cand.GetMagMatrix()( 1, 2 )  = 0.6;
	cand.GetMagMatrix()( 2, 2 )  = 0.5;
	cand.GetMagMatrix()( 3, 2 )  = 0.4;


	// Fourth Frame
	cand.GetFreqMatrix()( 0, 3 )  = 250;
	cand.GetFreqMatrix()( 1, 3 )  = 425;
	cand.GetFreqMatrix()( 2, 3 )  = 650;
	cand.GetFreqMatrix()( 3, 3 )  = 800;

	cand.GetMagMatrix()( 0, 3 )  = 0.9;
	cand.GetMagMatrix()( 1, 3 )  = 0.8;
	cand.GetMagMatrix()( 2, 3 )  = 0.7;
	cand.GetMagMatrix()( 3, 3 )  = 0.5;


	// Fifth Frame
	cand.GetFreqMatrix()( 0, 4 )  = 250;
	cand.GetFreqMatrix()( 1, 4 )  = 450;
	cand.GetFreqMatrix()( 2, 4 )  = 650;
	cand.GetFreqMatrix()( 3, 4 )  = 850;

	cand.GetMagMatrix()( 0, 4 )  = 0.9;
	cand.GetMagMatrix()( 1, 4 )  = 0.8;
	cand.GetMagMatrix()( 2, 4 )  = 0.6;
	cand.GetMagMatrix()( 3, 4 )  = 0.5;


	CLAM::MDPModelerConfig Modelercfg;

	Modelercfg.SetName("MDPModeler");
	Modelercfg.SetSemitoneRange( semitoneRange );
	Modelercfg.SetAmplitudeRange( amplitudeRange );
	Modelercfg.SetNFrames( nFrames );
	Modelercfg.SetNToTrack( nToTrack );
	Modelercfg.SetNCandidates( nCandidates );

	CLAM::MDPModeler myModeler( Modelercfg );
	CLAM::MDP mdp;

	myModeler.Start();
	myModeler.Do( cand, mdp );

	return 0;
}