File: Timbre.h

package info (click to toggle)
between 6%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 3,532 kB
  • sloc: cpp: 28,110; php: 718; ansic: 638; objc: 245; sh: 236; makefile: 97; perl: 67
file content (35 lines) | stat: -rw-r--r-- 1,087 bytes parent folder | download | duplicates (11)
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

#include <SDL/SDL.h>



class Timbre {
    public:
        
        /**
         * Constructs a timbre and fills its wavetables.
         *
         * @param inSampleRate number of samples per second.
         * @param inLoudness a scale factor in [0,1].
         * @param inBaseFrequency the lowest note in the wave table, in Hz.
         *   This is also the key for the major scale held in the wave table.
         * @param inNumWaveTableEntries the number of wavetable entries.
         * @param inWaveFunction a function mapping a double parameter t
         *   to a wave height in [-1,1].  Must have a period of 2pi.
         */
        Timbre( int inSampleRate,
                double inLoudness,
                double inBaseFrequency,
                int inNumWaveTableEntries, 
                double( *inWaveFunction )( double ) );
        
        ~Timbre();
        

        
        int mNumWaveTableEntries;
        // mWaveTable[x] corresponds to a wave with frequency of 
        // getFrequency(x)
        Sint16 **mWaveTable;
        int *mWaveTableLengths;
    };