aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-11-17 03:48:38 +0000
committerDavid Robillard <d@drobilla.net>2008-11-17 03:48:38 +0000
commitcbfd2dafcf8979e177abccf382dadaabdab6a45b (patch)
tree935dbd1117fa89ad280207b6c7722da1a3a5fccf /src/engine/machina
parente091b5eea5f533fe61c5559a10f1388aeca096e2 (diff)
downloadmachina-cbfd2dafcf8979e177abccf382dadaabdab6a45b.tar.gz
machina-cbfd2dafcf8979e177abccf382dadaabdab6a45b.tar.bz2
machina-cbfd2dafcf8979e177abccf382dadaabdab6a45b.zip
Compile.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@1755 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina')
-rw-r--r--src/engine/machina/Driver.hpp2
-rw-r--r--src/engine/machina/Engine.hpp2
-rw-r--r--src/engine/machina/Evolver.hpp5
-rw-r--r--src/engine/machina/JackDriver.hpp9
-rw-r--r--src/engine/machina/LearnRequest.hpp6
-rw-r--r--src/engine/machina/MachineBuilder.hpp6
-rw-r--r--src/engine/machina/Mutation.hpp2
-rw-r--r--src/engine/machina/Problem.hpp7
-rw-r--r--src/engine/machina/Recorder.hpp2
-rw-r--r--src/engine/machina/SMFDriver.hpp6
10 files changed, 26 insertions, 21 deletions
diff --git a/src/engine/machina/Driver.hpp b/src/engine/machina/Driver.hpp
index d087d88..f412574 100644
--- a/src/engine/machina/Driver.hpp
+++ b/src/engine/machina/Driver.hpp
@@ -34,7 +34,7 @@ public:
virtual void set_machine(SharedPtr<Machine> machine) { _machine = machine; }
virtual void set_bpm(double bpm) = 0;
- virtual void set_quantization(Raul::TimeStamp q) = 0;
+ virtual void set_quantization(double q) = 0;
virtual void activate() {}
virtual void deactivate() {}
diff --git a/src/engine/machina/Engine.hpp b/src/engine/machina/Engine.hpp
index 02a9fc6..92384a8 100644
--- a/src/engine/machina/Engine.hpp
+++ b/src/engine/machina/Engine.hpp
@@ -44,7 +44,7 @@ public:
SharedPtr<Machine> load_machine(const Glib::ustring& uri);
SharedPtr<Machine> import_machine(const Glib::ustring& uri);
- SharedPtr<Machine> import_midi(const Glib::ustring& uri, Raul::TimeStamp q, Raul::TimeDuration d);
+ SharedPtr<Machine> import_midi(const Glib::ustring& uri, double q, Raul::TimeDuration d);
void set_bpm(double bpm);
void set_quantization(double beat_fraction);
diff --git a/src/engine/machina/Evolver.hpp b/src/engine/machina/Evolver.hpp
index edf68db..1b847db 100644
--- a/src/engine/machina/Evolver.hpp
+++ b/src/engine/machina/Evolver.hpp
@@ -20,7 +20,8 @@
#include "raul/SharedPtr.hpp"
#include "raul/Thread.hpp"
-#include "eugene/core/GAImpl.hpp"
+#include "raul/TimeStamp.hpp"
+#include "eugene/GAImpl.hpp"
#include "Schrodinbit.hpp"
namespace Eugene { template <typename G> class HybridMutation; }
@@ -33,7 +34,7 @@ class Problem;
class Evolver : public Raul::Thread {
public:
- Evolver(const string& target_midi, SharedPtr<Machine> seed);
+ Evolver(Raul::TimeUnit unit, const string& target_midi, SharedPtr<Machine> seed);
void seed(SharedPtr<Machine> parent);
bool improvement() { return _improvement; }
diff --git a/src/engine/machina/JackDriver.hpp b/src/engine/machina/JackDriver.hpp
index 54c7b1a..40c2868 100644
--- a/src/engine/machina/JackDriver.hpp
+++ b/src/engine/machina/JackDriver.hpp
@@ -60,8 +60,8 @@ public:
size_t size,
const unsigned char* event) throw (std::logic_error);
- void set_bpm(double bpm) { _bpm.set(bpm); }
- void set_quantization(Raul::TimeStamp q) { _quantization.set(q); }
+ void set_bpm(double bpm) { _bpm.set(bpm); }
+ void set_quantization(double q) { _quantization.set(q); }
void stop();
@@ -81,10 +81,11 @@ private:
jack_port_t* _input_port;
jack_port_t* _output_port;
+ Raul::TimeUnit _frames_unit;
Raul::TimeSlice _cycle_time;
- Raul::DoubleBuffer<double> _bpm;
- Raul::DoubleBuffer<Raul::TimeStamp> _quantization;
+ Raul::DoubleBuffer<double> _bpm;
+ Raul::DoubleBuffer<double> _quantization;
Raul::Command _stop;
diff --git a/src/engine/machina/LearnRequest.hpp b/src/engine/machina/LearnRequest.hpp
index 4a65675..edc76c9 100644
--- a/src/engine/machina/LearnRequest.hpp
+++ b/src/engine/machina/LearnRequest.hpp
@@ -43,7 +43,7 @@ public:
return ret;
}
- void start(TimeStamp q, Raul::TimeStamp time)
+ void start(double q, Raul::TimeStamp time)
{ _started = true; _start_time = time; _quantization = q; }
void finish(TimeStamp time);
@@ -58,7 +58,7 @@ private:
LearnRequest(SharedPtr<Raul::Maid> maid, SharedPtr<Node> node)
: _started(false)
, _start_time(TimeUnit(TimeUnit::BEATS, 19200), 0, 0) // irrelevant
- , _quantization(TimeUnit(TimeUnit::BEATS, 19200), 1, 0) // irrelevant
+ , _quantization(0) // irrelevant
, _node(node)
, _enter_action(new MidiAction(4, NULL))
, _exit_action(new MidiAction(4, NULL))
@@ -69,7 +69,7 @@ private:
bool _started;
TimeStamp _start_time;
- TimeStamp _quantization;
+ double _quantization;
SharedPtr<Node> _node;
SharedPtr<MidiAction> _enter_action;
SharedPtr<MidiAction> _exit_action;
diff --git a/src/engine/machina/MachineBuilder.hpp b/src/engine/machina/MachineBuilder.hpp
index 4e0e28d..2c9d0a2 100644
--- a/src/engine/machina/MachineBuilder.hpp
+++ b/src/engine/machina/MachineBuilder.hpp
@@ -30,7 +30,7 @@ class Node;
class MachineBuilder {
public:
MachineBuilder(SharedPtr<Machine> machine,
- Raul::TimeStamp quantization);
+ double quantization);
void set_time(Raul::TimeStamp time) { _time = time; }
@@ -43,7 +43,7 @@ public:
private:
bool is_delay_node(SharedPtr<Node> node) const;
- void set_node_duration(SharedPtr<Node> node, Raul::TimeStamp d) const;
+ void set_node_duration(SharedPtr<Node> node, Raul::TimeDuration d) const;
SharedPtr<Node>
connect_nodes(SharedPtr<Machine> m,
@@ -56,7 +56,7 @@ private:
typedef std::list<std::pair<Raul::TimeStamp, SharedPtr<Node> > > PolyList;
PolyList _poly_nodes;
- Raul::TimeStamp _quantization;
+ double _quantization;
Raul::TimeStamp _time;
SharedPtr<Machine> _machine;
diff --git a/src/engine/machina/Mutation.hpp b/src/engine/machina/Mutation.hpp
index 628222b..6d97d29 100644
--- a/src/engine/machina/Mutation.hpp
+++ b/src/engine/machina/Mutation.hpp
@@ -21,7 +21,7 @@
#include "config.h"
#if HAVE_EUGENE
- #include "eugene/core/Mutation.hpp"
+ #include "eugene/Mutation.hpp"
#define SUPER : public Eugene::Mutation<Machine>
#else
#define SUPER
diff --git a/src/engine/machina/Problem.hpp b/src/engine/machina/Problem.hpp
index d487f46..9f15e09 100644
--- a/src/engine/machina/Problem.hpp
+++ b/src/engine/machina/Problem.hpp
@@ -23,13 +23,14 @@
#include <map>
#include "raul/MIDISink.hpp"
#include "machina/Machine.hpp"
+#include "eugene/Problem.hpp"
namespace Machina {
class Problem : public Eugene::Problem<Machine> {
public:
- Problem(const std::string& target_midi, SharedPtr<Machine> seed = SharedPtr<Machine>());
+ Problem(TimeUnit unit, const std::string& target_midi, SharedPtr<Machine> seed = SharedPtr<Machine>());
void seed(SharedPtr<Machine> parent) { _seed = parent; }
@@ -86,7 +87,7 @@ private:
for (uint8_t i=0; i < 128; ++i)
_counts[i] = 0;
}
- void write_event(Raul::BeatTime time,
+ void write_event(TimeStamp time,
size_t ev_size,
const uint8_t* ev) throw (std::logic_error);
void compute();
@@ -106,6 +107,8 @@ private:
uint8_t _first_note;
};
+ TimeUnit _unit;
+
Evaluator _target;
SharedPtr<Machine> _seed;
diff --git a/src/engine/machina/Recorder.hpp b/src/engine/machina/Recorder.hpp
index aa5040a..6a91ba6 100644
--- a/src/engine/machina/Recorder.hpp
+++ b/src/engine/machina/Recorder.hpp
@@ -30,7 +30,7 @@ class MachineBuilder;
class Recorder : public Raul::Slave {
public:
- Recorder(size_t buffer_size, TimeUnit unit, TimeStamp q);
+ Recorder(size_t buffer_size, TimeUnit unit, double q);
inline void write(Raul::TimeStamp time, size_t size, const unsigned char* buf) {
_record_buffer.write(time, size, buf);
diff --git a/src/engine/machina/SMFDriver.hpp b/src/engine/machina/SMFDriver.hpp
index 9cbef26..5e1e9f8 100644
--- a/src/engine/machina/SMFDriver.hpp
+++ b/src/engine/machina/SMFDriver.hpp
@@ -39,12 +39,12 @@ public:
SMFDriver(SharedPtr<Machine> machine = SharedPtr<Machine>());
SharedPtr<Machine> learn(const std::string& filename,
- Raul::TimeStamp q,
+ double q,
Raul::TimeDuration max_duration);
SharedPtr<Machine> learn(const std::string& filename,
unsigned track,
- Raul::TimeStamp q,
+ double q,
Raul::TimeDuration max_duration);
void run(SharedPtr<Machine> machine, Raul::TimeStamp max_time);
@@ -65,7 +65,7 @@ private:
void learn_track(SharedPtr<MachineBuilder> builder,
Raul::SMFReader& reader,
unsigned track,
- Raul::TimeStamp q,
+ double q,
Raul::TimeDuration max_duration);
};