]> git.treefish.org Git - seamulator.git/blobdiff - src/synthesizer.cpp
place plucks at random positions
[seamulator.git] / src / synthesizer.cpp
index a4148ced1431aa8210cf9c4f50ceb23b35749def..5943b06d400a4cfbb63afff8afdff1b40076add1 100644 (file)
@@ -55,17 +55,25 @@ Synthesizer::Synthesizer(ConstWaterSurfacePtr surface) :
 //        m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(i, 0), 440.0) );
         //}
 
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(10, 50), 939.85) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(20, 40), 704.09) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(30, 30), 469.92) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(40, 20), 352.04) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(50, 10), 279.42) );
-
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(50, 10), 1054.94) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(40, 20), 704.09) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(30, 30), 527.47) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(20, 40), 418.65) );
-    m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(10, 50), 313.64) );
+    srand (time(NULL));
+    
+    const std::vector<double> frequencies = {939.85, 704.09, 469.92, 352.04, 279.42, 1054.94, 704.09, 527.47, 418.65, 313.64};
+
+    for (const auto& frequency : frequencies) {
+        m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(rand() % m_surface->size(), rand() %  m_surface->size()), frequency) );
+    }
+    
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(10, 50), 939.85) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(20, 40), 704.09) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(30, 30), 469.92) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(40, 20), 352.04) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(50, 10), 279.42) );
+
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(50, 10), 1054.94) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(40, 20), 704.09) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(30, 30), 527.47) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(20, 40), 418.65) );
+    // m_dots.emplace_back( std::make_unique<Dot>(m_surface->at(10, 50), 313.64) );
 
     m_audioThread = std::thread( [this]{audioLoop();} );