CSL  6.0
AmbisonicPanner.h
Go to the documentation of this file.
1 //
2 // AmbisonicPanner.h -- Ambisonic effects and panners.
3 // See the copyright notice and acknowledgment of authors in the file COPYRIGHT
4 // Higher Order Ambisonic classes written by Jorge Castellanos, Graham Wakefield, Florian Hollerweger, 2005
5 //
6 
7 #ifndef CSL_AMBISONIC_PANNER_H
8 #define CSL_AMBISONIC_PANNER_H
9 
10 #include "CSL_Core.h"
11 #include "SpatialPanner.h"
12 #include "Ambisonic.h"
13 #include "AmbisonicUtilities.h"
14 #include "SpeakerLayout.h"
15 
16 namespace csl {
17 
18 /// Ambisonic Panner
19 /// Wraps around the different ambisonic classes, providing a single interface for encoding, manipulating and decoding (i.e. panning)
20 /// multiple UnitGenerators.
21 
23 public:
24  AmbisonicPanner(unsigned order = 1, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor
25  AmbisonicPanner(unsigned hOrder, unsigned vOrder, SpeakerLayout *layout = SpeakerLayout::defaultSpeakerLayout()); // Default constructor
27 
28  void addSource(SpatialSource &s); ///< Implement Panner's addSource, inserting an Encoder to each source.
29  void removeSource(SpatialSource &s); ///< Remove a sound source
30 
31  void rotate(float amount); // AN ANGLE
32 
33  /// fill the buffer with the next buffer_length of values
34  void nextBuffer(Buffer &outputBuffer /*, unsigned outBufNum */) throw (CException);
35 
36  void dump() { }; ///< Print info about this instance
37 
38 protected:
42 
43 // void initialize();
44 // virtual void speakerLayoutChanged(); ///< called when the speaker layout changes, so panners update precalculated data
45 
46 };
47 
48 } // end namespace
49 
50 #endif
AmbisonicMixer * mMixer
Print info about this instance.
AdditiveInstrument.h – Sum-of-sines synthesis instrument class.
Definition: Accessor.h:17
void dump()
pretty-print the receiver
void addSource(SpatialSource &s)
Implement Panner's addSource, inserting an Encoder to each source.
void rotate(float amount)
Base class for all panners. Handles source management and holds a speaker layout. ...
Definition: SpatialPanner.h:22
Temp Spatial Sound Source.
Definition: SpatialSource.h:29
AmbisonicPanner(unsigned order=1, SpeakerLayout *layout=SpeakerLayout::defaultSpeakerLayout())
void nextBuffer(Buffer &outputBuffer)
fill the buffer with the next buffer_length of values
Ambisonic Panner Wraps around the different ambisonic classes, providing a single interface for encod...
AmbisonicRotator * mRotator
void removeSource(SpatialSource &s)
Remove a sound source.
Buffer – the multi-channel sample buffer class (passed around between generators and IO guys)...
Definition: CSL_Core.h:106
AmbisonicDecoder * mDecoder
static SpeakerLayout * defaultSpeakerLayout()
Returns a pointer to the default layout. If no default exists, it creates one.
Base class of CSL exceptions (written upper-case). Has a string message.