diff options
Diffstat (limited to 'src')
51 files changed, 398 insertions, 398 deletions
diff --git a/src/engine/Action.cpp b/src/engine/Action.cpp index c13e9c8..5504297 100644 --- a/src/engine/Action.cpp +++ b/src/engine/Action.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -25,7 +25,7 @@ void Action::write_state(Redland::Model& model) { using namespace Raul; - + if (!_id) set_id(model.world().blank_id()); diff --git a/src/engine/ActionFactory.cpp b/src/engine/ActionFactory.cpp index 6632b3c..0b926d6 100644 --- a/src/engine/ActionFactory.cpp +++ b/src/engine/ActionFactory.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/engine/Edge.cpp b/src/engine/Edge.cpp index e380a30..fe8df22 100644 --- a/src/engine/Edge.cpp +++ b/src/engine/Edge.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -52,7 +52,7 @@ Edge::write_state(Redland::Model& model) model.add_statement(_id, "machina:head", head->id()); - + model.add_statement(_id, "machina:probability", AtomRDF::atom_to_node(model.world(), Atom(_probability.get()))); diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index f25c4d4..0cd9e77 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -38,9 +38,9 @@ Engine::load_machine(const Glib::ustring& uri) m->activate(); _driver->set_machine(m); } - + // .. and drop it in this thread (to prevent deallocation in the RT thread) - + return m; } @@ -56,9 +56,9 @@ Engine::import_machine(const Glib::ustring& uri) m->activate(); _driver->machine()->nodes().append(m->nodes()); } - + // Discard m - + return _driver->machine(); } @@ -73,9 +73,9 @@ Engine::import_midi(const Glib::ustring& uri, double q, Raul::TimeDuration durat SharedPtr<Machine> m = file_driver->learn(uri, q, duration); m->activate(); _driver->machine()->nodes().append(m->nodes()); - + // Discard m - + return _driver->machine(); } diff --git a/src/engine/Evolver.cpp b/src/engine/Evolver.cpp index af126d6..0ca4c27 100644 --- a/src/engine/Evolver.cpp +++ b/src/engine/Evolver.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -33,9 +33,9 @@ namespace Machina { Evolver::Evolver(TimeUnit unit, const string& target_midi, SharedPtr<Machine> seed) : _problem(new Problem(unit, target_midi, seed)) , _seed_fitness(-FLT_MAX) -{ +{ SharedPtr<Eugene::HybridMutation<Machine> > m(new HybridMutation<Machine>()); - + m->append_mutation(1/6.0f, boost::shared_ptr< Eugene::Mutation<Machine> >( new Mutation::Compress())); m->append_mutation(1/6.0f, boost::shared_ptr< Eugene::Mutation<Machine> >( @@ -58,7 +58,7 @@ Evolver::Evolver(TimeUnit unit, const string& target_midi, SharedPtr<Machine> se _ga = SharedPtr<MachinaGA>(new MachinaGA(_problem, s, crossover, m, 20, 20, 2, 1.0, 0.0)); } - + void Evolver::seed(SharedPtr<Machine> parent) @@ -68,7 +68,7 @@ Evolver::seed(SharedPtr<Machine> parent) _problem->seed(parent); _seed_fitness = _problem->fitness(*parent.get()); } - + void Evolver::_run() @@ -85,7 +85,7 @@ Evolver::_run() _ga->iteration(); float new_best = _ga->best_fitness(); - + /*cout << _problem->fitness_less(old_best, *_ga->best().get()) << endl; cout << "best: " << _ga->best().get() << endl; cout << "best fitness: " << _problem->fitness(*_ga->best().get()) << endl; @@ -98,7 +98,7 @@ Evolver::_run() old_best = new_best; cout << "*** NEW BEST: " << new_best << endl; } - + //cout << "}" << endl; } } diff --git a/src/engine/JackDriver.cpp b/src/engine/JackDriver.cpp index 9993866..ef74a61 100644 --- a/src/engine/JackDriver.cpp +++ b/src/engine/JackDriver.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -58,12 +58,12 @@ JackDriver::attach(const std::string& client_name) if (jack_client()) { //_cycle_time.set_tick_rate(1/(double)sample_rate()); - + _input_port = jack_port_register(jack_client(), "in", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0); - + if (!_input_port) std:: cerr << "WARNING: Failed to create MIDI input port." << std::endl; @@ -71,7 +71,7 @@ JackDriver::attach(const std::string& client_name) "out", JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0); - + if (!_output_port) std::cerr << "WARNING: Failed to create MIDI output port." << std::endl; @@ -93,7 +93,7 @@ JackDriver::detach() jack_port_unregister(jack_client(), _input_port); _input_port = NULL; } - + if (_output_port) { jack_port_unregister(jack_client(), _output_port); _output_port = NULL; @@ -109,7 +109,7 @@ JackDriver::set_machine(SharedPtr<Machine> machine) return; cout << "DRIVER MACHINE: " << machine.get() << endl; - SharedPtr<Machine> last_machine = _last_machine; // Keep a reference + SharedPtr<Machine> last_machine = _last_machine; // Keep a reference _machine_changed.reset(0); assert(!last_machine.unique()); _machine = machine; @@ -136,7 +136,7 @@ JackDriver::process_input(SharedPtr<Machine> machine, const TimeSlice& time) for (jack_nframes_t i=0; i < event_count; ++i) { jack_midi_event_t ev; jack_midi_event_get(&ev, jack_buffer, i); - + _recorder->write(_record_time + TimeStamp(_record_time.unit(), ev.time, 0), ev.size, ev.buffer); } @@ -165,9 +165,9 @@ JackDriver::process_input(SharedPtr<Machine> machine, const TimeSlice& time) } } else if (ev.buffer[0] == 0x80) { - + const SharedPtr<LearnRequest> learn = machine->pending_learn(); - + if (learn) { if (learn->started()) { learn->exit_action()->set_event(ev.size, ev.buffer); @@ -193,7 +193,7 @@ JackDriver::write_event(Raul::TimeStamp time, return; if (_cycle_time.beats_to_ticks(time) + _cycle_time.offset_ticks() < _cycle_time.start_ticks()) { - std::cerr << "ERROR: Missed event by " + std::cerr << "ERROR: Missed event by " << _cycle_time.start_ticks() - (_cycle_time.beats_to_ticks(time) + _cycle_time.offset_ticks()) << " ticks" @@ -262,14 +262,14 @@ JackDriver::on_process(jack_nframes_t nframes) } _machine_changed.post(); // Signal we're done with it } - + if (!machine) { _last_machine = machine; return; } - + machine->set_sink(shared_from_this()); - + if (_recording.get()) _record_time += length_beats; @@ -296,13 +296,13 @@ JackDriver::on_process(jack_nframes_t nframes) } else if (machine->is_finished()) { const TimeStamp finish_offset = _cycle_time.offset_ticks() + run_dur_frames; assert(finish_offset < length_ticks); - + machine->reset(machine->time()); _cycle_time.set_slice(TimeStamp(_frames_unit, 0, 0), TimeDuration(_frames_unit, nframes - finish_offset.ticks())); _cycle_time.set_offset(finish_offset); - + // Machine ran for entire cycle } else { if (machine->is_finished()) { @@ -323,7 +323,7 @@ end: /* Remember the last machine run, in case a switch happens and * we need to finalize it next cycle. */ _last_machine = machine; - + if (_stop.pending()) { _cycle_time.set_slice(TimeStamp(_frames_unit, 0, 0), TimeStamp(_frames_unit, 0, 0)); diff --git a/src/engine/LearnRequest.cpp b/src/engine/LearnRequest.cpp index 782cfff..5573fb7 100644 --- a/src/engine/LearnRequest.cpp +++ b/src/engine/LearnRequest.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -29,7 +29,7 @@ LearnRequest::finish(TimeStamp time) _node->set_exit_action(_exit_action); //TimeDuration duration = Raul::Quantizer::quantize(_quantization, time - _start_time); - + //_node->set_duration(duration); } diff --git a/src/engine/Loader.cpp b/src/engine/Loader.cpp index 6d1409d..1f0140c 100644 --- a/src/engine/Loader.cpp +++ b/src/engine/Loader.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -76,7 +76,7 @@ Loader::load(const Glib::ustring& uri) cout << "[Loader] Loading " << machine_uri << " from " << document_uri << endl; machine = SharedPtr<Machine>(new Machine(TimeUnit::beats(MACHINA_PPQN))); - + typedef std::map<string, SharedPtr<Node> > Created; Created created; @@ -85,7 +85,7 @@ Loader::load(const Glib::ustring& uri) /* Get initial nodes */ Query query = Query(_rdf_world, ustring( - "SELECT DISTINCT ?node ?duration WHERE {\n") + + "SELECT DISTINCT ?node ?duration WHERE {\n") + machine_uri + " :initialNode ?node .\n" "?node :duration ?duration .\n" "}\n"); @@ -118,14 +118,14 @@ Loader::load(const Glib::ustring& uri) SharedPtr<Node> node(new Node( TimeStamp(TimeUnit(TimeUnit::BEATS, MACHINA_PPQN), (double)(*i)["duration"]), false)); - machine->add_node(node); + machine->add_node(node); created[node_id] = node; } } /* Find out which nodes are selectors */ - + query = Query(_rdf_world, ustring( "SELECT DISTINCT ?node WHERE {\n") + machine_uri + " :node ?node .\n" @@ -184,7 +184,7 @@ Loader::load(const Glib::ustring& uri) for (Query::Results::iterator i = results.begin(); i != results.end(); ++i) { const char* src_uri = (*i)["src"]; - const char* dst_uri = (*i)["dst"]; + const char* dst_uri = (*i)["dst"]; float prob = (*i)["prob"]; Created::iterator src_i = created.find(src_uri); diff --git a/src/engine/Machine.cpp b/src/engine/Machine.cpp index 7dcac34..fdeb6c6 100644 --- a/src/engine/Machine.cpp +++ b/src/engine/Machine.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -38,7 +38,7 @@ Machine::Machine(TimeUnit unit) { } - + /** Copy a Machine. * * Creates a deep copy which is the 'same' machine, but with @@ -53,13 +53,13 @@ Machine::Machine(const Machine& copy) , _sink(copy._sink) { map< SharedPtr<Node>, SharedPtr<Node> > replacements; - + for (Nodes::const_iterator n = copy._nodes.begin(); n != copy._nodes.end(); ++n) { SharedPtr<Machina::Node> node(new Machina::Node(*n->get())); _nodes.push_back(node); replacements[*n] = node; } - + for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { for (Node::Edges::const_iterator e = (*n)->edges().begin(); e != (*n)->edges().end(); ++e) { (*e)->set_tail(*n); @@ -82,13 +82,13 @@ Machine::operator=(const Machine& other) _nodes.clear(); map< SharedPtr<Node>, SharedPtr<Node> > replacements; - + for (Nodes::const_iterator n = other._nodes.begin(); n != other._nodes.end(); ++n) { SharedPtr<Machina::Node> node(new Machina::Node(*n->get())); _nodes.push_back(node); replacements[*n] = node; } - + for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { for (Node::Edges::const_iterator e = (*n)->edges().begin(); e != (*n)->edges().end(); ++e) { (*e)->set_tail(*n); @@ -111,7 +111,7 @@ Machine::set_sink(SharedPtr<Raul::MIDISink> sink) { _sink = sink; } - + /** Always returns a node, unless there are none */ SharedPtr<Node> @@ -119,7 +119,7 @@ Machine::random_node() { if (_nodes.empty()) return SharedPtr<Node>(); - + size_t i = rand() % _nodes.size(); // FIXME: O(n) worst case :( @@ -136,7 +136,7 @@ SharedPtr<Edge> Machine::random_edge() { SharedPtr<Node> tail = random_node(); - + for (size_t i = 0; i < _nodes.size() && tail->edges().empty(); ++i) tail = random_node(); @@ -156,7 +156,7 @@ void Machine::remove_node(SharedPtr<Node> node) { _nodes.erase(_nodes.find(node)); - + for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) (*n)->remove_edges_to(node); } @@ -176,7 +176,7 @@ Machine::reset(Raul::TimeStamp time) assert(! node->is_active()); } - + for (size_t i=0; i < MAX_ACTIVE_NODES; ++i) _active_nodes.at(i).reset(); } @@ -190,12 +190,12 @@ Machine::reset(Raul::TimeStamp time) */ SharedPtr<Node> Machine::earliest_node() const -{ +{ SharedPtr<Node> earliest; - + for (size_t i=0; i < MAX_ACTIVE_NODES; ++i) { SharedPtr<Node> node = _active_nodes.at(i); - + if (node) { assert(node->is_active()); if (!earliest || node->exit_time() < earliest->exit_time()) { @@ -209,7 +209,7 @@ Machine::earliest_node() const /** Enter a state at the current _time. - * + * * Returns true if node was entered, or false if the maximum active nodes has been reached. */ bool @@ -250,7 +250,7 @@ Machine::exit_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node) // Activate successors to this node // (that aren't aready active right now) - + if (node->is_selector()) { const double rand_normal = rand() / (double)RAND_MAX; // [0, 1] @@ -258,7 +258,7 @@ Machine::exit_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node) for (Node::Edges::const_iterator s = node->edges().begin(); s != node->edges().end(); ++s) { - + if (!(*s)->head()->is_active() && rand_normal > range_min && rand_normal < range_min + (*s)->probability()) { @@ -293,7 +293,7 @@ Machine::exit_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node) /** Run the machine for a (real) time slice. * * Returns the duration of time the machine actually ran. - * + * * Caller can check is_finished() to determine if the machine still has any * active states. If not, time() will return the exact time stamp the * machine actually finished on (so it can be restarted immediately @@ -317,10 +317,10 @@ Machine::run(const Raul::TimeSlice& time) bool entered = false; if ( ! _nodes.empty()) { for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { - + if ((*n)->is_active()) (*n)->exit(sink, _time); - + if ((*n)->is_initial()) { if (enter_node(sink, (*n))) entered = true; @@ -333,7 +333,7 @@ Machine::run(const Raul::TimeSlice& time) return TimeStamp(_time.unit(), 0, 0); } } - + TimeStamp this_time(_time.unit(), 0, 0); while (true) { @@ -363,7 +363,7 @@ Machine::run(const Raul::TimeSlice& time) } } - + //assert(this_time <= time.length_beats()); return this_time; } @@ -394,7 +394,7 @@ Machine::write_state(Redland::Model& model) size_t count = 0; for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { - + (*n)->write_state(model); if ((*n)->is_initial()) { @@ -411,12 +411,12 @@ Machine::write_state(Redland::Model& model) count = 0; for (Nodes::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { - + for (Node::Edges::const_iterator e = (*n)->edges().begin(); e != (*n)->edges().end(); ++e) { - + (*e)->write_state(model); - + model.add_statement(model.base_uri(), Redland::Node(model.world(), Redland::Node::RESOURCE, "machina:edge"), (*e)->id()); diff --git a/src/engine/MachineBuilder.cpp b/src/engine/MachineBuilder.cpp index f3d6387..28f7364 100644 --- a/src/engine/MachineBuilder.cpp +++ b/src/engine/MachineBuilder.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -103,7 +103,7 @@ MachineBuilder::connect_nodes(SharedPtr<Machine> m, delay_node->add_edge(SharedPtr<Edge>(new Edge(delay_node, head))); m->add_node(delay_node); } - + return delay_node; } @@ -120,7 +120,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, return; if ((buf[0] & 0xF0) == MIDI_CMD_NOTE_ON) { - + SharedPtr<Node> node(new Node(TimeStamp(unit))); node->set_enter_action(SharedPtr<Action>(new MidiAction(ev_size, buf))); @@ -159,7 +159,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, _active_nodes.push_back(node); } else if ((buf[0] & 0xF0) == MIDI_CMD_NOTE_OFF) { - + for (ActiveList::iterator i = _active_nodes.begin(); i != _active_nodes.end(); ++i) { SharedPtr<MidiAction> action = PtrCast<MidiAction>((*i)->enter_action()); if (!action) @@ -202,7 +202,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, // Just monophonic } else { - + // Trim useless delay node if possible (these appear after poly sections) if (is_delay_node(_connect_node) && _connect_node->duration().is_zero() && _connect_node->edges().size() == 1 @@ -223,7 +223,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, _connect_node = resolved; _machine->add_node(resolved); } - } + } // Polyphonic, add this state to poly list } else { @@ -231,7 +231,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, _connect_node = resolved; _connect_node_end_time = t; } - + if (resolved->is_active()) resolved->exit(SharedPtr<Raul::MIDISink>(), t); @@ -240,7 +240,7 @@ MachineBuilder::event(Raul::TimeStamp time_offset, break; } } - + } } @@ -273,7 +273,7 @@ MachineBuilder::resolve() } // Add initial note if necessary - if (_machine->nodes().size() > 0 + if (_machine->nodes().size() > 0 && _machine->nodes().find(_initial_node) == _machine->nodes().end()) _machine->add_node(_initial_node); diff --git a/src/engine/MidiAction.cpp b/src/engine/MidiAction.cpp index c57a9c0..127c931 100644 --- a/src/engine/MidiAction.cpp +++ b/src/engine/MidiAction.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -101,7 +101,7 @@ MidiAction::write_state(Redland::Model& model) model.add_statement(_id, Redland::Node(model.world(), Redland::Node::RESOURCE, "rdf:type"), Redland::Node(model.world(), Redland::Node::RESOURCE, "machina:MidiAction")); - + // FIXME: Assumes note on/note off model.add_statement(_id, Redland::Node(model.world(), Redland::Node::RESOURCE, "machina:midiNote"), diff --git a/src/engine/Mutation.cpp b/src/engine/Mutation.cpp index 62abad5..1d3d794 100644 --- a/src/engine/Mutation.cpp +++ b/src/engine/Mutation.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -37,7 +37,7 @@ Compress::mutate(Machine& machine) for (Machine::Nodes::iterator i = machine.nodes().begin(); i != machine.nodes().end() ;) { Machine::Nodes::iterator next = i; ++next; - + if ((*i)->edges().empty()) machine.remove_node(*i); @@ -54,7 +54,7 @@ AddNode::mutate(Machine& machine) // Create random node SharedPtr<Node> node(new Node(machine.time().unit())); node->set_selector(true); - + SharedPtr<Node> note_node = machine.random_node(); if (!note_node) return; @@ -68,12 +68,12 @@ AddNode::mutate(Machine& machine) node->set_enter_action(ActionFactory::note_on(note)); node->set_exit_action(ActionFactory::note_off(note)); machine.add_node(node); - + // Insert after some node SharedPtr<Node> tail = machine.random_node(); if (tail && tail != node/* && !node->connected_to(tail)*/) tail->add_edge(boost::shared_ptr<Edge>(new Edge(tail, node))); - + // Insert before some other node SharedPtr<Node> head = machine.random_node(); if (head && head != node/* && !head->connected_to(node)*/) @@ -91,7 +91,7 @@ RemoveNode::mutate(Machine& machine) machine.remove_node(node); } - + void AdjustNode::mutate(Machine& machine) { @@ -110,12 +110,12 @@ AdjustNode::mutate(Machine& machine) } } - + void SwapNodes::mutate(Machine& machine) { //cout << "SWAP NODE" << endl; - + if (machine.nodes().size() <= 1) return; @@ -165,7 +165,7 @@ RemoveEdge::mutate(Machine& machine) tail->remove_edge(tail->random_edge()); } - + void AdjustEdge::mutate(Machine& machine) { diff --git a/src/engine/Node.cpp b/src/engine/Node.cpp index 9ca4157..2c3ddda 100644 --- a/src/engine/Node.cpp +++ b/src/engine/Node.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -65,7 +65,7 @@ Node::random_edge() SharedPtr<Edge> ret; if (_edges.empty()) return ret; - + size_t i = rand() % _edges.size(); // FIXME: O(n) worst case :( @@ -88,13 +88,13 @@ Node::edges_changed() // Normalize edge probabilities if we're a selector double prob_sum = 0; - + for (Edges::iterator i = _edges.begin(); i != _edges.end(); ++i) prob_sum += (*i)->probability(); for (Edges::iterator i = _edges.begin(); i != _edges.end(); ++i) (*i)->set_probability((*i)->probability() / prob_sum); - + _changed = true; } @@ -106,7 +106,7 @@ Node::set_selector(bool yn) if (yn) edges_changed(); - + _changed = true; } @@ -131,13 +131,13 @@ void Node::enter(SharedPtr<MIDISink> sink, TimeStamp time) { assert(!_is_active); - + _changed = true; _is_active = true; _enter_time = time; cerr << "ENTERING " << this << endl; - + if (sink && _enter_action) _enter_action->execute(sink, time); } @@ -147,12 +147,12 @@ void Node::exit(SharedPtr<MIDISink> sink, TimeStamp time) { assert(_is_active); - + cerr << "EXITING " << this << endl; - + if (sink && _exit_action) _exit_action->execute(sink, time); - + _changed = true; _is_active = false; _enter_time = 0; @@ -166,7 +166,7 @@ Node::add_edge(SharedPtr<Edge> edge) for (Edges::const_iterator i = _edges.begin(); i != _edges.end(); ++i) if ((*i)->head() == edge->head()) return; - + _edges.push_back(edge); edges_changed(); } @@ -179,7 +179,7 @@ Node::remove_edge(SharedPtr<Edge> edge) edges_changed(); } - + bool Node::connected_to(SharedPtr<Node> node) { @@ -203,7 +203,7 @@ Node::remove_edges_to(SharedPtr<Node> node) i = next; } - + edges_changed(); } @@ -212,7 +212,7 @@ void Node::write_state(Redland::Model& model) { using namespace Raul; - + if (!_id) set_id(model.world().blank_id()); @@ -231,7 +231,7 @@ Node::write_state(Redland::Model& model) if (_enter_action) { _enter_action->write_state(model); - + model.add_statement(_id, "machina:enterAction", _enter_action->id()); diff --git a/src/engine/Problem.cpp b/src/engine/Problem.cpp index 6de61a3..8ecc16d 100644 --- a/src/engine/Problem.cpp +++ b/src/engine/Problem.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -33,7 +33,7 @@ using namespace std; namespace Machina { - + Problem::Problem(TimeUnit unit, const std::string& target_midi, SharedPtr<Machine> seed) : _unit(unit) , _target(*this) @@ -42,9 +42,9 @@ Problem::Problem(TimeUnit unit, const std::string& target_midi, SharedPtr<Machin Raul::SMFReader smf; const bool opened = smf.open(target_midi); assert(opened); - + smf.seek_to_track(2); // FIXME: ? - + uint8_t buf[4]; uint32_t ev_size; uint32_t delta_time; @@ -80,7 +80,7 @@ Problem::fitness(const Machine& const_machine) const map<Machine*, float>::const_iterator cached = _fitness.find(&machine); if (cached != _fitness.end()) return cached->second; - + SharedPtr<Evaluator> eval(new Evaluator(*this)); //machine.reset(); @@ -89,15 +89,15 @@ Problem::fitness(const Machine& const_machine) const machine.set_sink(eval); // FIXME: timing stuff here isn't right at all... - + static const unsigned ppqn = MACHINA_PPQN; Raul::TimeSlice time(ppqn, ppqn, 120.0); time.set_slice(TimeStamp(_unit, 0, 0), TimeDuration(_unit, 2 * ppqn)); - + machine.run(time); if (eval->n_notes() == 0) return 0.0f; // bad dog - + TimeStamp end(_unit, time.start_ticks().ticks() + 2 * ppqn); time.set_slice(end, TimeStamp(_unit, 0, 0)); @@ -109,7 +109,7 @@ Problem::fitness(const Machine& const_machine) const } eval->compute(); - + // count #if 0 float f = 0; @@ -123,12 +123,12 @@ Problem::fitness(const Machine& const_machine) const } #endif //cout << ")"; - + // distance //float f = distance(eval->_notes, _target._notes); - + float f = 0.0; - + for (Evaluator::Patterns::const_iterator i = eval->_patterns.begin(); i != eval->_patterns.end(); ++i) { // Reward for matching patterns if (_target._patterns.find(i->first) != _target._patterns.end()) { @@ -142,7 +142,7 @@ Problem::fitness(const Machine& const_machine) const f -= (i->second / (float)eval->_patterns.size() * (float)(invlen*invlen*invlen)) * 4; } } - + // Punish for missing patterns for (Evaluator::Patterns::const_iterator i = _target._patterns.begin(); i != _target._patterns.end(); ++i) { if (eval->_patterns.find(i->first) == _target._patterns.end()) { @@ -156,7 +156,7 @@ Problem::fitness(const Machine& const_machine) const return f; } - + void Problem::Evaluator::write_event(Raul::TimeStamp time, @@ -166,10 +166,10 @@ Problem::Evaluator::write_event(Raul::TimeStamp time, if ((ev[0] & 0xF0) == MIDI_CMD_NOTE_ON) { const uint8_t note = ev[1]; - + if (_first_note == 0) _first_note = note; - + /*++_note_frequency[note]; ++n_notes();*/ //_notes.push_back(note); @@ -193,7 +193,7 @@ Problem::Evaluator::write_event(Raul::TimeStamp time, ++_counts[note]; ++_n_notes; - + } } @@ -209,7 +209,7 @@ Problem::Evaluator::compute() } }*/ } - + boost::shared_ptr<Problem::Population> Problem::initial_population(size_t gene_size, size_t pop_size) const @@ -262,7 +262,7 @@ Problem::initial_population(size_t gene_size, size_t pop_size) const cur = head; } } - + ret->push_back(m); /*cout << "initial # nodes: " << m.nodes().size(); @@ -279,10 +279,10 @@ Problem::distance(const std::vector<uint8_t>& source, const std::vector<uint8_t>& target) const { // Derived from http://www.merriampark.com/ldcpp.htm - + assert(source.size() < UINT16_MAX); assert(target.size() < UINT16_MAX); - + // Step 1 const uint16_t n = source.size(); diff --git a/src/engine/RaulJackDriver.cpp b/src/engine/RaulJackDriver.cpp index 6c60085..b37a1d4 100644 --- a/src/engine/RaulJackDriver.cpp +++ b/src/engine/RaulJackDriver.cpp @@ -1,15 +1,15 @@ /* This file is part of Raul. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Raul is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Raul is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -41,7 +41,7 @@ JackDriver::JackDriver() } -JackDriver::~JackDriver() +JackDriver::~JackDriver() { detach(); } @@ -50,12 +50,12 @@ JackDriver::~JackDriver() /** Connect to Jack. */ void -JackDriver::attach(const string& client_name, string server_name) +JackDriver::attach(const string& client_name, string server_name) { // Already connected if (_client) return; - + jack_set_error_function(error_cb); if (server_name.length() > 0) @@ -75,7 +75,7 @@ JackDriver::attach(const string& client_name, string server_name) jack_set_buffer_size_callback(_client, jack_buffer_size_cb, this); jack_set_xrun_callback(_client, jack_xrun_cb, this); jack_set_process_callback(_client, jack_process_cb, this); - + //_is_dirty = true; _buffer_size = jack_get_buffer_size(_client); } @@ -83,7 +83,7 @@ JackDriver::attach(const string& client_name, string server_name) void -JackDriver::detach() +JackDriver::detach() { if (_client) { deactivate(); @@ -120,17 +120,17 @@ JackDriver::deactivate() void -JackDriver::jack_port_registration_cb(jack_port_id_t /*port_id*/, int /*registered*/, void* /*jack_driver*/) +JackDriver::jack_port_registration_cb(jack_port_id_t /*port_id*/, int /*registered*/, void* /*jack_driver*/) { /* whatever. */ } int -JackDriver::jack_graph_order_cb(void* jack_driver) +JackDriver::jack_graph_order_cb(void* jack_driver) { JackDriver* me = reinterpret_cast<JackDriver*>(jack_driver); - + assert(me); me->on_graph_order_changed(); @@ -142,7 +142,7 @@ int JackDriver::jack_xrun_cb(void* jack_driver) { JackDriver* me = reinterpret_cast<JackDriver*>(jack_driver); - + assert(me); me->_xruns++; @@ -150,16 +150,16 @@ JackDriver::jack_xrun_cb(void* jack_driver) me->reset_delay(); me->on_xrun(); - + return 0; } int -JackDriver::jack_buffer_size_cb(jack_nframes_t buffer_size, void* jack_driver) +JackDriver::jack_buffer_size_cb(jack_nframes_t buffer_size, void* jack_driver) { JackDriver* me = reinterpret_cast<JackDriver*>(jack_driver); - + assert(me); me->reset_xruns(); me->reset_delay(); @@ -169,16 +169,16 @@ JackDriver::jack_buffer_size_cb(jack_nframes_t buffer_size, void* jack_driver) return 0; } - + int JackDriver::jack_process_cb(jack_nframes_t nframes, void* jack_driver) { JackDriver* me = reinterpret_cast<JackDriver*>(jack_driver); - + assert(me); me->on_process(nframes); - + return 0; } @@ -234,7 +234,7 @@ JackDriver::set_buffer_size(jack_nframes_t size) _buffer_size = size; return true; } - + if (jack_set_buffer_size(_client, size)) { //_app->status_message("[JACK] ERROR: Unable to set buffer size"); return false; diff --git a/src/engine/RaulJackDriver.hpp b/src/engine/RaulJackDriver.hpp index f1b92f1..6ab0116 100644 --- a/src/engine/RaulJackDriver.hpp +++ b/src/engine/RaulJackDriver.hpp @@ -1,15 +1,15 @@ /* This file is part of Raul. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Raul is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Raul is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -36,7 +36,7 @@ class JackDriver public: JackDriver(); virtual ~JackDriver(); - + void attach(const std::string& client_name, std::string server_name=""); void detach(); @@ -46,17 +46,17 @@ public: bool is_activated() const { return _is_activated; } bool is_attached() const { return (_client != NULL); } bool is_realtime() const { return _client && jack_is_realtime(_client); } - + void start_transport() { jack_transport_start(_client); } void stop_transport() { jack_transport_stop(_client); } - + void rewind_transport() { jack_position_t zero; zero.frame = 0; zero.valid = (jack_position_bits_t)0; jack_transport_reposition(_client, &zero); } - + jack_nframes_t buffer_size(); bool set_buffer_size(jack_nframes_t size); diff --git a/src/engine/Recorder.cpp b/src/engine/Recorder.cpp index 03ea7d0..2ae8b85 100644 --- a/src/engine/Recorder.cpp +++ b/src/engine/Recorder.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -45,7 +45,7 @@ Recorder::_whipped() _builder->set_time(t); _builder->event(TimeStamp(_unit), size, buf); } -} +} SharedPtr<Machine> diff --git a/src/engine/SMFDriver.cpp b/src/engine/SMFDriver.cpp index f482652..3cab320 100644 --- a/src/engine/SMFDriver.cpp +++ b/src/engine/SMFDriver.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -52,7 +52,7 @@ SMFDriver::learn(const string& filename, unsigned track, double q, Raul::TimeDur SharedPtr<Machine> m(new Machine(max_duration.unit())); SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>(new MachineBuilder(m, q)); Raul::SMFReader reader; - + if (!reader.open(filename)) { cerr << "Unable to open MIDI file " << filename << endl; return SharedPtr<Machine>(); @@ -82,7 +82,7 @@ SMFDriver::learn(const string& filename, double q, Raul::TimeStamp max_duration) SharedPtr<Machine> m(new Machine(max_duration.unit())); SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>(new MachineBuilder(m, q)); Raul::SMFReader reader; - + if (!reader.open(filename)) { cerr << "Unable to open MIDI file " << filename << endl; return SharedPtr<Machine>(); @@ -112,11 +112,11 @@ SMFDriver::learn_track(SharedPtr<MachineBuilder> builder, const bool found_track = reader.seek_to_track(track); if (!found_track) return; - + uint8_t buf[4]; uint32_t ev_size; uint32_t ev_delta_time; - + uint64_t t = 0; double unquantized_t = 0; diff --git a/src/engine/machina/Action.hpp b/src/engine/machina/Action.hpp index 09c3878..f7a702f 100644 --- a/src/engine/machina/Action.hpp +++ b/src/engine/machina/Action.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/engine/machina/ActionFactory.hpp b/src/engine/machina/ActionFactory.hpp index 0cf4154..1e613bb 100644 --- a/src/engine/machina/ActionFactory.hpp +++ b/src/engine/machina/ActionFactory.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/engine/machina/Driver.hpp b/src/engine/machina/Driver.hpp index f412574..f1f0587 100644 --- a/src/engine/machina/Driver.hpp +++ b/src/engine/machina/Driver.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -32,10 +32,10 @@ public: SharedPtr<Machine> machine() { return _machine; } virtual void set_machine(SharedPtr<Machine> machine) { _machine = machine; } - + virtual void set_bpm(double bpm) = 0; virtual void set_quantization(double q) = 0; - + virtual void activate() {} virtual void deactivate() {} diff --git a/src/engine/machina/Edge.hpp b/src/engine/machina/Edge.hpp index 5851090..41f5d00 100644 --- a/src/engine/machina/Edge.hpp +++ b/src/engine/machina/Edge.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -53,7 +53,7 @@ public: private: Raul::DoubleBuffer<float> _probability; - + WeakPtr<Node> _tail; SharedPtr<Node> _head; }; diff --git a/src/engine/machina/Engine.hpp b/src/engine/machina/Engine.hpp index 92384a8..b77f637 100644 --- a/src/engine/machina/Engine.hpp +++ b/src/engine/machina/Engine.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -36,7 +36,7 @@ public: , _loader(_rdf_world) { } - + Redland::World& rdf_world() { return _rdf_world; } SharedPtr<Driver> driver() { return _driver; } diff --git a/src/engine/machina/Evolver.hpp b/src/engine/machina/Evolver.hpp index 1b847db..d5006f6 100644 --- a/src/engine/machina/Evolver.hpp +++ b/src/engine/machina/Evolver.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -35,14 +35,14 @@ class Problem; class Evolver : public Raul::Thread { public: Evolver(Raul::TimeUnit unit, const string& target_midi, SharedPtr<Machine> seed); - + void seed(SharedPtr<Machine> parent); bool improvement() { return _improvement; } SharedPtr<const Machine> best() { return _ga->best(); } - + typedef Eugene::GAImpl<Machine> MachinaGA; - + private: void _run(); diff --git a/src/engine/machina/JackDriver.hpp b/src/engine/machina/JackDriver.hpp index 5982f87..2a5a695 100644 --- a/src/engine/machina/JackDriver.hpp +++ b/src/engine/machina/JackDriver.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -50,16 +50,16 @@ public: void attach(const std::string& client_name); void detach(); - + void activate() { Raul::JackDriver::activate(); } void deactivate() { Raul::JackDriver::deactivate(); } void set_machine(SharedPtr<Machine> machine); - + void write_event(Raul::TimeStamp time, size_t size, const unsigned char* event) throw (std::logic_error); - + void set_bpm(double bpm) { _bpm.set(bpm); } void set_quantization(double q) { _quantization.set(q); } @@ -80,7 +80,7 @@ private: jack_port_t* _input_port; jack_port_t* _output_port; - + Raul::TimeUnit _frames_unit; Raul::TimeUnit _beats_unit; Raul::TimeSlice _cycle_time; diff --git a/src/engine/machina/LearnRequest.hpp b/src/engine/machina/LearnRequest.hpp index edc76c9..d106395 100644 --- a/src/engine/machina/LearnRequest.hpp +++ b/src/engine/machina/LearnRequest.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -45,9 +45,9 @@ public: void start(double q, Raul::TimeStamp time) { _started = true; _start_time = time; _quantization = q; } - + void finish(TimeStamp time); - + bool started() { return _started; } const SharedPtr<Node>& node() { return _node; } diff --git a/src/engine/machina/Loader.hpp b/src/engine/machina/Loader.hpp index 2c9fa1c..4a6ba38 100644 --- a/src/engine/machina/Loader.hpp +++ b/src/engine/machina/Loader.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/engine/machina/Machine.hpp b/src/engine/machina/Machine.hpp index 468b9bc..3fd7073 100644 --- a/src/engine/machina/Machine.hpp +++ b/src/engine/machina/Machine.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -24,7 +24,7 @@ #include "raul/WeakPtr.hpp" #include "raul/List.hpp" #include "raul/TimeSlice.hpp" -#include "redlandmm/Model.hpp" +#include "redlandmm/Model.hpp" #include "types.hpp" #include "LearnRequest.hpp" #include "Node.hpp" @@ -43,11 +43,11 @@ public: // Kluge to appease Eugene bool operator==(const Machine& other) { return false; } - + // Main context void activate() { _is_activated = true; } void deactivate() { _is_activated = false; } - + bool is_empty() { return _nodes.empty(); } bool is_finished() { return _is_finished; } bool is_activated() { return _is_activated; } @@ -61,7 +61,7 @@ public: // Audio context void reset(Raul::TimeStamp time); TimeDuration run(const Raul::TimeSlice& time); - + // Any context inline Raul::TimeStamp time() const { return _time; } @@ -76,9 +76,9 @@ public: SharedPtr<Edge> random_edge(); void set_sink(SharedPtr<Raul::MIDISink> sink); - + private: - + // Audio context SharedPtr<Node> earliest_node() const; bool enter_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node); diff --git a/src/engine/machina/MachineBuilder.hpp b/src/engine/machina/MachineBuilder.hpp index 2c9d0a2..4353797 100644 --- a/src/engine/machina/MachineBuilder.hpp +++ b/src/engine/machina/MachineBuilder.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -35,7 +35,7 @@ public: void set_time(Raul::TimeStamp time) { _time = time; } void event(Raul::TimeStamp time_offset, size_t size, unsigned char* buf); - + void reset(); void resolve(); @@ -49,10 +49,10 @@ private: connect_nodes(SharedPtr<Machine> m, SharedPtr<Node> tail, Raul::TimeStamp tail_end_time, SharedPtr<Node> head, Raul::TimeStamp head_start_time); - + typedef std::list<SharedPtr<Node> > ActiveList; ActiveList _active_nodes; - + typedef std::list<std::pair<Raul::TimeStamp, SharedPtr<Node> > > PolyList; PolyList _poly_nodes; diff --git a/src/engine/machina/MidiAction.hpp b/src/engine/machina/MidiAction.hpp index 5ae507e..96087d6 100644 --- a/src/engine/machina/MidiAction.hpp +++ b/src/engine/machina/MidiAction.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -31,7 +31,7 @@ namespace Machina { class MidiAction : public Action { public: ~MidiAction(); - + MidiAction(size_t size, const unsigned char* event); @@ -41,7 +41,7 @@ public: bool set_event(size_t size, const byte* event); void execute(SharedPtr<Raul::MIDISink> driver, Raul::TimeStamp time); - + virtual void write_state(Redland::Model& model); private: diff --git a/src/engine/machina/Mutation.hpp b/src/engine/machina/Mutation.hpp index de31fc3..7c407c6 100644 --- a/src/engine/machina/Mutation.hpp +++ b/src/engine/machina/Mutation.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/engine/machina/Node.hpp b/src/engine/machina/Node.hpp index 4258476..535a49d 100644 --- a/src/engine/machina/Node.hpp +++ b/src/engine/machina/Node.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -78,12 +78,12 @@ public: inline bool changed() { return _changed; } inline void set_changed() { _changed = true; } - + typedef Raul::List<SharedPtr<Edge> > Edges; Edges& edges() { return _edges; } - + SharedPtr<Edge> random_edge(); - + private: Node& operator=(const Node& other); // undefined diff --git a/src/engine/machina/Problem.hpp b/src/engine/machina/Problem.hpp index c0c1662..58393e1 100644 --- a/src/engine/machina/Problem.hpp +++ b/src/engine/machina/Problem.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -33,11 +33,11 @@ public: void seed(SharedPtr<Machine> parent) { _seed = parent; } float fitness(const Machine& machine) const; - + bool fitness_less_than(float a, float b) const { return a < b; } void clear_fitness_cache() { _fitness.clear(); } - + boost::shared_ptr<Population> initial_population(size_t gene_size, size_t pop_size) const; @@ -57,9 +57,9 @@ private: const uint8_t* ev) throw (std::logic_error); void compute(); const Problem& _problem; - + size_t n_notes() const { return _n_notes; } - + float _note_frequency[128]; size_t _n_notes; double _length; @@ -75,11 +75,11 @@ private: const Problem& _problem; size_t n_notes() const { return _notes.size(); } - + std::vector<uint8_t> _notes; float _counts[128]; };*/ - + struct Evaluator : public Raul::MIDISink { Evaluator(const Problem& problem) : _problem(problem), _order(4), _n_notes(0), _first_note(0) { for (uint8_t i=0; i < 128; ++i) @@ -93,7 +93,7 @@ private: size_t n_notes() const { return _n_notes; } uint8_t first_note() const { return _first_note; } - + const uint32_t _order; std::string _read; @@ -109,7 +109,7 @@ private: Evaluator _target; SharedPtr<Machine> _seed; - + /// for levenshtein distance mutable std::vector< std::vector<uint16_t> > _matrix; diff --git a/src/engine/machina/Recorder.hpp b/src/engine/machina/Recorder.hpp index 6a91ba6..16c3b73 100644 --- a/src/engine/machina/Recorder.hpp +++ b/src/engine/machina/Recorder.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -40,7 +40,7 @@ public: private: virtual void _whipped(); - + TimeUnit _unit; Raul::EventRingBuffer _record_buffer; SharedPtr<MachineBuilder> _builder; diff --git a/src/engine/machina/SMFDriver.hpp b/src/engine/machina/SMFDriver.hpp index 5e1e9f8..bc814d8 100644 --- a/src/engine/machina/SMFDriver.hpp +++ b/src/engine/machina/SMFDriver.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -48,12 +48,12 @@ public: Raul::TimeDuration max_duration); void run(SharedPtr<Machine> machine, Raul::TimeStamp max_time); - + void write_event(Raul::TimeStamp time, size_t ev_size, const unsigned char* ev) throw (std::logic_error) { _writer->write_event(time, ev_size, ev); } - + void set_bpm(double /*bpm*/) { } void set_quantization(double /*quantization*/) { } @@ -61,7 +61,7 @@ public: private: SharedPtr<Raul::SMFWriter> _writer; - + void learn_track(SharedPtr<MachineBuilder> builder, Raul::SMFReader& reader, unsigned track, diff --git a/src/engine/machina/Schrodinbit.hpp b/src/engine/machina/Schrodinbit.hpp index 6065cfc..c156f09 100644 --- a/src/engine/machina/Schrodinbit.hpp +++ b/src/engine/machina/Schrodinbit.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/engine/machina/types.hpp b/src/engine/machina/types.hpp index d74fce9..de7d73f 100644 --- a/src/engine/machina/types.hpp +++ b/src/engine/machina/types.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/gui/EdgeView.cpp b/src/gui/EdgeView.cpp index 46d3e77..643e1ac 100644 --- a/src/gui/EdgeView.cpp +++ b/src/gui/EdgeView.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -71,7 +71,7 @@ EdgeView::EdgeView(SharedPtr<Canvas> canvas, show_handle(true); } - + double EdgeView::length_hint() const { diff --git a/src/gui/EdgeView.hpp b/src/gui/EdgeView.hpp index 5a36afa..7736096 100644 --- a/src/gui/EdgeView.hpp +++ b/src/gui/EdgeView.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -35,7 +35,7 @@ public: void show_label(bool show); void update(); - + virtual double length_hint() const; private: diff --git a/src/gui/GladeXml.hpp b/src/gui/GladeXml.hpp index 4ea7a7f..4133814 100644 --- a/src/gui/GladeXml.hpp +++ b/src/gui/GladeXml.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/gui/MachinaCanvas.cpp b/src/gui/MachinaCanvas.cpp index ba43b4e..d610f99 100644 --- a/src/gui/MachinaCanvas.cpp +++ b/src/gui/MachinaCanvas.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -48,10 +48,10 @@ MachinaCanvas::node_clicked(WeakPtr<NodeView> item, GdkEventButton* event) SharedPtr<NodeView> node = PtrCast<NodeView>(item.lock()); if (!node) return; - + if (event->state & GDK_CONTROL_MASK) return; - + // Middle click, learn if (event->button == 2) { _app->engine()->machine()->learn(Machina::LearnRequest::create(_app->maid(), node->node())); @@ -110,7 +110,7 @@ MachinaCanvas::canvas_event(GdkEvent* event) machine->add_node(node); return true; - + } else { return Canvas::canvas_event(event); } @@ -123,7 +123,7 @@ MachinaCanvas::connect_node(boost::shared_ptr<NodeView> src, { SharedPtr<Machina::Edge> edge(new Machina::Edge(src->node(), head->node())); src->node()->add_edge(edge); - + boost::shared_ptr<Connection> c(new EdgeView(shared_from_this(), src, head, edge)); src->add_connection(c); @@ -173,7 +173,7 @@ MachinaCanvas::build(SharedPtr<const Machina::Machine> machine, bool show_labels for (Machina::Machine::Nodes::const_iterator i = machine->nodes().begin(); i != machine->nodes().end(); ++i) { - + const SharedPtr<NodeView> view = create_node_view(*i); views.insert(std::make_pair((*i), view)); } @@ -191,7 +191,7 @@ MachinaCanvas::build(SharedPtr<const Machina::Machine> machine, bool show_labels cerr << "WARNING: Edge to node with no view" << endl; continue; } - + boost::shared_ptr<Connection> c(new EdgeView(shared_from_this(), view, head_view, (*e))); view->add_connection(c); @@ -199,7 +199,7 @@ MachinaCanvas::build(SharedPtr<const Machina::Machine> machine, bool show_labels add_connection(c); } } - + arrange(); } diff --git a/src/gui/MachinaCanvas.hpp b/src/gui/MachinaCanvas.hpp index 86be5d5..e71e382 100644 --- a/src/gui/MachinaCanvas.hpp +++ b/src/gui/MachinaCanvas.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -33,7 +33,7 @@ class MachinaCanvas : public Canvas { public: MachinaCanvas(MachinaGUI* app, int width, int height); - + void connect_node(SharedPtr<NodeView> port1, SharedPtr<NodeView> port2); diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp index baba33f..251ef23 100644 --- a/src/gui/MachinaGUI.cpp +++ b/src/gui/MachinaGUI.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -90,7 +90,7 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) xml->get_widget("add_edge_but", _add_edge_button); xml->get_widget("remove_edge_but", _remove_edge_button); xml->get_widget("adjust_edge_but", _adjust_edge_button); - + _canvas_scrolledwindow->add(*_canvas); _canvas_scrolledwindow->signal_event().connect(sigc::mem_fun(this, &MachinaGUI::scrolled_window_event)); @@ -99,14 +99,14 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) _canvas_scrolledwindow->property_hadjustment().get_value()->set_step_increment(10); _canvas_scrolledwindow->property_vadjustment().get_value()->set_step_increment(10); - + _record_button->signal_toggled().connect(sigc::mem_fun(this, &MachinaGUI::record_toggled)); _stop_button->signal_clicked().connect(sigc::mem_fun(this, &MachinaGUI::stop_clicked)); _play_button->signal_toggled().connect(sigc::mem_fun(this, &MachinaGUI::play_toggled)); _zoom_normal_button->signal_clicked().connect(sigc::bind( sigc::mem_fun(this, &MachinaGUI::zoom), 1.0)); - + _zoom_full_button->signal_clicked().connect( sigc::mem_fun(_canvas.get(), &MachinaCanvas::zoom_full)); @@ -141,7 +141,7 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) sigc::mem_fun(this, &MachinaGUI::quantize_changed)); _quantize_spinbutton->signal_changed().connect( sigc::mem_fun(this, &MachinaGUI::quantize_changed)); - + _mutate_button->signal_clicked().connect(sigc::bind( sigc::mem_fun(this, &MachinaGUI::random_mutation), SharedPtr<Machine>())); _compress_button->signal_clicked().connect(sigc::hide_return(sigc::bind( @@ -160,7 +160,7 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 6)); connect_widgets(); - + _canvas->show(); _main_window->present(); @@ -175,10 +175,10 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) sigc::mem_fun(_maid.get(), &Raul::Maid::cleanup), true), 1000); - + // Idle callback to update node states Glib::signal_timeout().connect(sigc::mem_fun(this, &MachinaGUI::idle_callback), 100); - + #ifdef HAVE_EUGENE _load_target_button->signal_clicked().connect(sigc::mem_fun(this, &MachinaGUI::load_target_clicked)); _evolve_button->signal_clicked().connect(sigc::mem_fun(this, &MachinaGUI::evolve_toggled)); @@ -187,19 +187,19 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine) _evolve_button->set_sensitive(false); _load_target_button->set_sensitive(false); #endif - + _canvas->build(engine->machine(), _menu_view_labels->get_active()); } -MachinaGUI::~MachinaGUI() +MachinaGUI::~MachinaGUI() { } #ifdef HAVE_EUGENE bool -MachinaGUI::evolve_callback() +MachinaGUI::evolve_callback() { if (_evolve) { if (_evolver->improvement()) { @@ -214,7 +214,7 @@ MachinaGUI::evolve_callback() bool -MachinaGUI::idle_callback() +MachinaGUI::idle_callback() { const bool show_labels = _menu_view_labels->get_active(); @@ -233,7 +233,7 @@ MachinaGUI::scrolled_window_event(GdkEvent* event) { if (event->type == GDK_KEY_PRESS) { if (event->key.keyval == GDK_Delete) { - + ItemList selection = _canvas->selected_items(); _canvas->clear_selection(); @@ -249,7 +249,7 @@ MachinaGUI::scrolled_window_event(GdkEvent* event) return true; } } - + return false; } @@ -269,7 +269,7 @@ MachinaGUI::load_target_clicked() dialog.set_local_only(false); dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); - + Gtk::FileFilter filt; filt.add_pattern("*.mid"); filt.set_name("MIDI Files"); @@ -404,20 +404,20 @@ using namespace std; void -MachinaGUI::menu_file_quit() +MachinaGUI::menu_file_quit() { _main_window->hide(); } void -MachinaGUI::menu_file_open() +MachinaGUI::menu_file_open() { Gtk::FileChooserDialog dialog(*_main_window, "Open Machine", Gtk::FILE_CHOOSER_ACTION_OPEN); dialog.set_local_only(false); dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); - + Gtk::FileFilter filt; filt.add_pattern("*.machina.ttl"); filt.set_name("Machina Machines (Turtle/RDF)"); @@ -437,14 +437,14 @@ MachinaGUI::menu_file_open() void -MachinaGUI::menu_file_save() +MachinaGUI::menu_file_save() { if (_save_uri == "" || _save_uri.substr(0, 5) != "file:") { menu_file_save_as(); } else { if (!raptor_uri_uri_string_is_file_uri((const unsigned char*)_save_uri.c_str())) menu_file_save_as(); - + Redland::Model model(_engine->rdf_world()); model.set_base_uri(_save_uri); _engine->machine()->write_state(model); @@ -454,31 +454,31 @@ MachinaGUI::menu_file_save() void -MachinaGUI::menu_file_save_as() +MachinaGUI::menu_file_save_as() { Gtk::FileChooserDialog dialog(*_main_window, "Save Machine", Gtk::FILE_CHOOSER_ACTION_SAVE); - + dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - dialog.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_OK); - + dialog.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_OK); + if (_save_uri.length() > 0) dialog.set_uri(_save_uri); - + const int result = dialog.run(); - + assert(result == Gtk::RESPONSE_OK || result == Gtk::RESPONSE_CANCEL || result == Gtk::RESPONSE_NONE); - - if (result == Gtk::RESPONSE_OK) { + + if (result == Gtk::RESPONSE_OK) { string filename = dialog.get_filename(); if (filename.length() < 13 || filename.substr(filename.length()-12) != ".machina.ttl") filename += ".machina.ttl"; Glib::ustring uri = Glib::filename_to_uri(filename); - + bool confirm = false; std::fstream fin; fin.open(filename.c_str(), std::ios::in); @@ -495,7 +495,7 @@ MachinaGUI::menu_file_save_as() confirm = true; } fin.close(); - + if (confirm) { Redland::Model model(_engine->rdf_world()); _save_uri = uri; @@ -514,12 +514,12 @@ MachinaGUI::menu_import_midi() Gtk::FILE_CHOOSER_ACTION_OPEN); dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); - + Gtk::FileFilter filt; filt.add_pattern("*.mid"); filt.set_name("MIDI Files"); dialog.set_filter(filt); - + Gtk::HBox* extra_widget = Gtk::manage(new Gtk::HBox()); Gtk::SpinButton* length_sb = Gtk::manage(new Gtk::SpinButton()); length_sb->set_increments(1, 10); @@ -527,21 +527,21 @@ MachinaGUI::menu_import_midi() length_sb->set_value(0); extra_widget->pack_start(*Gtk::manage(new Gtk::Label("")), true, true); extra_widget->pack_start(*Gtk::manage(new Gtk::Label("Maximum Length (0 = unlimited): ")), false, false); - extra_widget->pack_start(*length_sb, false, false); + extra_widget->pack_start(*length_sb, false, false); dialog.set_extra_widget(*extra_widget); extra_widget->show_all(); - + const int result = dialog.run(); if (result == Gtk::RESPONSE_OK) { SharedPtr<Machina::SMFDriver> file_driver(new Machina::SMFDriver()); - + double length_dbl = length_sb->get_value_as_int(); Raul::TimeStamp length(_unit, length_dbl); SharedPtr<Machina::Machine> machine = file_driver->learn(dialog.get_filename(), 0.0, length); - + if (machine) { dialog.hide(); machine->activate(); @@ -552,7 +552,7 @@ MachinaGUI::menu_import_midi() Gtk::MessageDialog msg_dialog(dialog, "Error loading MIDI file", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); msg_dialog.run(); - } + } } } @@ -564,7 +564,7 @@ MachinaGUI::menu_export_midi() Gtk::FILE_CHOOSER_ACTION_SAVE); dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialog.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_OK); - + Gtk::FileFilter filt; filt.add_pattern("*.mid"); filt.set_name("MIDI Files"); @@ -616,7 +616,7 @@ void MachinaGUI::show_labels_toggled() { const bool show = _menu_view_labels->get_active(); - + for (ItemList::iterator i = _canvas->items().begin(); i != _canvas->items().end(); ++i) { const SharedPtr<NodeView> nv = PtrCast<NodeView>(*i); if (nv) @@ -633,7 +633,7 @@ MachinaGUI::show_labels_toggled() void -MachinaGUI::menu_help_about() +MachinaGUI::menu_help_about() { _about_window->set_transient_for(*_main_window); _about_window->show(); @@ -641,7 +641,7 @@ MachinaGUI::menu_help_about() void -MachinaGUI::menu_help_help() +MachinaGUI::menu_help_help() { _help_dialog->set_transient_for(*_main_window); _help_dialog->run(); diff --git a/src/gui/MachinaGUI.hpp b/src/gui/MachinaGUI.hpp index b923d57..ef0a836 100644 --- a/src/gui/MachinaGUI.hpp +++ b/src/gui/MachinaGUI.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -38,11 +38,11 @@ public: boost::shared_ptr<MachinaCanvas> canvas() { return _canvas; } boost::shared_ptr<Machina::Engine> engine() { return _engine; } - + SharedPtr<Raul::Maid> maid() { return _maid; } - + Gtk::Window* window() { return _main_window; } - + void attach(); void quit() { _main_window->hide(); } @@ -90,7 +90,7 @@ protected: string _save_uri; string _target_filename; - + Raul::TimeUnit _unit; boost::shared_ptr<MachinaCanvas> _canvas; @@ -100,7 +100,7 @@ protected: SharedPtr<Machina::Evolver> _evolver; Gtk::Main* _gtk_main; - + Gtk::Window* _main_window; Gtk::Dialog* _help_dialog; Gtk::AboutDialog* _about_window; diff --git a/src/gui/NodePropertiesWindow.cpp b/src/gui/NodePropertiesWindow.cpp index d74d4b5..bbb7244 100644 --- a/src/gui/NodePropertiesWindow.cpp +++ b/src/gui/NodePropertiesWindow.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -70,7 +70,7 @@ NodePropertiesWindow::apply_clicked() _node->set_changed(); } - + void NodePropertiesWindow::cancel_clicked() { @@ -79,7 +79,7 @@ NodePropertiesWindow::cancel_clicked() _instance = NULL; } - + void NodePropertiesWindow::ok_clicked() { @@ -114,7 +114,7 @@ NodePropertiesWindow::present(Gtk::Window* parent, SharedPtr<Machina::Node> node Glib::RefPtr<Gnome::Glade::Xml> xml = GladeXml::create(); xml->get_widget_derived("node_properties_dialog", _instance); - + if (parent) _instance->set_transient_for(*parent); } diff --git a/src/gui/NodePropertiesWindow.hpp b/src/gui/NodePropertiesWindow.hpp index 51ab42b..c86314f 100644 --- a/src/gui/NodePropertiesWindow.hpp +++ b/src/gui/NodePropertiesWindow.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -37,7 +37,7 @@ private: void apply_clicked(); void cancel_clicked(); void ok_clicked(); - + static NodePropertiesWindow* _instance; SharedPtr<Machina::Node> _node; diff --git a/src/gui/NodeView.cpp b/src/gui/NodeView.cpp index 67516fb..c05cb5b 100644 --- a/src/gui/NodeView.cpp +++ b/src/gui/NodeView.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -94,7 +94,7 @@ static ArtVpathDash* selector_dash() selector_dash->n_dash = 2; selector_dash->dash = art_new(double, 2); selector_dash->dash[0] = 8; - selector_dash->dash[1] = 8; + selector_dash->dash[1] = 8; } return selector_dash; @@ -114,7 +114,7 @@ NodeView::update_state(bool show_labels) { static const uint32_t active_color = 0x408040FF; static const uint32_t active_border_color = 0x00FF00FF; - + if (_node->is_active()) { if (_color != active_color) { _old_color = _color; @@ -125,9 +125,9 @@ NodeView::update_state(bool show_labels) set_base_color(_old_color); set_border_color(_default_border_color); } - + _ellipse.property_dash() = _node->is_selector() ? selector_dash() : 0; - + set_border_width(_node->is_initial() ? 4.0 : 1.0); if (show_labels) diff --git a/src/gui/NodeView.hpp b/src/gui/NodeView.hpp index 80f8968..6eba522 100644 --- a/src/gui/NodeView.hpp +++ b/src/gui/NodeView.hpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -32,7 +32,7 @@ public: double y); SharedPtr<Machina::Node> node() { return _node; } - + void show_label(bool show); void update_state(bool show_labels); diff --git a/src/gui/main.cpp b/src/gui/main.cpp index e079eec..9862989 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/src/machina.cpp b/src/machina.cpp index 62b502f..444c1af 100644 --- a/src/machina.cpp +++ b/src/machina.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -56,10 +56,10 @@ main(int argc, char** argv) cout << "Usage: " << argv[0] << " FILE" << endl; return -1; } - + if ( ! Glib::thread_supported()) Glib::thread_init(); - + SharedPtr<JackDriver> driver(new JackDriver()); Redland::World rdf_world; @@ -73,7 +73,7 @@ main(int argc, char** argv) free(uri); */ engine.load_machine(argv[1]); - + driver->attach("machina"); signal(SIGINT, catch_int); @@ -81,7 +81,7 @@ main(int argc, char** argv) while (!quit) sleep(1); - + driver->detach(); return 0; diff --git a/src/midi2machina.cpp b/src/midi2machina.cpp index 06a0554..f0b98a2 100644 --- a/src/midi2machina.cpp +++ b/src/midi2machina.cpp @@ -1,15 +1,15 @@ /* This file is part of Machina. * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * + * * Machina is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * Machina is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * + * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA @@ -62,7 +62,7 @@ main(int argc, char** argv) cout << "Failed to load MIDI file." << endl; return -1; } - + /* string out_filename = argv[1]; if (out_filename.find_last_of("/") != string::npos) @@ -80,7 +80,7 @@ main(int argc, char** argv) Redland::Model model(world); machine->write_state(model); model.serialise_to_file_handle(stdout); - + return 0; } |