diff --git a/README.md b/README.md index fc31ec7..f49c600 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # seq24 +Seq24 is a minimal loop based midi sequencer. +It was created to provide a very simple interface for editing and playing midi 'loops'. After searching for a software based sequencer that would provide the functionality needed for a live performance, such as the Akai MPC line, the Kawai Q80 sequencer, or the popular Alesis MMT-8, I found nothing similar in the software realm. I set out to create a very minimal sequencer that excludes the bloated features of the large software sequencers, and includes a small subset of features that I have found usable in performing. + diff --git a/seq24-0.8.7-sigc22_fix.patch b/seq24-0.8.7-sigc22_fix.patch new file mode 100644 index 0000000..dc204fd --- /dev/null +++ b/seq24-0.8.7-sigc22_fix.patch @@ -0,0 +1,534 @@ +diff -Naur seq24-0.8.7-org/src/event.cpp seq24-0.8.7/src/event.cpp +--- seq24-0.8.7-org/src/event.cpp 2006-06-02 05:20:20.000000000 +0200 ++++ seq24-0.8.7/src/event.cpp 2008-05-01 20:56:28.000000000 +0200 +@@ -18,6 +18,7 @@ + // + //----------------------------------------------------------------------------- + #include "event.h" ++#include + + event::event() + { +diff -Naur seq24-0.8.7-org/src/font.cpp seq24-0.8.7/src/font.cpp +--- seq24-0.8.7-org/src/font.cpp 2006-03-28 06:37:00.000000000 +0200 ++++ seq24-0.8.7/src/font.cpp 2008-05-01 21:14:25.000000000 +0200 +@@ -25,6 +25,7 @@ + #include "font_b.xpm" + + #include ++#include + + font::font( ) + { +diff -Naur seq24-0.8.7-org/src/mainwnd.h seq24-0.8.7/src/mainwnd.h +--- seq24-0.8.7-org/src/mainwnd.h 2006-03-28 06:36:59.000000000 +0200 ++++ seq24-0.8.7/src/mainwnd.h 2008-05-01 20:55:32.000000000 +0200 +@@ -109,7 +109,7 @@ + + Entry *m_entry_notes; + +- SigC::Connection m_timeout_connect; ++ sigc::connection m_timeout_connect; + + void file_new_dialog( void ); + void file_save_dialog( void ); +diff -Naur seq24-0.8.7-org/src/options.cpp seq24-0.8.7/src/options.cpp +--- seq24-0.8.7-org/src/options.cpp 2006-03-28 06:36:59.000000000 +0200 ++++ seq24-0.8.7/src/options.cpp 2008-05-01 21:14:05.000000000 +0200 +@@ -21,7 +21,6 @@ + #include "options.h" + #include + +- + const int c_status = 0; + const int c_status_inv = 1; + const int c_d1 = 2; +@@ -86,9 +85,9 @@ + rb_on->set_group (group); + rb_mod->set_group (group); + +- rb_off->signal_toggled().connect (SigC::bind(mem_fun (*this, &options::clock_callback_off), i, rb_off )); +- rb_on->signal_toggled ().connect (SigC::bind(mem_fun (*this, &options::clock_callback_on), i, rb_on )); +- rb_mod->signal_toggled().connect (SigC::bind(mem_fun (*this, &options::clock_callback_mod), i, rb_mod )); ++ rb_off->signal_toggled().connect (sigc::bind(mem_fun (*this, &options::clock_callback_off), i, rb_off )); ++ rb_on->signal_toggled ().connect (sigc::bind(mem_fun (*this, &options::clock_callback_on), i, rb_on )); ++ rb_mod->signal_toggled().connect (sigc::bind(mem_fun (*this, &options::clock_callback_mod), i, rb_mod )); + + hbox2->pack_end (*rb_mod, false, false ); + hbox2->pack_end (*rb_on, false, false); +@@ -117,7 +116,7 @@ + + vbox->pack_start( *hbox2, false, false ); + +- clock_mod_adj->signal_value_changed().connect( SigC::bind(mem_fun(*this,&options::clock_mod_callback),clock_mod_adj)); ++ clock_mod_adj->signal_value_changed().connect( sigc::bind(mem_fun(*this,&options::clock_mod_callback),clock_mod_adj)); + + + // Input Buses +diff -Naur seq24-0.8.7-org/src/perfedit.cpp seq24-0.8.7/src/perfedit.cpp +--- seq24-0.8.7-org/src/perfedit.cpp 2006-08-13 22:58:37.000000000 +0200 ++++ seq24-0.8.7/src/perfedit.cpp 2008-05-01 21:03:49.000000000 +0200 +@@ -31,7 +31,7 @@ + #include "undo.xpm" + #include "down.xpm" + +-using namespace SigC; ++using namespace sigc; + + perfedit::perfedit( perform *a_perf ) + { +@@ -99,12 +99,12 @@ + m_table->attach( *m_button_grow, 2, 3, 3, 4, Gtk::SHRINK, Gtk::SHRINK ); + + m_menu_snap = manage( new Menu()); +- m_menu_snap->items().push_back(MenuElem("1/1", SigC::bind(mem_fun(*this,&perfedit::set_snap), 1 ))); +- m_menu_snap->items().push_back(MenuElem("1/2", SigC::bind(mem_fun(*this,&perfedit::set_snap), 2 ))); +- m_menu_snap->items().push_back(MenuElem("1/4", SigC::bind(mem_fun(*this,&perfedit::set_snap), 4 ))); +- m_menu_snap->items().push_back(MenuElem("1/8", SigC::bind(mem_fun(*this,&perfedit::set_snap), 8 ))); +- m_menu_snap->items().push_back(MenuElem("1/16", SigC::bind(mem_fun(*this,&perfedit::set_snap), 16 ))); +- m_menu_snap->items().push_back(MenuElem("1/32", SigC::bind(mem_fun(*this,&perfedit::set_snap), 32 ))); ++ m_menu_snap->items().push_back(MenuElem("1/1", sigc::bind(mem_fun(*this,&perfedit::set_snap), 1 ))); ++ m_menu_snap->items().push_back(MenuElem("1/2", sigc::bind(mem_fun(*this,&perfedit::set_snap), 2 ))); ++ m_menu_snap->items().push_back(MenuElem("1/4", sigc::bind(mem_fun(*this,&perfedit::set_snap), 4 ))); ++ m_menu_snap->items().push_back(MenuElem("1/8", sigc::bind(mem_fun(*this,&perfedit::set_snap), 8 ))); ++ m_menu_snap->items().push_back(MenuElem("1/16", sigc::bind(mem_fun(*this,&perfedit::set_snap), 16 ))); ++ m_menu_snap->items().push_back(MenuElem("1/32", sigc::bind(mem_fun(*this,&perfedit::set_snap), 32 ))); + + + /* snap */ +@@ -121,11 +121,11 @@ + m_menu_bw = manage( new Menu() ); + + /* bw */ +- m_menu_bw->items().push_back(MenuElem("1", SigC::bind(mem_fun(*this,&perfedit::set_bw), 1 ))); +- m_menu_bw->items().push_back(MenuElem("2", SigC::bind(mem_fun(*this,&perfedit::set_bw), 2 ))); +- m_menu_bw->items().push_back(MenuElem("4", SigC::bind(mem_fun(*this,&perfedit::set_bw), 4 ))); +- m_menu_bw->items().push_back(MenuElem("8", SigC::bind(mem_fun(*this,&perfedit::set_bw), 8 ))); +- m_menu_bw->items().push_back(MenuElem("16", SigC::bind(mem_fun(*this,&perfedit::set_bw), 16 ))); ++ m_menu_bw->items().push_back(MenuElem("1", sigc::bind(mem_fun(*this,&perfedit::set_bw), 1 ))); ++ m_menu_bw->items().push_back(MenuElem("2", sigc::bind(mem_fun(*this,&perfedit::set_bw), 2 ))); ++ m_menu_bw->items().push_back(MenuElem("4", sigc::bind(mem_fun(*this,&perfedit::set_bw), 4 ))); ++ m_menu_bw->items().push_back(MenuElem("8", sigc::bind(mem_fun(*this,&perfedit::set_bw), 8 ))); ++ m_menu_bw->items().push_back(MenuElem("16", sigc::bind(mem_fun(*this,&perfedit::set_bw), 16 ))); + + char b[20]; + +@@ -135,7 +135,7 @@ + + /* length */ + m_menu_bpm->items().push_back(MenuElem(b, +- SigC::bind(mem_fun(*this,&perfedit::set_bpm), ++ sigc::bind(mem_fun(*this,&perfedit::set_bpm), + i+1 ))); + } + +diff -Naur seq24-0.8.7-org/src/perfedit.h seq24-0.8.7/src/perfedit.h +--- seq24-0.8.7-org/src/perfedit.h 2006-08-13 22:53:33.000000000 +0200 ++++ seq24-0.8.7/src/perfedit.h 2008-05-01 20:57:25.000000000 +0200 +@@ -64,7 +64,7 @@ + #include "perftime.h" + + using namespace Gtk; +-using namespace SigC; ++using namespace sigc; + + /* has a seqroll and paino roll */ + class perfedit:public Gtk::Window +diff -Naur seq24-0.8.7-org/src/seqedit.cpp seq24-0.8.7/src/seqedit.cpp +--- seq24-0.8.7-org/src/seqedit.cpp 2006-05-30 16:04:52.000000000 +0200 ++++ seq24-0.8.7/src/seqedit.cpp 2008-05-01 21:01:54.000000000 +0200 +@@ -283,75 +283,75 @@ + char b[20]; + + /* zoom */ +- m_menu_zoom->items().push_back(MenuElem("1:1", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 1 ))); +- m_menu_zoom->items().push_back(MenuElem("1:2", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 2 ))); +- m_menu_zoom->items().push_back(MenuElem("1:4", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 4 ))); +- m_menu_zoom->items().push_back(MenuElem("1:8", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 8 ))); +- m_menu_zoom->items().push_back(MenuElem("1:16", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 16 ))); +- m_menu_zoom->items().push_back(MenuElem("1:32", SigC::bind(mem_fun(*this,&seqedit::set_zoom), 32 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:1", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 1 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:2", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 2 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:4", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 4 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:8", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 8 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:16", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 16 ))); ++ m_menu_zoom->items().push_back(MenuElem("1:32", sigc::bind(mem_fun(*this,&seqedit::set_zoom), 32 ))); + + /* note snap */ +- m_menu_snap->items().push_back(MenuElem("1", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 4 ))); +- m_menu_snap->items().push_back(MenuElem("1/2", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 2 ))); +- m_menu_snap->items().push_back(MenuElem("1/4", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 1 ))); +- m_menu_snap->items().push_back(MenuElem("1/8", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 2 ))); +- m_menu_snap->items().push_back(MenuElem("1/16", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 4 ))); +- m_menu_snap->items().push_back(MenuElem("1/32", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 8 ))); +- m_menu_snap->items().push_back(MenuElem("1/64", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 16 ))); +- m_menu_snap->items().push_back(MenuElem("1/128", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 32 ))); ++ m_menu_snap->items().push_back(MenuElem("1", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 4 ))); ++ m_menu_snap->items().push_back(MenuElem("1/2", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 2 ))); ++ m_menu_snap->items().push_back(MenuElem("1/4", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 1 ))); ++ m_menu_snap->items().push_back(MenuElem("1/8", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 2 ))); ++ m_menu_snap->items().push_back(MenuElem("1/16", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 4 ))); ++ m_menu_snap->items().push_back(MenuElem("1/32", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 8 ))); ++ m_menu_snap->items().push_back(MenuElem("1/64", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 16 ))); ++ m_menu_snap->items().push_back(MenuElem("1/128", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 32 ))); + m_menu_snap->items().push_back(SeparatorElem()); +- m_menu_snap->items().push_back(MenuElem("1/3", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 4 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/6", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 2 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/12", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 1 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/24", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 2 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/48", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 4 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/96", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 8 / 3 ))); +- m_menu_snap->items().push_back(MenuElem("1/192", SigC::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 16 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/3", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 4 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/6", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 2 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/12", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn * 1 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/24", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 2 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/48", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 4 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/96", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 8 / 3 ))); ++ m_menu_snap->items().push_back(MenuElem("1/192", sigc::bind(mem_fun(*this,&seqedit::set_snap), c_ppqn / 16 / 3 ))); + + /* note note_length */ +- m_menu_note_length->items().push_back(MenuElem("1", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 4 ))); +- m_menu_note_length->items().push_back(MenuElem("1/2", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 2 ))); +- m_menu_note_length->items().push_back(MenuElem("1/4", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 1 ))); +- m_menu_note_length->items().push_back(MenuElem("1/8", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 2 ))); +- m_menu_note_length->items().push_back(MenuElem("1/16", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 4 ))); +- m_menu_note_length->items().push_back(MenuElem("1/32", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 8 ))); +- m_menu_note_length->items().push_back(MenuElem("1/64", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 16 ))); +- m_menu_note_length->items().push_back(MenuElem("1/128", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 32 ))); ++ m_menu_note_length->items().push_back(MenuElem("1", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 4 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/2", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 2 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/4", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 1 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/8", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 2 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/16", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 4 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/32", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 8 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/64", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 16 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/128", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 32 ))); + m_menu_note_length->items().push_back(SeparatorElem()); +- m_menu_note_length->items().push_back(MenuElem("1/3", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 4 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/6", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 2 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/12", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 1 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/24", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 2 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/48", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 4 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/96", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 8 / 3 ))); +- m_menu_note_length->items().push_back(MenuElem("1/192", SigC::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 16 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/3", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 4 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/6", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 2 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/12", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn * 1 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/24", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 2 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/48", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 4 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/96", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 8 / 3 ))); ++ m_menu_note_length->items().push_back(MenuElem("1/192", sigc::bind(mem_fun(*this,&seqedit::set_note_length), c_ppqn / 16 / 3 ))); + + /* Key */ +- m_menu_key->items().push_back(MenuElem( c_key_text[0], SigC::bind(mem_fun(*this,&seqedit::set_key), 0 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[1], SigC::bind(mem_fun(*this,&seqedit::set_key), 1 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[2], SigC::bind(mem_fun(*this,&seqedit::set_key), 2 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[3], SigC::bind(mem_fun(*this,&seqedit::set_key), 3 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[4], SigC::bind(mem_fun(*this,&seqedit::set_key), 4 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[5], SigC::bind(mem_fun(*this,&seqedit::set_key), 5 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[6], SigC::bind(mem_fun(*this,&seqedit::set_key), 6 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[7], SigC::bind(mem_fun(*this,&seqedit::set_key), 7 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[8], SigC::bind(mem_fun(*this,&seqedit::set_key), 8 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[9], SigC::bind(mem_fun(*this,&seqedit::set_key), 9 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[10], SigC::bind(mem_fun(*this,&seqedit::set_key), 10 ))); +- m_menu_key->items().push_back(MenuElem( c_key_text[11], SigC::bind(mem_fun(*this,&seqedit::set_key), 11 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[0], sigc::bind(mem_fun(*this,&seqedit::set_key), 0 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[1], sigc::bind(mem_fun(*this,&seqedit::set_key), 1 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[2], sigc::bind(mem_fun(*this,&seqedit::set_key), 2 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[3], sigc::bind(mem_fun(*this,&seqedit::set_key), 3 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[4], sigc::bind(mem_fun(*this,&seqedit::set_key), 4 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[5], sigc::bind(mem_fun(*this,&seqedit::set_key), 5 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[6], sigc::bind(mem_fun(*this,&seqedit::set_key), 6 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[7], sigc::bind(mem_fun(*this,&seqedit::set_key), 7 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[8], sigc::bind(mem_fun(*this,&seqedit::set_key), 8 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[9], sigc::bind(mem_fun(*this,&seqedit::set_key), 9 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[10], sigc::bind(mem_fun(*this,&seqedit::set_key), 10 ))); ++ m_menu_key->items().push_back(MenuElem( c_key_text[11], sigc::bind(mem_fun(*this,&seqedit::set_key), 11 ))); + + /* bw */ +- m_menu_bw->items().push_back(MenuElem("1", SigC::bind(mem_fun(*this,&seqedit::set_bw), 1 ))); +- m_menu_bw->items().push_back(MenuElem("2", SigC::bind(mem_fun(*this,&seqedit::set_bw), 2 ))); +- m_menu_bw->items().push_back(MenuElem("4", SigC::bind(mem_fun(*this,&seqedit::set_bw), 4 ))); +- m_menu_bw->items().push_back(MenuElem("8", SigC::bind(mem_fun(*this,&seqedit::set_bw), 8 ))); +- m_menu_bw->items().push_back(MenuElem("16", SigC::bind(mem_fun(*this,&seqedit::set_bw), 16 ))); ++ m_menu_bw->items().push_back(MenuElem("1", sigc::bind(mem_fun(*this,&seqedit::set_bw), 1 ))); ++ m_menu_bw->items().push_back(MenuElem("2", sigc::bind(mem_fun(*this,&seqedit::set_bw), 2 ))); ++ m_menu_bw->items().push_back(MenuElem("4", sigc::bind(mem_fun(*this,&seqedit::set_bw), 4 ))); ++ m_menu_bw->items().push_back(MenuElem("8", sigc::bind(mem_fun(*this,&seqedit::set_bw), 8 ))); ++ m_menu_bw->items().push_back(MenuElem("16", sigc::bind(mem_fun(*this,&seqedit::set_bw), 16 ))); + + + /* music scale */ +- m_menu_scale->items().push_back(MenuElem(c_scales_text[0], SigC::bind(mem_fun(*this,&seqedit::set_scale), c_scale_off ))); +- m_menu_scale->items().push_back(MenuElem(c_scales_text[1], SigC::bind(mem_fun(*this,&seqedit::set_scale), c_scale_major ))); +- m_menu_scale->items().push_back(MenuElem(c_scales_text[2], SigC::bind(mem_fun(*this,&seqedit::set_scale), c_scale_minor ))); ++ m_menu_scale->items().push_back(MenuElem(c_scales_text[0], sigc::bind(mem_fun(*this,&seqedit::set_scale), c_scale_off ))); ++ m_menu_scale->items().push_back(MenuElem(c_scales_text[1], sigc::bind(mem_fun(*this,&seqedit::set_scale), c_scale_major ))); ++ m_menu_scale->items().push_back(MenuElem(c_scales_text[2], sigc::bind(mem_fun(*this,&seqedit::set_scale), c_scale_minor ))); + + /* midi channel menu */ + for( int i=0; i<16; i++ ){ +@@ -360,16 +360,16 @@ + + /* length */ + m_menu_length->items().push_back(MenuElem(b, +- SigC::bind(mem_fun(*this,&seqedit::set_measures), ++ sigc::bind(mem_fun(*this,&seqedit::set_measures), + i+1 ))); + /* length */ + m_menu_bpm->items().push_back(MenuElem(b, +- SigC::bind(mem_fun(*this,&seqedit::set_bpm), ++ sigc::bind(mem_fun(*this,&seqedit::set_bpm), + i+1 ))); + } + +- m_menu_length->items().push_back(MenuElem("32", SigC::bind(mem_fun(*this,&seqedit::set_measures), 32 ))); +- m_menu_length->items().push_back(MenuElem("64", SigC::bind(mem_fun(*this,&seqedit::set_measures), 64 ))); ++ m_menu_length->items().push_back(MenuElem("32", sigc::bind(mem_fun(*this,&seqedit::set_measures), 32 ))); ++ m_menu_length->items().push_back(MenuElem("64", sigc::bind(mem_fun(*this,&seqedit::set_measures), 64 ))); + + + +@@ -394,29 +394,29 @@ + Menu *holder2; + + holder = manage( new Menu()); +- holder->items().push_back( MenuElem( "All Notes", SigC::bind(mem_fun(*this,&seqedit::do_action), select_all_notes,0 ))); +- holder->items().push_back( MenuElem( "Inverse Notes", SigC::bind(mem_fun(*this,&seqedit::do_action), select_inverse_notes,0 ))); ++ holder->items().push_back( MenuElem( "All Notes", sigc::bind(mem_fun(*this,&seqedit::do_action), select_all_notes,0 ))); ++ holder->items().push_back( MenuElem( "Inverse Notes", sigc::bind(mem_fun(*this,&seqedit::do_action), select_inverse_notes,0 ))); + + if ( m_editing_status != EVENT_NOTE_ON && + m_editing_status != EVENT_NOTE_OFF ){ + + holder->items().push_back( SeparatorElem( )); +- holder->items().push_back( MenuElem( "All Events", SigC::bind(mem_fun(*this,&seqedit::do_action), select_all_events,0 ))); +- holder->items().push_back( MenuElem( "Inverse Events", SigC::bind(mem_fun(*this,&seqedit::do_action), select_inverse_events,0 ))); ++ holder->items().push_back( MenuElem( "All Events", sigc::bind(mem_fun(*this,&seqedit::do_action), select_all_events,0 ))); ++ holder->items().push_back( MenuElem( "Inverse Events", sigc::bind(mem_fun(*this,&seqedit::do_action), select_inverse_events,0 ))); + } + + m_menu_tools->items().push_back( MenuElem( "Select", *holder )); + + holder = manage( new Menu()); +- holder->items().push_back( MenuElem( "Quantize Selected Notes", SigC::bind(mem_fun(*this,&seqedit::do_action), quantize_notes,0 ))); +- holder->items().push_back( MenuElem( "Tighten Selected Notes", SigC::bind(mem_fun(*this,&seqedit::do_action), tighten_notes,0 ))); ++ holder->items().push_back( MenuElem( "Quantize Selected Notes", sigc::bind(mem_fun(*this,&seqedit::do_action), quantize_notes,0 ))); ++ holder->items().push_back( MenuElem( "Tighten Selected Notes", sigc::bind(mem_fun(*this,&seqedit::do_action), tighten_notes,0 ))); + + if ( m_editing_status != EVENT_NOTE_ON && + m_editing_status != EVENT_NOTE_OFF ){ + + holder->items().push_back( SeparatorElem( )); +- holder->items().push_back( MenuElem( "Quantize Selected Events", SigC::bind(mem_fun(*this,&seqedit::do_action), quantize_events,0 ))); +- holder->items().push_back( MenuElem( "Tighten Selected Events", SigC::bind(mem_fun(*this,&seqedit::do_action), tighten_events,0 ))); ++ holder->items().push_back( MenuElem( "Quantize Selected Events", sigc::bind(mem_fun(*this,&seqedit::do_action), quantize_events,0 ))); ++ holder->items().push_back( MenuElem( "Tighten Selected Events", sigc::bind(mem_fun(*this,&seqedit::do_action), tighten_events,0 ))); + + } + m_menu_tools->items().push_back( MenuElem( "Modify Time", *holder )); +@@ -432,7 +432,7 @@ + + if ( i!=0 ){ + sprintf( num, "%+d [%s]", i, c_interval_text[ abs(i) ] ); +- holder2->items().push_front( MenuElem( num, SigC::bind(mem_fun(*this,&seqedit::do_action), transpose, i ))); ++ holder2->items().push_front( MenuElem( num, sigc::bind(mem_fun(*this,&seqedit::do_action), transpose, i ))); + } + } + +@@ -445,7 +445,7 @@ + + if ( i!=0 ){ + sprintf( num, "%+d [%s]", (i<0) ? i-1 : i+1, c_chord_text[ abs(i) ] ); +- holder2->items().push_front( MenuElem( num, SigC::bind(mem_fun(*this,&seqedit::do_action), transpose_h, i ))); ++ holder2->items().push_front( MenuElem( num, sigc::bind(mem_fun(*this,&seqedit::do_action), transpose_h, i ))); + } + } + +@@ -574,7 +574,7 @@ + /* beats per measure */ + m_button_bpm = manage( new Button()); + m_button_bpm->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( down_xpm )))); +- m_button_bpm->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_bpm )); ++ m_button_bpm->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_bpm )); + m_tooltips->set_tip( *m_button_bpm, "Time Signature. Beats per Measure" ); + m_entry_bpm = manage( new Entry()); + m_entry_bpm->set_width_chars(2); +@@ -588,7 +588,7 @@ + /* beat width */ + m_button_bw = manage( new Button()); + m_button_bw->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( down_xpm )))); +- m_button_bw->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_bw )); ++ m_button_bw->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_bw )); + m_tooltips->set_tip( *m_button_bw, "Time Signature. Length of Beat" ); + m_entry_bw = manage( new Entry()); + m_entry_bw->set_width_chars(2); +@@ -601,7 +601,7 @@ + /* length */ + m_button_length = manage( new Button()); + m_button_length->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( length_xpm )))); +- m_button_length->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_length )); ++ m_button_length->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_length )); + m_tooltips->set_tip( *m_button_length, "Sequence length in Bars." ); + m_entry_length = manage( new Entry()); + m_entry_length->set_width_chars(2); +@@ -664,7 +664,7 @@ + /* snap */ + m_button_snap = manage( new Button()); + m_button_snap->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( snap_xpm )))); +- m_button_snap->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_snap )); ++ m_button_snap->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_snap )); + m_tooltips->set_tip( *m_button_snap, "Grid snap." ); + m_entry_snap = manage( new Entry()); + m_entry_snap->set_width_chars(5); +@@ -677,7 +677,7 @@ + /* note_length */ + m_button_note_length = manage( new Button()); + m_button_note_length->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( note_length_xpm )))); +- m_button_note_length->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_note_length )); ++ m_button_note_length->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_note_length )); + m_tooltips->set_tip( *m_button_note_length, "Note Length." ); + m_entry_note_length = manage( new Entry()); + m_entry_note_length->set_width_chars(5); +@@ -690,7 +690,7 @@ + /* zoom */ + m_button_zoom = manage( new Button()); + m_button_zoom->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( zoom_xpm )))); +- m_button_zoom->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_zoom )); ++ m_button_zoom->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_zoom )); + m_tooltips->set_tip( *m_button_zoom, "Zoom. Pixels to Ticks" ); + m_entry_zoom = manage( new Entry()); + m_entry_zoom->set_width_chars(4); +@@ -705,7 +705,7 @@ + /* key */ + m_button_key = manage( new Button()); + m_button_key->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( key_xpm )))); +- m_button_key->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_key )); ++ m_button_key->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_key )); + m_tooltips->set_tip( *m_button_key, "Key of Sequence" ); + m_entry_key = manage( new Entry()); + m_entry_key->set_width_chars(5); +@@ -717,7 +717,7 @@ + /* music scale */ + m_button_scale = manage( new Button()); + m_button_scale->add( *manage( new Image(Gdk::Pixbuf::create_from_xpm_data( scale_xpm )))); +- m_button_scale->signal_clicked().connect( SigC::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_scale )); ++ m_button_scale->signal_clicked().connect( sigc::bind( mem_fun( *this, &seqedit::popup_menu), m_menu_scale )); + m_tooltips->set_tip( *m_button_scale, "Musical Scale" ); + m_entry_scale = manage( new Entry()); + m_entry_scale->set_width_chars(5); +@@ -745,17 +745,17 @@ + #if 0 + /* Select */ + m_radio_select = manage( new RadioButton( "Sel", true )); +- m_radio_select->signal_clicked().connect( SigC::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_select )); ++ m_radio_select->signal_clicked().connect( sigc::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_select )); + m_hbox3->pack_start( *m_radio_select, false, false ); + + /* Draw */ + m_radio_draw = manage( new RadioButton( "Draw" )); +- m_radio_draw->signal_clicked().connect( SigC::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_draw )); ++ m_radio_draw->signal_clicked().connect( sigc::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_draw )); + m_hbox3->pack_start( *m_radio_draw, false, false ); + + /* Grow */ + m_radio_grow = manage( new RadioButton( "Grow" )); +- m_radio_grow->signal_clicked().connect( SigC::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_grow )); ++ m_radio_grow->signal_clicked().connect( sigc::bind(mem_fun( *this, &seqedit::mouse_action ), e_action_grow )); + m_hbox3->pack_start( *m_radio_grow, false, false ); + + /* Stretch */ +@@ -800,7 +800,7 @@ + mastermidibus *masterbus = m_mainperf->get_master_midi_bus(); + for ( int i=0; i< masterbus->get_num_out_buses(); i++ ){ + m_menu_midibus->items().push_back(MenuElem(masterbus->get_midi_out_bus_name(i), +- SigC::bind(mem_fun(*this,&seqedit::set_midi_bus), i))); ++ sigc::bind(mem_fun(*this,&seqedit::set_midi_bus), i))); + } + + m_menu_midibus->popup(0,0); +@@ -832,7 +832,7 @@ + string(")") ); + } + m_menu_midich->items().push_back(MenuElem(name, +- SigC::bind(mem_fun(*this,&seqedit::set_midi_channel), ++ sigc::bind(mem_fun(*this,&seqedit::set_midi_channel), + i ))); + } + +@@ -853,7 +853,7 @@ + m_menu_sequences = manage( new Menu()); + + m_menu_sequences->items().push_back(MenuElem("Off", +- SigC::bind(mem_fun(*this, &seqedit::set_background_sequence), -1))); ++ sigc::bind(mem_fun(*this, &seqedit::set_background_sequence), -1))); + m_menu_sequences->items().push_back( SeparatorElem( )); + + for ( int ss=0; ssget_name() ); + + menu_ss->items().push_back(MenuElem(name, +- SigC::bind(mem_fun(*this,&seqedit::set_background_sequence), i))); ++ sigc::bind(mem_fun(*this,&seqedit::set_background_sequence), i))); + + } + } +@@ -964,29 +964,29 @@ + + m_menu_data->items().push_back( ImageMenuElem( "Note On Velocity", + *create_menu_image( note_on ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_NOTE_ON, 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_NOTE_ON, 0 ))); + + m_menu_data->items().push_back( SeparatorElem( )); + + m_menu_data->items().push_back( ImageMenuElem( "Note Off Velocity", + *create_menu_image( note_off ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_NOTE_OFF, 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_NOTE_OFF, 0 ))); + + m_menu_data->items().push_back( ImageMenuElem( "AfterTouch", + *create_menu_image( aftertouch ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_AFTERTOUCH, 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_AFTERTOUCH, 0 ))); + + m_menu_data->items().push_back( ImageMenuElem( "Program Change", + *create_menu_image( program_change ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_PROGRAM_CHANGE, 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_PROGRAM_CHANGE, 0 ))); + + m_menu_data->items().push_back( ImageMenuElem( "Channel Pressure", + *create_menu_image( channel_pressure ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_CHANNEL_PRESSURE, 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_CHANNEL_PRESSURE, 0 ))); + + m_menu_data->items().push_back( ImageMenuElem( "Pitch Wheel", + *create_menu_image( pitch_wheel ), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_PITCH_WHEEL , 0 ))); ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), (unsigned char) EVENT_PITCH_WHEEL , 0 ))); + + m_menu_data->items().push_back( SeparatorElem( )); + +@@ -1007,7 +1007,7 @@ + + menu_cc->items().push_back( ImageMenuElem( controller_name, + *create_menu_image( ccs[i*16+j]), +- SigC::bind(mem_fun(*this,&seqedit::set_data_type), ++ sigc::bind(mem_fun(*this,&seqedit::set_data_type), + (unsigned char) EVENT_CONTROL_CHANGE, i*16+j))); + } + m_menu_data->items().push_back( MenuElem( string(b), *menu_cc )); +diff -Naur seq24-0.8.7-org/src/seqmenu.cpp seq24-0.8.7/src/seqmenu.cpp +--- seq24-0.8.7-org/src/seqmenu.cpp 2006-05-30 15:12:05.000000000 +0200 ++++ seq24-0.8.7/src/seqmenu.cpp 2008-05-01 21:16:37.000000000 +0200 +@@ -104,7 +104,7 @@ + } + + menu_channels->items().push_back(MenuElem(name, +- SigC::bind(mem_fun(*this,&seqmenu::set_bus_and_midi_channel), ++ sigc::bind(mem_fun(*this,&seqmenu::set_bus_and_midi_channel), + i, j ))); + } + } diff --git a/seq24.spec b/seq24.spec new file mode 100644 index 0000000..7ae85f2 --- /dev/null +++ b/seq24.spec @@ -0,0 +1,70 @@ +Name: seq24 +Version: 0.9.2 +Release: 1mamba +Summary: A minimal loop based midi sequencer +Group: Graphical Desktop/Applications/Multimedia +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://filter24.org/seq24 +#Source: http://filter24.org/seq24/seq24-%{version}.tar.gz +Source: https://launchpadlibrarian.net/59713912/seq24-%{version}.tar.gz +Patch0: %{name}-0.8.7-sigc22_fix.patch +License: GPL +BuildRoot: %{_tmppath}/%{name}-%{version}-root +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libalsa-devel +BuildRequires: libatk-devel +BuildRequires: libcairo-devel +BuildRequires: libcairomm-devel +BuildRequires: libfontconfig-devel +BuildRequires: libfreetype-devel +BuildRequires: libgcc +BuildRequires: libglib-devel +BuildRequires: libglibmm-devel +BuildRequires: libgtk-devel +BuildRequires: libgtkmm-devel +BuildRequires: libjack-devel +BuildRequires: liblash-devel +BuildRequires: libpango-devel +BuildRequires: libpangomm-devel +BuildRequires: libsigc++2-devel +BuildRequires: libstdc++6-devel +## AUTOBUILDREQ-END + +%description +Seq24 is a minimal loop based midi sequencer. +It was created to provide a very simple interface for editing and playing midi 'loops'. After searching for a software based sequencer that would provide the functionality needed for a live performance, such as the Akai MPC line, the Kawai Q80 sequencer, or the popular Alesis MMT-8, I found nothing similar in the software realm. I set out to create a very minimal sequencer that excludes the bloated features of the large software sequencers, and includes a small subset of features that I have found usable in performing. + +%prep +%setup -q +#%patch0 -p1 + +%build +%configure +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +#%{_bindir}/dump +%{_bindir}/seq24 +%{_mandir}/man1/seq24.1.gz +%doc AUTHORS COPYING ChangeLog README TODO + +%changelog +* Thu Aug 30 2012 Automatic Build System 0.9.2-1mamba +- update to 0.9.2 + +* Thu Apr 02 2009 Silvan Calarco 0.8.7-2mamba +- specfile updated + +* Thu Dec 14 2006 Silvan Calarco 0.8.7-1qilnx +- package created by autospec