comparison audioio/AudioGenerator.cpp @ 10:b6dc944128da

* Add basics of MIDI file import. Doesn't actually create the model yet. * Add rewind to start / ffwd to end. * Make zoom constraint default to sqrt(2) type if no constraint set
author Chris Cannam
date Thu, 09 Feb 2006 18:01:52 +0000
parents 24b500216029
children 8dc0ae8fccdd
comparison
equal deleted inserted replaced
9:e71385792d9d 10:b6dc944128da
36 36
37 AudioGenerator::~AudioGenerator() 37 AudioGenerator::~AudioGenerator()
38 { 38 {
39 } 39 }
40 40
41 void 41 bool
42 AudioGenerator::addModel(Model *model) 42 AudioGenerator::addModel(Model *model)
43 { 43 {
44 if (m_sourceSampleRate == 0) { 44 if (m_sourceSampleRate == 0) {
45 45
46 m_sourceSampleRate = model->getSampleRate(); 46 m_sourceSampleRate = model->getSampleRate();
50 DenseTimeValueModel *dtvm = 50 DenseTimeValueModel *dtvm =
51 dynamic_cast<DenseTimeValueModel *>(model); 51 dynamic_cast<DenseTimeValueModel *>(model);
52 52
53 if (dtvm) { 53 if (dtvm) {
54 m_sourceSampleRate = model->getSampleRate(); 54 m_sourceSampleRate = model->getSampleRate();
55 return true;
55 } 56 }
56 } 57 }
57 58
58 SparseOneDimensionalModel *sodm = 59 SparseOneDimensionalModel *sodm =
59 dynamic_cast<SparseOneDimensionalModel *>(model); 60 dynamic_cast<SparseOneDimensionalModel *>(model);
60 if (!sodm) return; // nothing else to initialise 61 if (!sodm) return false; // nothing else to initialise
61 62
62 // QString pluginId = "dssi:/usr/lib/dssi/dssi-vst.so:FEARkILLERrev1.dll"; 63 // QString pluginId = "dssi:/usr/lib/dssi/dssi-vst.so:FEARkILLERrev1.dll";
63 // QString pluginId = "dssi:/usr/lib/dssi/hexter.so:hexter"; 64 // QString pluginId = "dssi:/usr/lib/dssi/hexter.so:hexter";
64 // QString pluginId = "dssi:/usr/lib/dssi/sineshaper.so:sineshaper"; 65 // QString pluginId = "dssi:/usr/lib/dssi/sineshaper.so:sineshaper";
65 // QString pluginId = "dssi:/usr/local/lib/dssi/xsynth-dssi.so:Xsynth"; 66 // QString pluginId = "dssi:/usr/local/lib/dssi/xsynth-dssi.so:Xsynth";
69 RealTimePluginFactory *factory = 70 RealTimePluginFactory *factory =
70 RealTimePluginFactory::instanceFor(pluginId); 71 RealTimePluginFactory::instanceFor(pluginId);
71 72
72 if (!factory) { 73 if (!factory) {
73 std::cerr << "Failed to get plugin factory" << std::endl; 74 std::cerr << "Failed to get plugin factory" << std::endl;
74 return; 75 return false;
75 } 76 }
76 77
77 RealTimePluginInstance *instance = 78 RealTimePluginInstance *instance =
78 factory->instantiatePlugin 79 factory->instantiatePlugin
79 (pluginId, 0, 0, m_sourceSampleRate, m_pluginBlockSize, m_targetChannelCount); 80 (pluginId, 0, 0, m_sourceSampleRate, m_pluginBlockSize, m_targetChannelCount);
91 } 92 }
92 instance->selectProgram("cowbell"); //!!! 93 instance->selectProgram("cowbell"); //!!!
93 instance->setIdealChannelCount(m_targetChannelCount); // reset! 94 instance->setIdealChannelCount(m_targetChannelCount); // reset!
94 } else { 95 } else {
95 std::cerr << "Failed to instantiate plugin" << std::endl; 96 std::cerr << "Failed to instantiate plugin" << std::endl;
96 } 97 return false;
98 }
99
100 return true;
97 } 101 }
98 102
99 void 103 void
100 AudioGenerator::removeModel(Model *model) 104 AudioGenerator::removeModel(Model *model)
101 { 105 {