1
Fork 0

Update TODO/BUGS. Adjusted GUI. Disabled undo debug messages.

This commit is contained in:
EvanR 2009-01-07 00:48:48 -06:00
parent 0ea8dbdcb5
commit 7d6dbd2060
8 changed files with 57 additions and 39 deletions

18
BUGS
View File

@ -1,11 +1,19 @@
occasional bug on switching layers - check sequencer/backend details
pop up window toggles need to be reset if window closes - simple fix
import midi doesnt handle misfit events - see 'extratracks' in loadsmf
scroll bar size does not indicate scroll range
zoom needs to be adjusted
select coordination between pianoroll and eventedit is buggy (see select_flag)
recording makes undo semi useless
missing graphics
undo is buggy at least when using layers
export midi does not include some important meta events
track settings need readjustment
paste is missing
quantize is missing
hand updates need to be regularized
channel 10 bank 127 bug
undo block creation from inside pattern editor probably leads to problems
backend should send init/stop events on all present channels, not all tracks
end of frame sequencing bug - unknown cause
out of order dispatch bug - sequencer needs to sort dispatched events

View File

@ -14,9 +14,13 @@ as root to install to the default location.
When you run into problems, make sure you have the dependency libraries
installed. FLTK 2 and JACK with midi support (any recent version) is
required.
required. Also, LASH is currently required to build. However if you want
LASH to actually work, you need the latest release candidate. At the
time I write this it is 0.6.0-rc2. LASH can easily be deactivated
by not defining HAVE_LASH. If you can add this to the autoconf script,
by all means do it and commit the changes.
NOTE that FLTK2's default configuration will not build the shared libs.
*NOTE that FLTK2's default configuration will not build the shared libs.
Remember to use --enable-shared when building FLTK2.
After building you may have an error message about missing graphics and

4
TODO
View File

@ -7,8 +7,8 @@ remaining mouse editing
remaining tools
quantize note on
quantize note off
join blocks
split blocks
//join blocks
//split blocks
//unclone block
(note off tool)
(aftertouch tool)

View File

@ -9,12 +9,10 @@ A midi sequencer
**Epichord**
This is a program which I have heard described as a classical multi-track
midi sequencer. It allows you to arrange notes and patterns to be played on a
midi bus or record notes from some midi source. It does not make sound
and it does not handle audio in any way. That is the the job of other midi
aware softwares and hardware devices.
Epichord is a midi sequencer. It allows you to arrange midi patterns to be
played on midi aware tools, record midi, and store/load arrangements to/from
disk. It does not make sound or handle audio in any way. That is the job of
other midi programs and hardware to which it can connect.
**where to get the source**
@ -23,6 +21,13 @@ accept the ability to get the source code if you do not already have it.
the source is in a git repo at http://repo.or.cz/w/epichord.git
Use the following command to get a clone of the repo which you can use
to easily get updates to the very latest version, or to make improvments
and submit them. The repo has the mob branch enabled so you do not need
a password to use that branch.
git clone git://repo.or.cz/epichord.git
**how to build**

View File

@ -1023,12 +1023,12 @@ void reset_record_flags(){
void set_undo(Command* c){
if(undo_ptr != undo_stack.end()){
printf("changing the past, need to erase the future\n");
//printf("changing the past, need to erase the future\n");
std::list<int>::iterator nptr = undo_number.end();
nptr--;
while(nptr != undo_nptr){
int N = *nptr;
printf("deleting %d commands\n",N);
//printf("deleting %d commands\n",N);
for(int i=0; i<N; i++){
//delete this command
undo_stack.pop_back();
@ -1037,7 +1037,7 @@ printf("deleting %d commands\n",N);
undo_number.pop_back();
}
}
printf("pushing command\n");
//printf("pushing command\n");
undo_stack.push_back(c);
undo_ptr = undo_stack.end();
c->redo();
@ -1045,7 +1045,7 @@ printf("pushing command\n");
void undo_push(int n){
if(n==0){return;}
printf("pushing number of commands %d\n",n);
//printf("pushing number of commands %d\n",n);
undo_number.push_back(n);
undo_nptr++;
}
@ -1055,7 +1055,7 @@ void do_undo(){
printf("no more to undo!\n");
return;
}
printf("undoing\n");
//printf("undoing\n");
int N = *undo_nptr;
undo_nptr--;
for(int i=0; i<N; i++){
@ -1069,7 +1069,7 @@ void do_redo(){
printf("no more to redo!\n");
return;
}
printf("redoing\n");
//printf("redoing\n");
undo_nptr++;
int N = *undo_nptr;
for(int i=0; i<N; i++){
@ -1079,7 +1079,7 @@ printf("redoing\n");
}
void undo_reset(){
printf("undo reset\n");
//printf("undo reset\n");
int N = undo_stack.size();
for(int i=0; i<N; i++){
std::list<Command*>::iterator c = undo_stack.end();

View File

@ -735,14 +735,15 @@ UI::UI() {
{fltk::Group* o = pattern_buttons = new fltk::Group(200, 5, 310, 25);
o->hide();
o->begin();
{fltk::Button* o = quant1_button = new fltk::Button(35, 0, 25, 25, "qua");
{fltk::Button* o = tool_button = new fltk::Button(35, 0, 25, 25, "tool");
o->callback((fltk::Callback*)cb_tool_button);
o->hide();
}
{fltk::Button* o = quant1_button = new fltk::Button(60, 0, 25, 25, "qua");
o->tooltip("quantize selected notes");
}
{fltk::Button* o = quant0_button = new fltk::Button(60, 0, 25, 25, "qu_");
{fltk::Button* o = quant0_button = new fltk::Button(85, 0, 25, 25, "qu_");
o->tooltip("quantize length of selected notes");
}
{fltk::Button* o = tool_button = new fltk::Button(85, 0, 25, 25, "tool");
o->callback((fltk::Callback*)cb_tool_button);
}
{fltk::Button* o = qbutton4 = new fltk::Button(135, 0, 25, 25);
o->callback((fltk::Callback*)cb_qbutton4);

View File

@ -72,10 +72,10 @@ save_config();} open
o->size_range(640,455);
o->resize(640,455);} visible
} {
{fltk::Group} {} {
{fltk::Group} {} {open
xywh {0 0 640 445} resizable
} {
{fltk::Group} song_edit {open
{fltk::Group} song_edit {
xywh {0 0 640 445}
} {
{fltk::Group} {} {open
@ -288,25 +288,25 @@ ui->event_edit->redraw();}
xywh {125 5 25 25}
extra_code {o->type(fltk::Button::TOGGLE);}
}
{fltk::Group} {} {open
{fltk::Group} {} {selected
xywh {155 0 20 35} resizable
} {}
{fltk::Group} pattern_buttons {
xywh {200 5 310 25} hide
} {
{fltk::Button} tool_button {
label tool
callback {toggle_tool();}
xywh {35 0 25 25} hide
}
{fltk::Button} quant1_button {
label qua
tooltip {quantize selected notes}
xywh {35 0 25 25}
xywh {60 0 25 25}
}
{fltk::Button} quant0_button {
label qu_
tooltip {quantize length of selected notes}
xywh {60 0 25 25}
}
{fltk::Button} tool_button {
label tool
callback {toggle_tool();}
xywh {85 0 25 25}
}
{fltk::Button} qbutton4 {
@ -429,7 +429,7 @@ else{
{fltk::Window} config_window {
label config
callback {ui->conf_button->state(0);
o->hide();} open selected
o->hide();}
xywh {52 125 320 285} hide
} {
{fltk::TabGroup} {} {open

View File

@ -118,13 +118,13 @@ private:
static void cb_loop_toggle(fltk::Button*, void*);
public:
fltk::Group *pattern_buttons;
fltk::Button *quant1_button;
fltk::Button *quant0_button;
fltk::Button *tool_button;
private:
inline void cb_tool_button_i(fltk::Button*, void*);
static void cb_tool_button(fltk::Button*, void*);
public:
fltk::Button *quant1_button;
fltk::Button *quant0_button;
fltk::Button *qbutton4;
private:
inline void cb_qbutton4_i(fltk::Button*, void*);