zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 00a0998353e2354bb5954e5f7c30456539a4d4e2
parent f8fb9c7eb8b7c7bc2613c28f7aa4e44709889466
Author: paulnasca <paulnasca>
Date:   Thu,  3 Jun 2004 19:50:25 +0000

*** empty log message ***

Diffstat:
MChangeLog | 1+
Msrc/Seq/Sequencer.C | 7++++++-
Msrc/Seq/Sequencer.h | 6++++++
Msrc/UI/SeqUI.fl | 16++++++++++++----
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