blob: 26ce3799aee82296dc382bddef76d260599ccf46 (
plain)
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
|
#ifndef __NOTE_H__
#define __NOTE_H__
#include <jack/jack.h>
#include "programs.h"
#include "envelope.h"
#include "fixed.h"
#include "filter.h"
class Note
{
public:
Note(int n, float v,program_t &prg, jack_nframes_t pf, fixed_t pb, int prg_no);
~Note();
fixed_t get_sample();
int get_note();
void set_note(int n);
void set_note(int n, bool do_port);
void set_freq(float f);
void set_freq(float f, bool do_port);
void set_pitchbend(fixed_t pb);
void set_vel(float v);
void set_portamento_frames(jack_nframes_t f);
void release_quickly(jack_nframes_t maxt);
void release();
void reattack();
bool still_active();
void set_param(const parameter_t &p, fixed_t v);
int get_program(){return program;}
private:
void do_ksl();
void do_ksr();
void recalc_factors();
void apply_pfactor();
Envelope **envelope;
fixed_t freq, dest_freq, old_freq;
fixed_t vel;
jack_nframes_t portamento_t, portamento_frames;
int env_frame_counter;
fixed_t *envval;
fixed_t *oscval;
fixed_t *old_oscval;
int n_oscillators;
oscillator_t *oscillator;
fixed_t sync_factor;
fixed_t sync_phase;
pfactor_value_t pfactor;
int note;
int program;
program_t *curr_prg;
fixed_t pitchbend;
LowPassFilter filter;
Envelope *filter_envelope;
filter_params_t filter_params;
int filter_update_counter;
struct
{
oscillator_t *oscillator;
filter_params_t filter_params;
} orig;
/* *einstellungen: oszillatoren, deren lautstärke etc.
* note
* lautstärke
* *pitchbend
* *portamento time
*/
};
#endif
|