commit 00a0998353e2354bb5954e5f7c30456539a4d4e2
parent f8fb9c7eb8b7c7bc2613c28f7aa4e44709889466
Author: paulnasca <paulnasca>
Date: Thu, 3 Jun 2004 19:50:25 +0000
*** empty log message ***
Diffstat:
4 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -565,5 +565,6 @@
28 Mar 2004 - Scris partea de incarcat fisier midi
- Merge partial playerul
26 Mai 2004 - Playerul merge bine cu un canal midi (rezolvata problema cu timing-ul)
+03 Iun 2004 - Adaugata partea de play speed la interfata
diff --git a/src/Seq/Sequencer.C b/src/Seq/Sequencer.C
@@ -47,6 +47,7 @@ Sequencer::Sequencer(){
resettime(&playtime[i]);
};
+ setplayspeed(0);
};
Sequencer::~Sequencer(){
@@ -119,7 +120,7 @@ int Sequencer::getevent(char ntrack,int *midich, int *type,int *par1, int *par2)
*midich=nextevent[ntrack].ev.channel;
- double dt=nextevent[ntrack].ev.deltatime*0.0001;
+ double dt=nextevent[ntrack].ev.deltatime*0.0001*realplayspeed;
printf("zzzzzzzzzzzzzz[%d] %d\n",ntrack,nextevent[ntrack].ev.deltatime);
nextevent[ntrack].time+=dt;
@@ -155,3 +156,7 @@ void Sequencer::updatecounter(timestruct *t){
// printf("%f %f %f\n",t->last,t->abs,t->rel);
};
+void Sequencer::setplayspeed(int speed){
+ playspeed=speed;
+ realplayspeed=pow(10.0,speed/128.0);
+};
diff --git a/src/Seq/Sequencer.h b/src/Seq/Sequencer.h
@@ -49,6 +49,8 @@ class Sequencer:public MIDIEvents{
int play;
+ int playspeed;//viteza de rulare (0.1x-10x), 0=1.0x, 128=10x
+ void setplayspeed(int speed);
private:
@@ -72,7 +74,11 @@ class Sequencer:public MIDIEvents{
event ev;
double time;
} nextevent[NUM_MIDI_TRACKS];
+
+ double realplayspeed;
+
};
+
#endif
diff --git a/src/UI/SeqUI.fl b/src/UI/SeqUI.fl
@@ -15,11 +15,13 @@ decl {\#include "../Misc/Master.h"} {public
decl {\#include "WidgetPDial.h"} {public
}
-class SeqUI {} {
- Function {make_window()} {} {
+class SeqUI {open
+} {
+ Function {make_window()} {open
+ } {
Fl_Window seqwin {
label {Sequencer - ZynAddSubFX}
- xywh {104 235 235 100} type Double hide
+ xywh {104 235 235 140} type Double visible
} {
Fl_Group {} {
label Player
@@ -44,9 +46,15 @@ master->seq.stopplay();}
}
Fl_Button {} {
label {Open test.mid}
- callback {master->seq.importmidifile("test.mid");} selected
+ callback {master->seq.importmidifile("test.mid");}
xywh {20 25 75 55} align 128
}
+ Fl_Value_Slider {} {
+ label {Play speed}
+ callback {master->seq.setplayspeed((int) o->value());} selected
+ xywh {15 105 190 20} type {Horz Knob} minimum -128 maximum 128 step 1
+ code0 {o->value(master->seq.playspeed);}
+ }
}
}
Function {SeqUI(Master *master_)} {open