Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ seq42_SOURCES = \
track.cpp track.h \
trackedit.cpp trackedit.h \
trackmenu.cpp trackmenu.h \
userfile.cpp userfile.h
userfile.cpp userfile.h \
lfownd.cpp lfownd.h

EXTRA_DIST = configwin32.h *.xpm

Expand Down
60 changes: 45 additions & 15 deletions src/Makefile.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
Expand All @@ -18,6 +18,23 @@
# Makefile.am for seq42

VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
}
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
Expand Down Expand Up @@ -57,7 +74,8 @@ am_seq42_OBJECTS = configfile.$(OBJEXT) event.$(OBJEXT) font.$(OBJEXT) \
seqdata.$(OBJEXT) seqedit.$(OBJEXT) seqevent.$(OBJEXT) \
seqkeys.$(OBJEXT) seqlist.$(OBJEXT) seqroll.$(OBJEXT) \
seqtime.$(OBJEXT) sequence.$(OBJEXT) track.$(OBJEXT) \
trackedit.$(OBJEXT) trackmenu.$(OBJEXT) userfile.$(OBJEXT)
trackedit.$(OBJEXT) trackmenu.$(OBJEXT) userfile.$(OBJEXT) \
lfownd.$(OBJEXT)
seq42_OBJECTS = $(am_seq42_OBJECTS)
am__DEPENDENCIES_1 =
seq42_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
Expand All @@ -77,6 +95,11 @@ CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(seq42_SOURCES)
DIST_SOURCES = $(seq42_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Expand Down Expand Up @@ -215,7 +238,8 @@ seq42_SOURCES = \
track.cpp track.h \
trackedit.cpp trackedit.h \
trackmenu.cpp trackmenu.h \
userfile.cpp userfile.h
userfile.cpp userfile.h \
lfownd.cpp

EXTRA_DIST = configwin32.h *.xpm
MOSTLYCLEANFILES = *~
Expand Down Expand Up @@ -256,10 +280,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):

config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
@if test ! -f $@; then rm -f stamp-h1; else :; fi
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi

stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
Expand All @@ -273,8 +295,11 @@ distclean-hdr:
-rm -f config.h stamp-h1
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
Expand Down Expand Up @@ -308,7 +333,7 @@ uninstall-binPROGRAMS:

clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
seq42$(EXEEXT): $(seq42_OBJECTS) $(seq42_DEPENDENCIES)
seq42$(EXEEXT): $(seq42_OBJECTS) $(seq42_DEPENDENCIES) $(EXTRA_seq42_DEPENDENCIES)
@rm -f seq42$(EXEEXT)
$(CXXLINK) $(seq42_OBJECTS) $(seq42_LDADD) $(LIBS)

Expand Down Expand Up @@ -461,10 +486,15 @@ install-am: all-am

installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)

Expand Down
99 changes: 99 additions & 0 deletions src/lfownd.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/*
* lfownd.cpp
*
* Created on: 22 mar 2013
* Author: mattias
*/

#include "lfownd.h"
#include <string>
#include <math.h>
#include <sigc++/slot.h>
#include "seqedit.h"
using std::string;
using sigc::mem_fun;

#define PI (3.14159265359)


double lfownd::wave_func(double a_angle, int wave_type) {
double tmp;
switch (wave_type){
case 1:
return sin(a_angle * PI * 2.);
case 2:
return (a_angle - (int)(a_angle)) * 2. - 1.;
case 3:
return (a_angle - (int)(a_angle)) * -2. + 1.;
case 4:
tmp = (a_angle * 2. - (int)(a_angle * 2.));
if (((int)(a_angle * 2.)) % 2 == 1){
tmp = -tmp + 1.;
}
tmp = tmp * 2. - 1.;
return tmp;
default:
return 0;
}
}

lfownd::~lfownd() {
// TODO Auto-generated destructor stub
}


lfownd::lfownd(sequence *a_seq, seqdata *a_seqdata){
m_seq = a_seq;
m_seqdata = a_seqdata;
/* main window */
string title = "seq42 - lfoeditor - ";
title.append(m_seq->get_name());
set_title(title);
set_size_request(150, 200);

m_scale_value = manage(new VScale(0, 127, .1));
m_scale_range = manage(new VScale(0, 127, .1));
m_scale_speed = manage(new VScale(0, 16, .01));
m_scale_phase = manage(new VScale(0,1,.01));
m_scale_wave = manage(new VScale(1,5,1));

m_scale_value->set_tooltip_text("value");
m_scale_range->set_tooltip_text("range");
m_scale_speed->set_tooltip_text("speed");
m_scale_phase->set_tooltip_text("phase");
m_scale_wave->set_tooltip_text("wave");

m_scale_value->set_value(64);
m_scale_range->set_value(64);
m_scale_value->signal_value_changed().connect(mem_fun( *this, &lfownd::scale_lfo_change));
m_scale_range->signal_value_changed().connect(mem_fun( *this, &lfownd::scale_lfo_change));
m_scale_speed->signal_value_changed().connect(mem_fun( *this, &lfownd::scale_lfo_change));
m_scale_phase->signal_value_changed().connect(mem_fun( *this, &lfownd::scale_lfo_change));
m_scale_wave->signal_value_changed().connect(mem_fun( *this, &lfownd::scale_lfo_change));

m_hbox = manage(new HBox(false, 2));

add(*m_hbox);
m_hbox->pack_start(*m_scale_value);
m_hbox->pack_start(*m_scale_range);
m_hbox->pack_start(*m_scale_speed);
m_hbox->pack_start(*m_scale_phase);
m_hbox->pack_start(*m_scale_wave);
}

void lfownd::toggle_visible(){
show_all();
}

void lfownd::scale_lfo_change() {
m_value = m_scale_value->get_value();
m_range = m_scale_range->get_value();
m_speed = m_scale_speed->get_value();
m_phase = m_scale_phase->get_value();
m_wave = m_scale_wave->get_value();
m_seq->change_event_data_lfo(m_value, m_range, m_speed, m_phase, m_wave,
m_seqdata->m_status, m_seqdata->m_cc);
m_seqdata->update_pixmap();
m_seqdata->draw_pixmap_on_window();
}

46 changes: 46 additions & 0 deletions src/lfownd.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* lfownd.h
*
* Created on: 22 mar 2013
* Author: mattias
*/

#ifndef LFOWND_H_
#define LFOWND_H_

#include <gtkmm.h>
#include <sigc++/bind.h>
#include "globals.h"
#include "sequence.h"
#include "seqdata.h"

using namespace Gtk;

class lfownd: public Gtk::Window {
public:
VScale *m_scale_value;
VScale *m_scale_range;
VScale *m_scale_speed;
VScale *m_scale_phase;
VScale *m_scale_wave;

double m_value;
double m_range;
double m_speed;
double m_phase;
int m_wave;

HBox *m_hbox;
sequence *m_seq;
seqdata *m_seqdata;

void scale_lfo_change();
static double wave_func(double a_angle, int wave_type);

public:
lfownd (sequence *a_seq, seqdata *a_seqdata);
void toggle_visible();
virtual ~lfownd();
};

#endif /* LFOWND_H_ */
1 change: 1 addition & 0 deletions src/seqdata.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ class seqdata : public Gtk::DrawingArea

friend class seqroll;
friend class seqevent;
friend class lfownd;

};

Expand Down
11 changes: 10 additions & 1 deletion src/seqedit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ seqedit::menu_action_quantise( void )


seqedit::seqedit( sequence *a_seq,
perform *a_perf)
perform *a_perf)
{
set_icon(Gdk::Pixbuf::create_from_xpm_data(seq_editor_xpm));

Expand Down Expand Up @@ -142,6 +142,9 @@ seqedit::seqedit( sequence *a_seq,
m_zoom,
m_hadjust));

m_lfo_wnd = manage( new lfownd( m_seq,
m_seqdata_wid));

m_seqevent_wid = manage( new seqevent( m_seq,
m_zoom,
m_snap,
Expand Down Expand Up @@ -233,6 +236,9 @@ seqedit::seqedit( sequence *a_seq,
dhbox->pack_start(*m_button_play, false, false);
dhbox->pack_start( *(manage(new VSeparator( ))), false, false, 4);

m_button_lfo = manage (new Button("lfo") );
dhbox->pack_start(*m_button_lfo, false, false);
m_button_lfo->signal_clicked().connect ( mem_fun(m_lfo_wnd, &lfownd::toggle_visible));


/* data button */
Expand Down Expand Up @@ -1535,6 +1541,7 @@ seqedit::on_delete_event(GdkEventAny *a_event)
m_mainperf->get_master_midi_bus()->set_sequence_input( false, NULL );
m_seq->set_editing( false );

delete m_lfo_wnd;
delete this;

return false;
Expand Down Expand Up @@ -1626,3 +1633,5 @@ seqedit::adj_callback_vel()
{
m_seq->get_track()->set_default_velocity( (int) m_adjust_vel->get_value() );
}


4 changes: 4 additions & 0 deletions src/seqedit.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include <string>

#include "globals.h"
#include "lfownd.h"

using namespace Gtk;

Expand Down Expand Up @@ -147,6 +148,8 @@ class seqedit : public Gtk::Window

Button *m_button_stop;
Button *m_button_play;
Button *m_button_lfo;
lfownd *m_lfo_wnd;

ToggleButton *m_toggle_play;
ToggleButton *m_toggle_record;
Expand Down Expand Up @@ -243,6 +246,7 @@ class seqedit : public Gtk::Window
void mouse_action( mouse_action_e a_action );

void start_playing();

void stop_playing();

void set_track_info( );
Expand Down
Loading