From e4ddcea99be5648b707f76b73cea5166d0dfbea8 Mon Sep 17 00:00:00 2001 From: Paul Giblock Date: Sat, 3 Feb 2007 09:28:50 +0000 Subject: [PATCH] Added LB302 BassSynth, 302 sample project, and modified Knob for 64bit systems. Read plugins/lb302/README for more information. git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@455 0778d3d1-df1d-0410-868b-ea421aaaa00d --- configure.in | 1 + data/projects/misc/lb302_quick.mmpz | Bin 0 -> 3181 bytes plugins/Makefile.am | 1 + plugins/lb302/.deps/lb302.Plo | 972 +++++++++++++++++++++++++++ plugins/lb302/.deps/lb303.Plo | 981 ++++++++++++++++++++++++++++ plugins/lb302/Makefile.am | 33 + plugins/lb302/README | 87 +++ plugins/lb302/artwork.png | Bin 0 -> 72813 bytes plugins/lb302/lb302.cpp | 771 ++++++++++++++++++++++ plugins/lb302/lb302.h | 219 +++++++ plugins/lb302/logo.png | Bin 0 -> 3468 bytes src/widgets/knob.cpp | 4 +- 12 files changed, 3068 insertions(+), 1 deletion(-) create mode 100644 data/projects/misc/lb302_quick.mmpz create mode 100644 plugins/lb302/.deps/lb302.Plo create mode 100644 plugins/lb302/.deps/lb303.Plo create mode 100644 plugins/lb302/Makefile.am create mode 100644 plugins/lb302/README create mode 100644 plugins/lb302/artwork.png create mode 100644 plugins/lb302/lb302.cpp create mode 100644 plugins/lb302/lb302.h create mode 100644 plugins/lb302/logo.png diff --git a/configure.in b/configure.in index a717cd9f3..00b428a68 100644 --- a/configure.in +++ b/configure.in @@ -584,6 +584,7 @@ AC_CONFIG_FILES([Makefile plugins/ladspa_base/Makefile plugins/ladspa_effect/Makefile plugins/ladspa_effect/caps/Makefile + plugins/lb302/Makefile plugins/live_tool/Makefile plugins/midi_import/Makefile plugins/organic/Makefile diff --git a/data/projects/misc/lb302_quick.mmpz b/data/projects/misc/lb302_quick.mmpz new file mode 100644 index 0000000000000000000000000000000000000000..3d4b966af0ad9fec2ad9a759a94edcaf63a69431 GIT binary patch literal 3181 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 Tz9YckI0=uWx3B&L$6pU44>35A literal 0 HcmV?d00001 diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 8cbb90780..4d5b8ba1e 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -21,6 +21,7 @@ SUBDIRS = \ flp_import \ kicker \ $(LADSPA_DIRS) \ + lb302 \ live_tool \ midi_import \ organic \ diff --git a/plugins/lb302/.deps/lb302.Plo b/plugins/lb302/.deps/lb302.Plo new file mode 100644 index 000000000..253a40b4c --- /dev/null +++ b/plugins/lb302/.deps/lb302.Plo @@ -0,0 +1,972 @@ +lb302.lo lb302.o: lb302.cpp ../../include/qt3support.h \ + /usr/qt/3/include/qglobal.h /usr/qt/3/include/qconfig.h \ + /usr/qt/3/include/qmodules.h /usr/qt/3/include/qfeatures.h \ + /usr/qt/3/include/qpair.h /usr/qt/3/include/qglobal.h \ + /usr/qt/3/include/qdatastream.h /usr/qt/3/include/qiodevice.h \ + /usr/qt/3/include/qcstring.h /usr/qt/3/include/qmemarray.h \ + /usr/qt/3/include/qgarray.h /usr/qt/3/include/qshared.h \ + /usr/qt/3/include/qwinexport.h /usr/include/string.h \ + /usr/include/gentoo-multilib/amd64/string.h /usr/include/features.h \ + /usr/include/gentoo-multilib/amd64/features.h /usr/include/sys/cdefs.h \ + /usr/include/gentoo-multilib/amd64/sys/cdefs.h \ + /usr/include/bits/wordsize.h \ + /usr/include/gentoo-multilib/amd64/bits/wordsize.h \ + /usr/include/gnu/stubs.h /usr/include/gentoo-multilib/amd64/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/include/gentoo-multilib/amd64/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stddef.h \ + /usr/include/xlocale.h /usr/include/gentoo-multilib/amd64/xlocale.h \ + /usr/qt/3/include/qstring.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/limits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/syslimits.h \ + /usr/include/limits.h /usr/include/gentoo-multilib/amd64/limits.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/local_lim.h \ + /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/posix2_lim.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/xopen_lim.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/stdio_lim.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/string \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstring \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstddef \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/climits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib \ + /usr/include/stdlib.h /usr/include/gentoo-multilib/amd64/stdlib.h \ + /usr/include/bits/waitflags.h \ + /usr/include/gentoo-multilib/amd64/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/gentoo-multilib/amd64/bits/waitstatus.h \ + /usr/include/endian.h /usr/include/gentoo-multilib/amd64/endian.h \ + /usr/include/bits/endian.h \ + /usr/include/gentoo-multilib/amd64/bits/endian.h \ + /usr/include/sys/types.h /usr/include/gentoo-multilib/amd64/sys/types.h \ + /usr/include/bits/types.h \ + /usr/include/gentoo-multilib/amd64/bits/types.h \ + /usr/include/bits/typesizes.h \ + /usr/include/gentoo-multilib/amd64/bits/typesizes.h /usr/include/time.h \ + /usr/include/gentoo-multilib/amd64/time.h /usr/include/sys/select.h \ + /usr/include/gentoo-multilib/amd64/sys/select.h \ + /usr/include/bits/select.h \ + /usr/include/gentoo-multilib/amd64/bits/select.h \ + /usr/include/bits/sigset.h \ + /usr/include/gentoo-multilib/amd64/bits/sigset.h \ + /usr/include/bits/time.h /usr/include/gentoo-multilib/amd64/bits/time.h \ + /usr/include/sys/sysmacros.h \ + /usr/include/gentoo-multilib/amd64/sys/sysmacros.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/gentoo-multilib/amd64/alloca.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdio \ + /usr/include/stdio.h /usr/include/gentoo-multilib/amd64/stdio.h \ + /usr/include/libio.h /usr/include/gentoo-multilib/amd64/libio.h \ + /usr/include/_G_config.h /usr/include/gentoo-multilib/amd64/_G_config.h \ + /usr/include/wchar.h /usr/include/gentoo-multilib/amd64/wchar.h \ + /usr/include/bits/wchar.h \ + /usr/include/gentoo-multilib/amd64/bits/wchar.h /usr/include/gconv.h \ + /usr/include/gentoo-multilib/amd64/gconv.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stdarg.h \ + /usr/include/bits/sys_errlist.h \ + /usr/include/gentoo-multilib/amd64/bits/sys_errlist.h \ + /usr/include/bits/stdio.h \ + /usr/include/gentoo-multilib/amd64/bits/stdio.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/clocale \ + /usr/include/locale.h /usr/include/gentoo-multilib/amd64/locale.h \ + /usr/include/bits/locale.h \ + /usr/include/gentoo-multilib/amd64/bits/locale.h \ + /usr/include/langinfo.h /usr/include/gentoo-multilib/amd64/langinfo.h \ + /usr/include/nl_types.h /usr/include/gentoo-multilib/amd64/nl_types.h \ + /usr/include/iconv.h /usr/include/gentoo-multilib/amd64/iconv.h \ + /usr/include/libintl.h /usr/include/gentoo-multilib/amd64/libintl.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/gentoo-multilib/amd64/pthread.h \ + /usr/include/sched.h /usr/include/gentoo-multilib/amd64/sched.h \ + /usr/include/bits/sched.h \ + /usr/include/gentoo-multilib/amd64/bits/sched.h /usr/include/signal.h \ + /usr/include/gentoo-multilib/amd64/signal.h /usr/include/bits/setjmp.h \ + /usr/include/gentoo-multilib/amd64/bits/setjmp.h /usr/include/unistd.h \ + /usr/include/gentoo-multilib/amd64/unistd.h \ + /usr/include/bits/posix_opt.h \ + /usr/include/gentoo-multilib/amd64/bits/posix_opt.h \ + /usr/include/bits/environments.h \ + /usr/include/gentoo-multilib/amd64/bits/environments.h \ + /usr/include/bits/confname.h \ + /usr/include/gentoo-multilib/amd64/bits/confname.h \ + /usr/include/getopt.h /usr/include/gentoo-multilib/amd64/getopt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cctype \ + /usr/include/ctype.h /usr/include/gentoo-multilib/amd64/ctype.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwchar \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ctime \ + /usr/include/stdint.h /usr/include/gentoo-multilib/amd64/stdint.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/memory \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/new \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/limits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/algorithm \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc \ + /usr/qt/3/include/qfileinfo.h /usr/qt/3/include/qfile.h \ + /usr/qt/3/include/qdatetime.h /usr/qt/3/include/qnamespace.h \ + /usr/qt/3/include/qdom.h lb302.h ../../include/instrument.h \ + ../../config.h ../../include/qt3support.h /usr/qt/3/include/qwidget.h \ + /usr/qt/3/include/qwindowdefs.h /usr/qt/3/include/qobjectdefs.h \ + /usr/qt/3/include/qobject.h /usr/qt/3/include/qevent.h \ + /usr/qt/3/include/qregion.h /usr/qt/3/include/qrect.h \ + /usr/qt/3/include/qsize.h /usr/qt/3/include/qpoint.h \ + /usr/qt/3/include/qmime.h /usr/qt/3/include/qmap.h \ + /usr/qt/3/include/qpair.h /usr/qt/3/include/qvaluelist.h \ + /usr/qt/3/include/qtl.h /usr/qt/3/include/qtextstream.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iterator \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ios \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/streambuf \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwctype \ + /usr/include/wctype.h /usr/include/gentoo-multilib/amd64/wctype.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/locale \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/istream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/list \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/map \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h \ + /usr/qt/3/include/qpaintdevice.h /usr/qt/3/include/qpalette.h \ + /usr/qt/3/include/qcolor.h /usr/qt/3/include/qstringlist.h \ + /usr/qt/3/include/qstrlist.h /usr/qt/3/include/qptrlist.h \ + /usr/qt/3/include/qglist.h /usr/qt/3/include/qptrcollection.h \ + /usr/qt/3/include/qbrush.h /usr/qt/3/include/qfont.h \ + /usr/qt/3/include/qfontmetrics.h /usr/qt/3/include/qfontinfo.h \ + /usr/qt/3/include/qsizepolicy.h /usr/qt/3/include/qvaluevector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/vector \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc \ + ../../include/plugin.h /usr/qt/3/include/qstring.h \ + ../../include/types.h ../../include/journalling_object.h \ + ../../include/engine.h /usr/qt/3/include/qvariant.h \ + /usr/qt/3/include/qvaluestack.h ../../include/embed.h \ + /usr/qt/3/include/qpixmap.h ../../include/base64.h \ + ../../include/mixer.h /usr/qt/3/include/qobject.h \ + /usr/qt/3/include/qmutex.h ../../include/volume.h \ + ../../include/panning.h ../../include/note.h ../../include/midi_time.h \ + ../../include/play_handle.h ../../include/effect_board.h \ + ../../include/led_checkbox.h ../../include/automatable_button.h \ + ../../include/automatable_object.h /usr/include/math.h \ + /usr/include/gentoo-multilib/amd64/math.h /usr/include/bits/huge_val.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_val.h \ + /usr/include/bits/huge_valf.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_vall.h \ + /usr/include/bits/inf.h /usr/include/gentoo-multilib/amd64/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/gentoo-multilib/amd64/bits/nan.h \ + /usr/include/bits/mathdef.h \ + /usr/include/gentoo-multilib/amd64/bits/mathdef.h \ + /usr/include/bits/mathcalls.h \ + /usr/include/gentoo-multilib/amd64/bits/mathcalls.h \ + /usr/include/bits/mathinline.h \ + /usr/include/gentoo-multilib/amd64/bits/mathinline.h \ + ../../include/automation_editor.h ../../include/automation_pattern.h \ + ../../include/track.h /usr/qt/3/include/qvaluelist.h \ + ../../include/rubberband.h ../../include/level_object.h \ + ../../include/xqmap.h /usr/qt/3/include/qmap.h \ + ../../include/templates.h /usr/qt/3/include/qtl.h \ + /usr/qt/3/include/qguardedptr.h ../../include/effect_lib.h \ + ../../include/lmms_constants.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iostream \ + ../../include/instrument_track.h /usr/qt/3/include/qapplication.h \ + /usr/qt/3/include/qdesktopwidget.h /usr/qt/3/include/qwidget.h \ + /usr/qt/3/include/qasciidict.h /usr/qt/3/include/qgdict.h \ + /usr/qt/3/include/qtranslator.h /usr/qt/3/include/qpushbutton.h \ + /usr/qt/3/include/qbutton.h /usr/qt/3/include/qkeysequence.h \ + /usr/qt/3/include/qiconset.h /usr/qt/3/include/qpixmap.h \ + /usr/qt/3/include/qpainter.h /usr/qt/3/include/qpen.h \ + /usr/qt/3/include/qpointarray.h /usr/qt/3/include/qwmatrix.h \ + ../../include/midi_event_processor.h ../../include/gui_templates.h \ + /usr/qt/3/include/qpaintdevicemetrics.h /usr/qt/3/include/qfont.h \ + /usr/qt/3/include/qdesktopwidget.h ../../include/tab_widget.h \ + ../../include/spc_bg_hndl_widget.h ../../include/volume_knob.h \ + ../../include/knob.h /usr/qt/3/include/qpoint.h \ + ../../include/instrument.h ../../include/instrument_play_handle.h \ + ../../include/note_play_handle.h ../../include/basic_filters.h \ + ../../include/bb_track.h ../../include/instrument_track.h \ + ../../include/templates.h ../../include/buffer_allocator.h \ + ../../include/knob.h ../../src/lib/embed.cpp ../../include/qt3support.h \ + /usr/qt/3/include/qimage.h ../../include/embed.h \ + ../../include/config_mgr.h /usr/qt/3/include/qdialog.h \ + embedded_resources.h ../../include/embed.h lb302.moc \ + /usr/qt/3/include/qmetaobject.h /usr/qt/3/include/qconnection.h \ + /usr/qt/3/include/private/qucomextra_p.h \ + /usr/qt/3/include/private/qucom_p.h /usr/qt/3/include/quuid.h + +../../include/qt3support.h: + +/usr/qt/3/include/qglobal.h: + +/usr/qt/3/include/qconfig.h: + +/usr/qt/3/include/qmodules.h: + +/usr/qt/3/include/qfeatures.h: + +/usr/qt/3/include/qpair.h: + +/usr/qt/3/include/qglobal.h: + +/usr/qt/3/include/qdatastream.h: + +/usr/qt/3/include/qiodevice.h: + +/usr/qt/3/include/qcstring.h: + +/usr/qt/3/include/qmemarray.h: + +/usr/qt/3/include/qgarray.h: + +/usr/qt/3/include/qshared.h: + +/usr/qt/3/include/qwinexport.h: + +/usr/include/string.h: + +/usr/include/gentoo-multilib/amd64/string.h: + +/usr/include/features.h: + +/usr/include/gentoo-multilib/amd64/features.h: + +/usr/include/sys/cdefs.h: + +/usr/include/gentoo-multilib/amd64/sys/cdefs.h: + +/usr/include/bits/wordsize.h: + +/usr/include/gentoo-multilib/amd64/bits/wordsize.h: + +/usr/include/gnu/stubs.h: + +/usr/include/gentoo-multilib/amd64/gnu/stubs.h: + +/usr/include/gnu/stubs-64.h: + +/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/gentoo-multilib/amd64/xlocale.h: + +/usr/qt/3/include/qstring.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/limits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/gentoo-multilib/amd64/limits.h: + +/usr/include/bits/posix1_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h: + +/usr/include/bits/local_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/bits/posix2_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h: + +/usr/include/bits/xopen_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h: + +/usr/include/bits/stdio_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/string: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstring: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstddef: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/climits: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib: + +/usr/include/stdlib.h: + +/usr/include/gentoo-multilib/amd64/stdlib.h: + +/usr/include/bits/waitflags.h: + +/usr/include/gentoo-multilib/amd64/bits/waitflags.h: + +/usr/include/bits/waitstatus.h: + +/usr/include/gentoo-multilib/amd64/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/gentoo-multilib/amd64/endian.h: + +/usr/include/bits/endian.h: + +/usr/include/gentoo-multilib/amd64/bits/endian.h: + +/usr/include/sys/types.h: + +/usr/include/gentoo-multilib/amd64/sys/types.h: + +/usr/include/bits/types.h: + +/usr/include/gentoo-multilib/amd64/bits/types.h: + +/usr/include/bits/typesizes.h: + +/usr/include/gentoo-multilib/amd64/bits/typesizes.h: + +/usr/include/time.h: + +/usr/include/gentoo-multilib/amd64/time.h: + +/usr/include/sys/select.h: + +/usr/include/gentoo-multilib/amd64/sys/select.h: + +/usr/include/bits/select.h: + +/usr/include/gentoo-multilib/amd64/bits/select.h: + +/usr/include/bits/sigset.h: + +/usr/include/gentoo-multilib/amd64/bits/sigset.h: + +/usr/include/bits/time.h: + +/usr/include/gentoo-multilib/amd64/bits/time.h: + +/usr/include/sys/sysmacros.h: + +/usr/include/gentoo-multilib/amd64/sys/sysmacros.h: + +/usr/include/bits/pthreadtypes.h: + +/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/gentoo-multilib/amd64/alloca.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdio: + +/usr/include/stdio.h: + +/usr/include/gentoo-multilib/amd64/stdio.h: + +/usr/include/libio.h: + +/usr/include/gentoo-multilib/amd64/libio.h: + +/usr/include/_G_config.h: + +/usr/include/gentoo-multilib/amd64/_G_config.h: + +/usr/include/wchar.h: + +/usr/include/gentoo-multilib/amd64/wchar.h: + +/usr/include/bits/wchar.h: + +/usr/include/gentoo-multilib/amd64/bits/wchar.h: + +/usr/include/gconv.h: + +/usr/include/gentoo-multilib/amd64/gconv.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stdarg.h: + +/usr/include/bits/sys_errlist.h: + +/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h: + +/usr/include/bits/stdio.h: + +/usr/include/gentoo-multilib/amd64/bits/stdio.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/clocale: + +/usr/include/locale.h: + +/usr/include/gentoo-multilib/amd64/locale.h: + +/usr/include/bits/locale.h: + +/usr/include/gentoo-multilib/amd64/bits/locale.h: + +/usr/include/langinfo.h: + +/usr/include/gentoo-multilib/amd64/langinfo.h: + +/usr/include/nl_types.h: + +/usr/include/gentoo-multilib/amd64/nl_types.h: + +/usr/include/iconv.h: + +/usr/include/gentoo-multilib/amd64/iconv.h: + +/usr/include/libintl.h: + +/usr/include/gentoo-multilib/amd64/libintl.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/gentoo-multilib/amd64/pthread.h: + +/usr/include/sched.h: + +/usr/include/gentoo-multilib/amd64/sched.h: + +/usr/include/bits/sched.h: + +/usr/include/gentoo-multilib/amd64/bits/sched.h: + +/usr/include/signal.h: + +/usr/include/gentoo-multilib/amd64/signal.h: + +/usr/include/bits/setjmp.h: + +/usr/include/gentoo-multilib/amd64/bits/setjmp.h: + +/usr/include/unistd.h: + +/usr/include/gentoo-multilib/amd64/unistd.h: + +/usr/include/bits/posix_opt.h: + +/usr/include/gentoo-multilib/amd64/bits/posix_opt.h: + +/usr/include/bits/environments.h: + +/usr/include/gentoo-multilib/amd64/bits/environments.h: + +/usr/include/bits/confname.h: + +/usr/include/gentoo-multilib/amd64/bits/confname.h: + +/usr/include/getopt.h: + +/usr/include/gentoo-multilib/amd64/getopt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cctype: + +/usr/include/ctype.h: + +/usr/include/gentoo-multilib/amd64/ctype.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwchar: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ctime: + +/usr/include/stdint.h: + +/usr/include/gentoo-multilib/amd64/stdint.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/memory: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/new: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/limits: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/algorithm: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc: + +/usr/qt/3/include/qfileinfo.h: + +/usr/qt/3/include/qfile.h: + +/usr/qt/3/include/qdatetime.h: + +/usr/qt/3/include/qnamespace.h: + +/usr/qt/3/include/qdom.h: + +lb302.h: + +../../include/instrument.h: + +../../config.h: + +../../include/qt3support.h: + +/usr/qt/3/include/qwidget.h: + +/usr/qt/3/include/qwindowdefs.h: + +/usr/qt/3/include/qobjectdefs.h: + +/usr/qt/3/include/qobject.h: + +/usr/qt/3/include/qevent.h: + +/usr/qt/3/include/qregion.h: + +/usr/qt/3/include/qrect.h: + +/usr/qt/3/include/qsize.h: + +/usr/qt/3/include/qpoint.h: + +/usr/qt/3/include/qmime.h: + +/usr/qt/3/include/qmap.h: + +/usr/qt/3/include/qpair.h: + +/usr/qt/3/include/qvaluelist.h: + +/usr/qt/3/include/qtl.h: + +/usr/qt/3/include/qtextstream.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iterator: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ostream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ios: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/streambuf: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwctype: + +/usr/include/wctype.h: + +/usr/include/gentoo-multilib/amd64/wctype.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/locale: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/istream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/list: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/map: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h: + +/usr/qt/3/include/qpaintdevice.h: + +/usr/qt/3/include/qpalette.h: + +/usr/qt/3/include/qcolor.h: + +/usr/qt/3/include/qstringlist.h: + +/usr/qt/3/include/qstrlist.h: + +/usr/qt/3/include/qptrlist.h: + +/usr/qt/3/include/qglist.h: + +/usr/qt/3/include/qptrcollection.h: + +/usr/qt/3/include/qbrush.h: + +/usr/qt/3/include/qfont.h: + +/usr/qt/3/include/qfontmetrics.h: + +/usr/qt/3/include/qfontinfo.h: + +/usr/qt/3/include/qsizepolicy.h: + +/usr/qt/3/include/qvaluevector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/vector: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc: + +../../include/plugin.h: + +/usr/qt/3/include/qstring.h: + +../../include/types.h: + +../../include/journalling_object.h: + +../../include/engine.h: + +/usr/qt/3/include/qvariant.h: + +/usr/qt/3/include/qvaluestack.h: + +../../include/embed.h: + +/usr/qt/3/include/qpixmap.h: + +../../include/base64.h: + +../../include/mixer.h: + +/usr/qt/3/include/qobject.h: + +/usr/qt/3/include/qmutex.h: + +../../include/volume.h: + +../../include/panning.h: + +../../include/note.h: + +../../include/midi_time.h: + +../../include/play_handle.h: + +../../include/effect_board.h: + +../../include/led_checkbox.h: + +../../include/automatable_button.h: + +../../include/automatable_object.h: + +/usr/include/math.h: + +/usr/include/gentoo-multilib/amd64/math.h: + +/usr/include/bits/huge_val.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_val.h: + +/usr/include/bits/huge_valf.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_valf.h: + +/usr/include/bits/huge_vall.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_vall.h: + +/usr/include/bits/inf.h: + +/usr/include/gentoo-multilib/amd64/bits/inf.h: + +/usr/include/bits/nan.h: + +/usr/include/gentoo-multilib/amd64/bits/nan.h: + +/usr/include/bits/mathdef.h: + +/usr/include/gentoo-multilib/amd64/bits/mathdef.h: + +/usr/include/bits/mathcalls.h: + +/usr/include/gentoo-multilib/amd64/bits/mathcalls.h: + +/usr/include/bits/mathinline.h: + +/usr/include/gentoo-multilib/amd64/bits/mathinline.h: + +../../include/automation_editor.h: + +../../include/automation_pattern.h: + +../../include/track.h: + +/usr/qt/3/include/qvaluelist.h: + +../../include/rubberband.h: + +../../include/level_object.h: + +../../include/xqmap.h: + +/usr/qt/3/include/qmap.h: + +../../include/templates.h: + +/usr/qt/3/include/qtl.h: + +/usr/qt/3/include/qguardedptr.h: + +../../include/effect_lib.h: + +../../include/lmms_constants.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iostream: + +../../include/instrument_track.h: + +/usr/qt/3/include/qapplication.h: + +/usr/qt/3/include/qdesktopwidget.h: + +/usr/qt/3/include/qwidget.h: + +/usr/qt/3/include/qasciidict.h: + +/usr/qt/3/include/qgdict.h: + +/usr/qt/3/include/qtranslator.h: + +/usr/qt/3/include/qpushbutton.h: + +/usr/qt/3/include/qbutton.h: + +/usr/qt/3/include/qkeysequence.h: + +/usr/qt/3/include/qiconset.h: + +/usr/qt/3/include/qpixmap.h: + +/usr/qt/3/include/qpainter.h: + +/usr/qt/3/include/qpen.h: + +/usr/qt/3/include/qpointarray.h: + +/usr/qt/3/include/qwmatrix.h: + +../../include/midi_event_processor.h: + +../../include/gui_templates.h: + +/usr/qt/3/include/qpaintdevicemetrics.h: + +/usr/qt/3/include/qfont.h: + +/usr/qt/3/include/qdesktopwidget.h: + +../../include/tab_widget.h: + +../../include/spc_bg_hndl_widget.h: + +../../include/volume_knob.h: + +../../include/knob.h: + +/usr/qt/3/include/qpoint.h: + +../../include/instrument.h: + +../../include/instrument_play_handle.h: + +../../include/note_play_handle.h: + +../../include/basic_filters.h: + +../../include/bb_track.h: + +../../include/instrument_track.h: + +../../include/templates.h: + +../../include/buffer_allocator.h: + +../../include/knob.h: + +../../src/lib/embed.cpp: + +../../include/qt3support.h: + +/usr/qt/3/include/qimage.h: + +../../include/embed.h: + +../../include/config_mgr.h: + +/usr/qt/3/include/qdialog.h: + +embedded_resources.h: + +../../include/embed.h: + +lb302.moc: + +/usr/qt/3/include/qmetaobject.h: + +/usr/qt/3/include/qconnection.h: + +/usr/qt/3/include/private/qucomextra_p.h: + +/usr/qt/3/include/private/qucom_p.h: + +/usr/qt/3/include/quuid.h: diff --git a/plugins/lb302/.deps/lb303.Plo b/plugins/lb302/.deps/lb303.Plo new file mode 100644 index 000000000..c1ae9f0ff --- /dev/null +++ b/plugins/lb302/.deps/lb303.Plo @@ -0,0 +1,981 @@ +lb303.lo lb303.o: lb303.cpp ../../include/qt3support.h \ + /usr/qt/3/include/qglobal.h /usr/qt/3/include/qconfig.h \ + /usr/qt/3/include/qmodules.h /usr/qt/3/include/qfeatures.h \ + /usr/qt/3/include/qpair.h /usr/qt/3/include/qglobal.h \ + /usr/qt/3/include/qdatastream.h /usr/qt/3/include/qiodevice.h \ + /usr/qt/3/include/qcstring.h /usr/qt/3/include/qmemarray.h \ + /usr/qt/3/include/qgarray.h /usr/qt/3/include/qshared.h \ + /usr/qt/3/include/qwinexport.h /usr/include/string.h \ + /usr/include/gentoo-multilib/amd64/string.h /usr/include/features.h \ + /usr/include/gentoo-multilib/amd64/features.h /usr/include/sys/cdefs.h \ + /usr/include/gentoo-multilib/amd64/sys/cdefs.h \ + /usr/include/bits/wordsize.h \ + /usr/include/gentoo-multilib/amd64/bits/wordsize.h \ + /usr/include/gnu/stubs.h /usr/include/gentoo-multilib/amd64/gnu/stubs.h \ + /usr/include/gnu/stubs-64.h \ + /usr/include/gentoo-multilib/amd64/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stddef.h \ + /usr/include/xlocale.h /usr/include/gentoo-multilib/amd64/xlocale.h \ + /usr/qt/3/include/qstring.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/limits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/syslimits.h \ + /usr/include/limits.h /usr/include/gentoo-multilib/amd64/limits.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/posix1_lim.h \ + /usr/include/bits/local_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/local_lim.h \ + /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/posix2_lim.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/xopen_lim.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/gentoo-multilib/amd64/bits/stdio_lim.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/string \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstring \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstddef \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/climits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib \ + /usr/include/stdlib.h /usr/include/gentoo-multilib/amd64/stdlib.h \ + /usr/include/bits/waitflags.h \ + /usr/include/gentoo-multilib/amd64/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/gentoo-multilib/amd64/bits/waitstatus.h \ + /usr/include/endian.h /usr/include/gentoo-multilib/amd64/endian.h \ + /usr/include/bits/endian.h \ + /usr/include/gentoo-multilib/amd64/bits/endian.h \ + /usr/include/sys/types.h /usr/include/gentoo-multilib/amd64/sys/types.h \ + /usr/include/bits/types.h \ + /usr/include/gentoo-multilib/amd64/bits/types.h \ + /usr/include/bits/typesizes.h \ + /usr/include/gentoo-multilib/amd64/bits/typesizes.h /usr/include/time.h \ + /usr/include/gentoo-multilib/amd64/time.h /usr/include/sys/select.h \ + /usr/include/gentoo-multilib/amd64/sys/select.h \ + /usr/include/bits/select.h \ + /usr/include/gentoo-multilib/amd64/bits/select.h \ + /usr/include/bits/sigset.h \ + /usr/include/gentoo-multilib/amd64/bits/sigset.h \ + /usr/include/bits/time.h /usr/include/gentoo-multilib/amd64/bits/time.h \ + /usr/include/sys/sysmacros.h \ + /usr/include/gentoo-multilib/amd64/sys/sysmacros.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h \ + /usr/include/alloca.h /usr/include/gentoo-multilib/amd64/alloca.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdio \ + /usr/include/stdio.h /usr/include/gentoo-multilib/amd64/stdio.h \ + /usr/include/libio.h /usr/include/gentoo-multilib/amd64/libio.h \ + /usr/include/_G_config.h /usr/include/gentoo-multilib/amd64/_G_config.h \ + /usr/include/wchar.h /usr/include/gentoo-multilib/amd64/wchar.h \ + /usr/include/bits/wchar.h \ + /usr/include/gentoo-multilib/amd64/bits/wchar.h /usr/include/gconv.h \ + /usr/include/gentoo-multilib/amd64/gconv.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stdarg.h \ + /usr/include/bits/sys_errlist.h \ + /usr/include/gentoo-multilib/amd64/bits/sys_errlist.h \ + /usr/include/bits/stdio.h \ + /usr/include/gentoo-multilib/amd64/bits/stdio.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/clocale \ + /usr/include/locale.h /usr/include/gentoo-multilib/amd64/locale.h \ + /usr/include/bits/locale.h \ + /usr/include/gentoo-multilib/amd64/bits/locale.h \ + /usr/include/langinfo.h /usr/include/gentoo-multilib/amd64/langinfo.h \ + /usr/include/nl_types.h /usr/include/gentoo-multilib/amd64/nl_types.h \ + /usr/include/iconv.h /usr/include/gentoo-multilib/amd64/iconv.h \ + /usr/include/libintl.h /usr/include/gentoo-multilib/amd64/libintl.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/gentoo-multilib/amd64/pthread.h \ + /usr/include/sched.h /usr/include/gentoo-multilib/amd64/sched.h \ + /usr/include/bits/sched.h \ + /usr/include/gentoo-multilib/amd64/bits/sched.h /usr/include/signal.h \ + /usr/include/gentoo-multilib/amd64/signal.h /usr/include/bits/setjmp.h \ + /usr/include/gentoo-multilib/amd64/bits/setjmp.h /usr/include/unistd.h \ + /usr/include/gentoo-multilib/amd64/unistd.h \ + /usr/include/bits/posix_opt.h \ + /usr/include/gentoo-multilib/amd64/bits/posix_opt.h \ + /usr/include/bits/environments.h \ + /usr/include/gentoo-multilib/amd64/bits/environments.h \ + /usr/include/bits/confname.h \ + /usr/include/gentoo-multilib/amd64/bits/confname.h \ + /usr/include/getopt.h /usr/include/gentoo-multilib/amd64/getopt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cctype \ + /usr/include/ctype.h /usr/include/gentoo-multilib/amd64/ctype.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwchar \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ctime \ + /usr/include/stdint.h /usr/include/gentoo-multilib/amd64/stdint.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/memory \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/new \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/limits \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/algorithm \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc \ + /usr/qt/3/include/qfileinfo.h /usr/qt/3/include/qfile.h \ + /usr/qt/3/include/qdatetime.h /usr/qt/3/include/qnamespace.h \ + /usr/qt/3/include/qdom.h lb303.h ../../include/instrument.h \ + ../../config.h ../../include/qt3support.h /usr/qt/3/include/qwidget.h \ + /usr/qt/3/include/qwindowdefs.h /usr/qt/3/include/qobjectdefs.h \ + /usr/qt/3/include/qobject.h /usr/qt/3/include/qevent.h \ + /usr/qt/3/include/qregion.h /usr/qt/3/include/qrect.h \ + /usr/qt/3/include/qsize.h /usr/qt/3/include/qpoint.h \ + /usr/qt/3/include/qmime.h /usr/qt/3/include/qmap.h \ + /usr/qt/3/include/qpair.h /usr/qt/3/include/qvaluelist.h \ + /usr/qt/3/include/qtl.h /usr/qt/3/include/qtextstream.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iterator \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ios \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/streambuf \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwctype \ + /usr/include/wctype.h /usr/include/gentoo-multilib/amd64/wctype.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/locale \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/istream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/list \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/map \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h \ + /usr/qt/3/include/qpaintdevice.h /usr/qt/3/include/qpalette.h \ + /usr/qt/3/include/qcolor.h /usr/qt/3/include/qstringlist.h \ + /usr/qt/3/include/qstrlist.h /usr/qt/3/include/qptrlist.h \ + /usr/qt/3/include/qglist.h /usr/qt/3/include/qptrcollection.h \ + /usr/qt/3/include/qbrush.h /usr/qt/3/include/qfont.h \ + /usr/qt/3/include/qfontmetrics.h /usr/qt/3/include/qfontinfo.h \ + /usr/qt/3/include/qsizepolicy.h /usr/qt/3/include/qvaluevector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/vector \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc \ + ../../include/plugin.h /usr/qt/3/include/qstring.h \ + ../../include/types.h ../../include/journalling_object.h \ + ../../include/engine.h /usr/qt/3/include/qvariant.h \ + /usr/qt/3/include/qvaluestack.h ../../include/embed.h \ + /usr/qt/3/include/qpixmap.h ../../include/base64.h \ + ../../include/mixer.h /usr/qt/3/include/qobject.h \ + /usr/qt/3/include/qmutex.h ../../include/volume.h \ + ../../include/panning.h ../../include/note.h ../../include/midi_time.h \ + ../../include/play_handle.h ../../include/effect_board.h \ + ../../include/led_checkbox.h ../../include/automatable_button.h \ + ../../include/automatable_object.h /usr/include/math.h \ + /usr/include/gentoo-multilib/amd64/math.h /usr/include/bits/huge_val.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_val.h \ + /usr/include/bits/huge_valf.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_valf.h \ + /usr/include/bits/huge_vall.h \ + /usr/include/gentoo-multilib/amd64/bits/huge_vall.h \ + /usr/include/bits/inf.h /usr/include/gentoo-multilib/amd64/bits/inf.h \ + /usr/include/bits/nan.h /usr/include/gentoo-multilib/amd64/bits/nan.h \ + /usr/include/bits/mathdef.h \ + /usr/include/gentoo-multilib/amd64/bits/mathdef.h \ + /usr/include/bits/mathcalls.h \ + /usr/include/gentoo-multilib/amd64/bits/mathcalls.h \ + /usr/include/bits/mathinline.h \ + /usr/include/gentoo-multilib/amd64/bits/mathinline.h \ + ../../include/automation_editor.h ../../include/automation_pattern.h \ + ../../include/track.h /usr/qt/3/include/qvaluelist.h \ + ../../include/rubberband.h ../../include/level_object.h \ + ../../include/xqmap.h /usr/qt/3/include/qmap.h \ + ../../include/templates.h /usr/qt/3/include/qtl.h \ + /usr/qt/3/include/qguardedptr.h ../../include/effect_lib.h \ + ../../include/lmms_constants.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iostream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/fstream \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/basic_file.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/fstream.tcc \ + ../../include/instrument_track.h /usr/qt/3/include/qapplication.h \ + /usr/qt/3/include/qdesktopwidget.h /usr/qt/3/include/qwidget.h \ + /usr/qt/3/include/qasciidict.h /usr/qt/3/include/qgdict.h \ + /usr/qt/3/include/qtranslator.h /usr/qt/3/include/qpushbutton.h \ + /usr/qt/3/include/qbutton.h /usr/qt/3/include/qkeysequence.h \ + /usr/qt/3/include/qiconset.h /usr/qt/3/include/qpixmap.h \ + /usr/qt/3/include/qpainter.h /usr/qt/3/include/qpen.h \ + /usr/qt/3/include/qpointarray.h /usr/qt/3/include/qwmatrix.h \ + ../../include/midi_event_processor.h ../../include/gui_templates.h \ + /usr/qt/3/include/qpaintdevicemetrics.h /usr/qt/3/include/qfont.h \ + /usr/qt/3/include/qdesktopwidget.h ../../include/tab_widget.h \ + ../../include/spc_bg_hndl_widget.h ../../include/volume_knob.h \ + ../../include/knob.h /usr/qt/3/include/qpoint.h \ + ../../include/instrument.h ../../include/instrument_play_handle.h \ + ../../include/note_play_handle.h ../../include/basic_filters.h \ + ../../include/bb_track.h ../../include/instrument_track.h \ + ../../include/templates.h ../../include/buffer_allocator.h \ + ../../include/knob.h ../../src/lib/embed.cpp ../../include/qt3support.h \ + /usr/qt/3/include/qimage.h ../../include/embed.h \ + ../../include/config_mgr.h /usr/qt/3/include/qdialog.h \ + embedded_resources.h ../../include/embed.h lb303.moc \ + /usr/qt/3/include/qmetaobject.h /usr/qt/3/include/qconnection.h \ + /usr/qt/3/include/private/qucomextra_p.h \ + /usr/qt/3/include/private/qucom_p.h /usr/qt/3/include/quuid.h + +../../include/qt3support.h: + +/usr/qt/3/include/qglobal.h: + +/usr/qt/3/include/qconfig.h: + +/usr/qt/3/include/qmodules.h: + +/usr/qt/3/include/qfeatures.h: + +/usr/qt/3/include/qpair.h: + +/usr/qt/3/include/qglobal.h: + +/usr/qt/3/include/qdatastream.h: + +/usr/qt/3/include/qiodevice.h: + +/usr/qt/3/include/qcstring.h: + +/usr/qt/3/include/qmemarray.h: + +/usr/qt/3/include/qgarray.h: + +/usr/qt/3/include/qshared.h: + +/usr/qt/3/include/qwinexport.h: + +/usr/include/string.h: + +/usr/include/gentoo-multilib/amd64/string.h: + +/usr/include/features.h: + +/usr/include/gentoo-multilib/amd64/features.h: + +/usr/include/sys/cdefs.h: + +/usr/include/gentoo-multilib/amd64/sys/cdefs.h: + +/usr/include/bits/wordsize.h: + +/usr/include/gentoo-multilib/amd64/bits/wordsize.h: + +/usr/include/gnu/stubs.h: + +/usr/include/gentoo-multilib/amd64/gnu/stubs.h: + +/usr/include/gnu/stubs-64.h: + +/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stddef.h: + +/usr/include/xlocale.h: + +/usr/include/gentoo-multilib/amd64/xlocale.h: + +/usr/qt/3/include/qstring.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/limits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/gentoo-multilib/amd64/limits.h: + +/usr/include/bits/posix1_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h: + +/usr/include/bits/local_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/bits/posix2_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h: + +/usr/include/bits/xopen_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h: + +/usr/include/bits/stdio_lim.h: + +/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/string: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstring: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstddef: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/climits: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib: + +/usr/include/stdlib.h: + +/usr/include/gentoo-multilib/amd64/stdlib.h: + +/usr/include/bits/waitflags.h: + +/usr/include/gentoo-multilib/amd64/bits/waitflags.h: + +/usr/include/bits/waitstatus.h: + +/usr/include/gentoo-multilib/amd64/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/gentoo-multilib/amd64/endian.h: + +/usr/include/bits/endian.h: + +/usr/include/gentoo-multilib/amd64/bits/endian.h: + +/usr/include/sys/types.h: + +/usr/include/gentoo-multilib/amd64/sys/types.h: + +/usr/include/bits/types.h: + +/usr/include/gentoo-multilib/amd64/bits/types.h: + +/usr/include/bits/typesizes.h: + +/usr/include/gentoo-multilib/amd64/bits/typesizes.h: + +/usr/include/time.h: + +/usr/include/gentoo-multilib/amd64/time.h: + +/usr/include/sys/select.h: + +/usr/include/gentoo-multilib/amd64/sys/select.h: + +/usr/include/bits/select.h: + +/usr/include/gentoo-multilib/amd64/bits/select.h: + +/usr/include/bits/sigset.h: + +/usr/include/gentoo-multilib/amd64/bits/sigset.h: + +/usr/include/bits/time.h: + +/usr/include/gentoo-multilib/amd64/bits/time.h: + +/usr/include/sys/sysmacros.h: + +/usr/include/gentoo-multilib/amd64/sys/sysmacros.h: + +/usr/include/bits/pthreadtypes.h: + +/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/gentoo-multilib/amd64/alloca.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cstdio: + +/usr/include/stdio.h: + +/usr/include/gentoo-multilib/amd64/stdio.h: + +/usr/include/libio.h: + +/usr/include/gentoo-multilib/amd64/libio.h: + +/usr/include/_G_config.h: + +/usr/include/gentoo-multilib/amd64/_G_config.h: + +/usr/include/wchar.h: + +/usr/include/gentoo-multilib/amd64/wchar.h: + +/usr/include/bits/wchar.h: + +/usr/include/gentoo-multilib/amd64/bits/wchar.h: + +/usr/include/gconv.h: + +/usr/include/gentoo-multilib/amd64/gconv.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/stdarg.h: + +/usr/include/bits/sys_errlist.h: + +/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h: + +/usr/include/bits/stdio.h: + +/usr/include/gentoo-multilib/amd64/bits/stdio.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/clocale: + +/usr/include/locale.h: + +/usr/include/gentoo-multilib/amd64/locale.h: + +/usr/include/bits/locale.h: + +/usr/include/gentoo-multilib/amd64/bits/locale.h: + +/usr/include/langinfo.h: + +/usr/include/gentoo-multilib/amd64/langinfo.h: + +/usr/include/nl_types.h: + +/usr/include/gentoo-multilib/amd64/nl_types.h: + +/usr/include/iconv.h: + +/usr/include/gentoo-multilib/amd64/iconv.h: + +/usr/include/libintl.h: + +/usr/include/gentoo-multilib/amd64/libintl.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h: + +/usr/include/pthread.h: + +/usr/include/gentoo-multilib/amd64/pthread.h: + +/usr/include/sched.h: + +/usr/include/gentoo-multilib/amd64/sched.h: + +/usr/include/bits/sched.h: + +/usr/include/gentoo-multilib/amd64/bits/sched.h: + +/usr/include/signal.h: + +/usr/include/gentoo-multilib/amd64/signal.h: + +/usr/include/bits/setjmp.h: + +/usr/include/gentoo-multilib/amd64/bits/setjmp.h: + +/usr/include/unistd.h: + +/usr/include/gentoo-multilib/amd64/unistd.h: + +/usr/include/bits/posix_opt.h: + +/usr/include/gentoo-multilib/amd64/bits/posix_opt.h: + +/usr/include/bits/environments.h: + +/usr/include/gentoo-multilib/amd64/bits/environments.h: + +/usr/include/bits/confname.h: + +/usr/include/gentoo-multilib/amd64/bits/confname.h: + +/usr/include/getopt.h: + +/usr/include/gentoo-multilib/amd64/getopt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cctype: + +/usr/include/ctype.h: + +/usr/include/gentoo-multilib/amd64/ctype.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwchar: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ctime: + +/usr/include/stdint.h: + +/usr/include/gentoo-multilib/amd64/stdint.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/memory: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/new: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/exception: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/limits: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/algorithm: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc: + +/usr/qt/3/include/qfileinfo.h: + +/usr/qt/3/include/qfile.h: + +/usr/qt/3/include/qdatetime.h: + +/usr/qt/3/include/qnamespace.h: + +/usr/qt/3/include/qdom.h: + +lb303.h: + +../../include/instrument.h: + +../../config.h: + +../../include/qt3support.h: + +/usr/qt/3/include/qwidget.h: + +/usr/qt/3/include/qwindowdefs.h: + +/usr/qt/3/include/qobjectdefs.h: + +/usr/qt/3/include/qobject.h: + +/usr/qt/3/include/qevent.h: + +/usr/qt/3/include/qregion.h: + +/usr/qt/3/include/qrect.h: + +/usr/qt/3/include/qsize.h: + +/usr/qt/3/include/qpoint.h: + +/usr/qt/3/include/qmime.h: + +/usr/qt/3/include/qmap.h: + +/usr/qt/3/include/qpair.h: + +/usr/qt/3/include/qvaluelist.h: + +/usr/qt/3/include/qtl.h: + +/usr/qt/3/include/qtextstream.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iterator: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ostream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/ios: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/localefwd.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ios_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_classes.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/streambuf: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/streambuf_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/cwctype: + +/usr/include/wctype.h: + +/usr/include/gentoo-multilib/amd64/wctype.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_base.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/ctype_inline.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/codecvt.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/time_members.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/messages_members.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_ios.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/ostream.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/locale: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/locale_facets.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/typeinfo: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/istream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/istream.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stream_iterator.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/list: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/map: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h: + +/usr/qt/3/include/qpaintdevice.h: + +/usr/qt/3/include/qpalette.h: + +/usr/qt/3/include/qcolor.h: + +/usr/qt/3/include/qstringlist.h: + +/usr/qt/3/include/qstrlist.h: + +/usr/qt/3/include/qptrlist.h: + +/usr/qt/3/include/qglist.h: + +/usr/qt/3/include/qptrcollection.h: + +/usr/qt/3/include/qbrush.h: + +/usr/qt/3/include/qfont.h: + +/usr/qt/3/include/qfontmetrics.h: + +/usr/qt/3/include/qfontinfo.h: + +/usr/qt/3/include/qsizepolicy.h: + +/usr/qt/3/include/qvaluevector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/vector: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc: + +../../include/plugin.h: + +/usr/qt/3/include/qstring.h: + +../../include/types.h: + +../../include/journalling_object.h: + +../../include/engine.h: + +/usr/qt/3/include/qvariant.h: + +/usr/qt/3/include/qvaluestack.h: + +../../include/embed.h: + +/usr/qt/3/include/qpixmap.h: + +../../include/base64.h: + +../../include/mixer.h: + +/usr/qt/3/include/qobject.h: + +/usr/qt/3/include/qmutex.h: + +../../include/volume.h: + +../../include/panning.h: + +../../include/note.h: + +../../include/midi_time.h: + +../../include/play_handle.h: + +../../include/effect_board.h: + +../../include/led_checkbox.h: + +../../include/automatable_button.h: + +../../include/automatable_object.h: + +/usr/include/math.h: + +/usr/include/gentoo-multilib/amd64/math.h: + +/usr/include/bits/huge_val.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_val.h: + +/usr/include/bits/huge_valf.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_valf.h: + +/usr/include/bits/huge_vall.h: + +/usr/include/gentoo-multilib/amd64/bits/huge_vall.h: + +/usr/include/bits/inf.h: + +/usr/include/gentoo-multilib/amd64/bits/inf.h: + +/usr/include/bits/nan.h: + +/usr/include/gentoo-multilib/amd64/bits/nan.h: + +/usr/include/bits/mathdef.h: + +/usr/include/gentoo-multilib/amd64/bits/mathdef.h: + +/usr/include/bits/mathcalls.h: + +/usr/include/gentoo-multilib/amd64/bits/mathcalls.h: + +/usr/include/bits/mathinline.h: + +/usr/include/gentoo-multilib/amd64/bits/mathinline.h: + +../../include/automation_editor.h: + +../../include/automation_pattern.h: + +../../include/track.h: + +/usr/qt/3/include/qvaluelist.h: + +../../include/rubberband.h: + +../../include/level_object.h: + +../../include/xqmap.h: + +/usr/qt/3/include/qmap.h: + +../../include/templates.h: + +/usr/qt/3/include/qtl.h: + +/usr/qt/3/include/qguardedptr.h: + +../../include/effect_lib.h: + +../../include/lmms_constants.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/iostream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/fstream: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/x86_64-pc-linux-gnu/bits/basic_file.h: + +/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4/bits/fstream.tcc: + +../../include/instrument_track.h: + +/usr/qt/3/include/qapplication.h: + +/usr/qt/3/include/qdesktopwidget.h: + +/usr/qt/3/include/qwidget.h: + +/usr/qt/3/include/qasciidict.h: + +/usr/qt/3/include/qgdict.h: + +/usr/qt/3/include/qtranslator.h: + +/usr/qt/3/include/qpushbutton.h: + +/usr/qt/3/include/qbutton.h: + +/usr/qt/3/include/qkeysequence.h: + +/usr/qt/3/include/qiconset.h: + +/usr/qt/3/include/qpixmap.h: + +/usr/qt/3/include/qpainter.h: + +/usr/qt/3/include/qpen.h: + +/usr/qt/3/include/qpointarray.h: + +/usr/qt/3/include/qwmatrix.h: + +../../include/midi_event_processor.h: + +../../include/gui_templates.h: + +/usr/qt/3/include/qpaintdevicemetrics.h: + +/usr/qt/3/include/qfont.h: + +/usr/qt/3/include/qdesktopwidget.h: + +../../include/tab_widget.h: + +../../include/spc_bg_hndl_widget.h: + +../../include/volume_knob.h: + +../../include/knob.h: + +/usr/qt/3/include/qpoint.h: + +../../include/instrument.h: + +../../include/instrument_play_handle.h: + +../../include/note_play_handle.h: + +../../include/basic_filters.h: + +../../include/bb_track.h: + +../../include/instrument_track.h: + +../../include/templates.h: + +../../include/buffer_allocator.h: + +../../include/knob.h: + +../../src/lib/embed.cpp: + +../../include/qt3support.h: + +/usr/qt/3/include/qimage.h: + +../../include/embed.h: + +../../include/config_mgr.h: + +/usr/qt/3/include/qdialog.h: + +embedded_resources.h: + +../../include/embed.h: + +lb303.moc: + +/usr/qt/3/include/qmetaobject.h: + +/usr/qt/3/include/qconnection.h: + +/usr/qt/3/include/private/qucomextra_p.h: + +/usr/qt/3/include/private/qucom_p.h: + +/usr/qt/3/include/quuid.h: diff --git a/plugins/lb302/Makefile.am b/plugins/lb302/Makefile.am new file mode 100644 index 000000000..68341194a --- /dev/null +++ b/plugins/lb302/Makefile.am @@ -0,0 +1,33 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="lb302" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./lb302.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES= liblb302.la + +liblb302_la_SOURCES = lb302.cpp lb302.h + +$(liblb302_la_SOURCES): ./embedded_resources.h diff --git a/plugins/lb302/README b/plugins/lb302/README new file mode 100644 index 000000000..2a8058e56 --- /dev/null +++ b/plugins/lb302/README @@ -0,0 +1,87 @@ +LB303 Bass Synth - Known bugs, issues, and missing features +----------------------------------------------------------- + +2007.02.03 - First release +-------------------------- + +Important note, in the current incarnation there are many behaviors, +constants, and other items that will be changed. This will result +in a change of the instrument's timbre and functionality. Therefore, +it would be wise to not make any masterpieces with the synth at +this point in time. + +BUG: + Fix the awful clicking cause by adjacent notes. This problem seems + to be caused by 'unexhausted buffers' That is, the problem manifests + itself to a greater degree when the user "buffer size" configuration + is increased to over 1024 frames or so. The problem is much less + noticable when the buffer size is set to 64 frames. + +BUG: + The synth does not make accomodations for sampling rates other than + 44100. This should be easy to fix, but I haven't gotten around to + it; nor do I have the means to test it. + +BUG: + I get segfaults now and then. Granted, I've rarely used LMMS + without also using LB302, so I do not know if the problem is actually + in the Bass Synth. I have gotten the backtraces a few times: + ... + mixer::renderNextBuffer() + mixer::nextAudioBuffer() + QOBject::activate_signal() + ??() + + and + + ... + instrumentTrack::play() + notePlayHandle() + instrumentTrack::processOutEvent() + fadeButton::activate() + QSingleShotTimer::start() + qStartTimer() + qKillTimer() + QGList::insertAt() + +TODO: + Add accent feature. This isn't as bad as it sounds, but will require + some tweaking to get right. + +TODO: + LB302 contains code for a short fixed-length default decay. If a + released note is using a user-defined VCA from the instrument + panel, then LB302 should not do anything special. However, if no + envelope is specified, then LB302 should request enough release-frames + in order to apply the built-in exponential decay. + +TODO: + The original TB303's square wave is not 50% duty cycle. The peaks are + supposed to slope down slightly. It would be nice to be able to + configure this. In fact, each waveform could have a parameter knob to + change some aspect of the wave. See lb302.cpp:643 for more info. + +TODO: + Must decide on proper action to take when a slide note is interrupted + by another slide note. Right now, the slide-from frequency is always + replaced with the prior note. However, we may wish to maintain the + current frequency in order to make the sound more continuous. + +TODO: + The default filter's distortion could use some work. + effectLib::distortion<> gets the job done, but the coefficients need + to more closely match that of lb302Filter3Pole's tanh distortion. + +TODO: + Slide decay needs a better knob mapping. sqrt()? lb302.cpp:588 + +TODO: + Consider making the slide trigger set the note to slide TO as opposed + to the note to slide FROM. I originally did FROM in order to match + the real 303. However, TO may be more intuitive. + +TODO: + Various code refactoring, as well as precomputing some values. + +TODO: + Remove one of the sawtooth waveforms in favor of the other? diff --git a/plugins/lb302/artwork.png b/plugins/lb302/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..54b65dd69830b545a91a012b255c4047d5c6a72b GIT binary patch literal 72813 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%0At_tRQQ;VI=+Bt*N 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�-5Go0%rs1%60R`x!5VdBV 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 KMNUMnLSTYA4|=x% literal 0 HcmV?d00001 diff --git a/plugins/lb302/lb302.cpp b/plugins/lb302/lb302.cpp new file mode 100644 index 000000000..306b92cb2 --- /dev/null +++ b/plugins/lb302/lb302.cpp @@ -0,0 +1,771 @@ +/* + * lb302.cpp - implementation of class lb302 which is a bass synth attempting + * to emulate the Roland TB303 bass synth + * + * Copyright (c) 2006-2007 Paul Giblock + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * lb302FilterIIR2 is based on the gsyn filter code by Andy Sloane. + * + * lb302Filter3Pole is based on the TB303 instrument written by + * Josep M Comajuncosas for the CSounds library + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "qt3support.h" + +#ifdef QT4 + +#include + +#else + +#include + +#endif + + +#include "lb302.h" +#include "instrument_track.h" +#include "instrument_play_handle.h" +#include "note_play_handle.h" +#include "templates.h" +#include "buffer_allocator.h" +#include "knob.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" +#include "lb302.moc" + + +// Envelope Recalculation period +#define ENVINC 64 + +// +// New config +// +#define LB_24_IGNORE_ENVELOPE +#define LB_FILTERED +//#define LB_24_RES_TRICK + +#define LB_DIST_RATIO 4.0 +#define LB_24_VOL_ADJUST 3.0 + +// +// Old config +// + + +#define LB_HZ 44100.0f + + +using namespace std; +extern "C" +{ + +plugin::descriptor lb302_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "LB302", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Incomplete monophonic immitation tb303" ), + "Paul Giblock ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +}; + +} + +// +// lb302Filter +// + +lb302Filter::lb302Filter(lb302FilterState* p_fs) : + fs(p_fs), + vcf_c0(0), + vcf_e0(0), + vcf_e1(0) +{ +}; + +void lb302Filter::recalc() +{ + vcf_e1 = exp(6.109 + 1.5876*(fs->envmod) + 2.1553*(fs->cutoff) - 1.2*(1.0-(fs->reso))); + vcf_e0 = exp(5.613 - 0.8*(fs->envmod) + 2.1553*(fs->cutoff) - 0.7696*(1.0-(fs->reso))); + vcf_e0*=M_PI/44100.0; + vcf_e1*=M_PI/44100.0; + vcf_e1 -= vcf_e0; +}; + +void lb302Filter::envRecalc() +{ + vcf_c0 *= fs->envdecay; // Filter Decay. vcf_decay is adjusted for Hz and ENVINC + vcf_rescoeff = exp(-1.20 + 3.455*(fs->reso)); +}; + +void lb302Filter::playNote() +{ + vcf_c0 = vcf_e1; +} + +// +// lb302FilterIIR2 +// + +lb302FilterIIR2::lb302FilterIIR2(lb302FilterState* p_fs) : + lb302Filter(p_fs), + vcf_d1(0), + vcf_d2(0), + vcf_a(0), + vcf_b(0), + vcf_c(1) +{ + + m_dist = new effectLib::distortion<>( 1.0, 1.0f); + +}; + +void lb302FilterIIR2::recalc() +{ + lb302Filter::recalc(); + //m_dist->setThreshold(0.5+(fs->dist*2.0)); + m_dist->setThreshold(fs->dist*75.0); +}; + +void lb302FilterIIR2::envRecalc() +{ + float k, w; + + lb302Filter::envRecalc(); + + w = vcf_e0 + vcf_c0; // e0 is adjusted for Hz and doesn't need ENVINC + k = exp(-w/vcf_rescoeff); + // Does this mean c0 is inheritantly? + vcf_a = 2.0*cos(2.0*w) * k; + vcf_b = -k*k; + vcf_c = 1.0 - vcf_a - vcf_b; +} + + +float lb302FilterIIR2::process(const float& samp) +{ + float ret = vcf_a*vcf_d1 + vcf_b*vcf_d2 + vcf_c*samp; + // Delayed samples for filter + vcf_d2 = vcf_d1; + vcf_d1 = ret; + + if(fs->dist > 0) + ret=m_dist->nextSample(ret); + // output = IIR2 + dry + return ret; +} + + +// +// lb302Filter3Pole +// + +lb302Filter3Pole::lb302Filter3Pole(lb302FilterState *p_fs) : + lb302Filter(p_fs), + ay1(0), + ay2(0), + aout(0), + lastin(0) +{ +}; + +void lb302Filter3Pole::recalc() +{ + // DO NOT CALL BASE CLASS + vcf_e0 = 0.000001; + vcf_e1 = 1.0; +} + +// TODO: Try using k instead of vcf_reso +void lb302Filter3Pole::envRecalc() +{ + float w,k; + float kfco; + + lb302Filter::envRecalc(); + + + w = vcf_e0 + vcf_c0; // e0 is adjusted for Hz and doesn't need ENVINC + k = (fs->cutoff > 0.975)?0.975:fs->cutoff; + kfco = 50.f+(k)*((2300.f-1600.f*(fs->envmod))+(w)*(700.f+1500.f*(k)+(1500.f+(k)*(44100.f/2.f-6000.f))*(fs->envmod))); + //+iacc*(.3+.7*kfco*kenvmod)*kaccent*kaccurve*2000 + + //printf("w: %f \t %f\n",w,kfco); + + + +#ifdef LB_24_IGNORE_ENVELOPE + // kfcn = fs->cutoff; + kfcn = 2.0 * kfco / LB_HZ; +#else + kfcn = w; +#endif + kp = ((-2.7528*kfcn + 3.0429)*kfcn + 1.718)*kfcn - 0.9984; + kp1 = kp+1.0; + kp1h = 0.5*kp1; +#ifdef LB_24_RES_TRICK + k = exp(-w/vcf_rescoeff); + kres = (((k))) * (((-2.7079*kp1 + 10.963)*kp1 - 14.934)*kp1 + 8.4974); +#else + kres = (((fs->reso))) * (((-2.7079*kp1 + 10.963)*kp1 - 14.934)*kp1 + 8.4974); +#endif + value = 1.0+( (fs->dist) *(1.5 + 2.0*kres*(1.0-kfcn))); // ENVMOD was DIST*/ +} + +float lb302Filter3Pole::process(const float& samp) +{ + float ax1 = lastin; + float ay11 = ay1; + float ay31 = ay2; + lastin = (samp) - tanh(kres*aout); + ay1 = kp1h * (lastin+ax1) - kp*ay1; + ay2 = kp1h * (ay1 + ay11) - kp*ay2; + aout = kp1h * (ay2 + ay31) - kp*aout; + + return tanh(aout*value)*LB_24_VOL_ADJUST/(1.0+fs->dist); +} + + +// +// LBSynth +// + +lb302Synth::lb302Synth( instrumentTrack * _channel_track ) : + instrument( _channel_track, &lb302_plugin_descriptor ) +{ + // GUI + + vcf_cut_knob = new knob( knobBright_26, this, tr( "VCF Cutoff Frequency" ), + eng(), _channel_track ); + vcf_cut_knob->setRange( 0.0f, 1.5f, 0.005f ); // Originally [0,1.0] + vcf_cut_knob->setInitValue( 0.75f ); + vcf_cut_knob->move( 75, 130 ); + vcf_cut_knob->setHintText( tr( "Cutoff Freq:" ) + " ", "" ); + vcf_cut_knob->setLabel( tr("CUT") ); + + vcf_res_knob = new knob( knobBright_26, this, tr( "VCF Resonance" ), + eng(), _channel_track ); + vcf_res_knob->setRange( 0.0f, 1.25f, 0.005f ); // Originally [0,1.0] + vcf_res_knob->setInitValue( 0.75f ); + vcf_res_knob->move( 120, 130 ); + vcf_res_knob->setHintText( tr( "Resonance:" ) + " ", "" ); + vcf_res_knob->setLabel( tr("RES") ); + + vcf_mod_knob = new knob( knobBright_26, this, tr( "VCF Envelope Mod" ), + eng(), _channel_track ); + vcf_mod_knob->setRange( 0.0f, 1.0f, 0.005f ); // Originally [0,1.0] + vcf_mod_knob->setInitValue( 1.0f ); + vcf_mod_knob->move( 165, 130 ); + vcf_mod_knob->setHintText( tr( "Env Mod:" ) + " ", "" ); + vcf_mod_knob->setLabel( tr("ENV MOD") ); + + vcf_dec_knob = new knob( knobBright_26, this, tr( "VCF Envelope Decay" ), + eng(), _channel_track ); + vcf_dec_knob->setRange( 0.0f, 1.0f, 0.005f ); // Originally [0,1.0] + vcf_dec_knob->setInitValue( 0.1f ); + vcf_dec_knob->move( 210, 130 ); + vcf_dec_knob->setHintText( tr( "Decay:" ) + " ", "" ); + vcf_dec_knob->setLabel( tr("DEC") ); + + slideToggle = new ledCheckBox( "Slide", this, + tr( "Slide" ), + eng(), _channel_track ); + slideToggle->move( 10, 180 ); + + + accentToggle = new ledCheckBox( "Accent", this, + tr( "Accent" ), + eng(), _channel_track ); + accentToggle->move( 10, 200 ); + accentToggle->setDisabled(true); + + + deadToggle = new ledCheckBox( "Dead", this, + tr( "Dead" ), + eng(), _channel_track ); + deadToggle->move( 10, 220 ); + + db24Toggle = new ledCheckBox( "24dB/oct", this, + tr( "303-es-que, 24dB/octave, 3 pole filter" ), + eng(), _channel_track ); + db24Toggle->move( 10, 150); + + + slide_dec_knob = new knob( knobBright_26, this, tr( "Slide Decay" ), + eng(), _channel_track ); + slide_dec_knob->setRange( 0.0f, 1.0f, 0.005f ); // Originally [0,1.0] + slide_dec_knob->setInitValue( 0.6f ); + slide_dec_knob->move( 210, 75 ); + slide_dec_knob->setHintText( tr( "Slide Decay:" ) + " ", "" ); + slide_dec_knob->setLabel( tr( "SLIDE")); + + vco_fine_detune_knob = new knob( knobBright_26, this, + tr("Fine detuning of the VCO. Ranged between -100 and 100 centes."), + eng(), _channel_track ); + vco_fine_detune_knob->setRange(-100.0f, 100.0f, 1.0f); + vco_fine_detune_knob->setInitValue(0.0f); + vco_fine_detune_knob->move(165,75); + vco_fine_detune_knob->setHintText( tr( "VCO Fine Detuning:") + " ", "cents"); + vco_fine_detune_knob->setLabel( tr( "DETUNE")); + + + dist_knob = new knob( knobBright_26, this, tr( "Distortion" ), + eng(), _channel_track ); + dist_knob->setRange( 0.0f, 1.0f, 0.01f ); // Originally [0,1.0] + dist_knob->setInitValue( 0.0f ); + dist_knob->move( 210, 190 ); + dist_knob->setHintText( tr( "DIST:" ) + " ", "" ); + dist_knob->setLabel( tr( "DIST")); + + + wave_knob = new knob( knobBright_26, this, tr( "Waveform" ), + eng(), _channel_track ); + wave_knob->setRange( 0.0f, 5.0f, 1.0f ); // Originally [0,1.0] + wave_knob->setInitValue( 0.0f ); + wave_knob->move( 120, 75 ); + wave_knob->setHintText( tr( "EAVE:" ) + " ", "" ); + wave_knob->setLabel( tr( "WAVE")); + + + connect( vcf_cut_knob, SIGNAL( valueChanged( float ) ), + this, SLOT ( filterChanged( float ) ) ); + + connect( vcf_res_knob, SIGNAL( valueChanged( float ) ), + this, SLOT ( filterChanged( float ) ) ); + + connect( vcf_mod_knob, SIGNAL( valueChanged( float ) ), + this, SLOT ( filterChanged( float ) ) ); + + connect( vcf_dec_knob, SIGNAL( valueChanged( float ) ), + this, SLOT ( filterChanged( float ) ) ); + + connect( vco_fine_detune_knob, SIGNAL( valueChanged( float ) ), + this, SLOT ( detuneChanged( float) ) ); + + connect( db24Toggle, SIGNAL( toggled( bool ) ), + this, SLOT ( db24Toggled( bool) ) ); + + connect( dist_knob, SIGNAL( valueChanged(float) ), + this, SLOT ( filterChanged( float ))); + + connect( wave_knob, SIGNAL( valueChanged(float) ), + this, SLOT ( waveChanged( float ))); + +#ifdef QT4 + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( + "artwork" ) ); + setPalette( pal ); +#else + setErasePixmap( PLUGIN_NAME::getIconPixmap( "artwork" ) ); +#endif + + + // SYNTH + + vco_inc = 0.0; + vco_c = 0; + vco_k = 0; + + vco_slide = 0; vco_slideinc = 0; + + fs.cutoff = 0; fs.envmod = 0; + fs.reso = 0; fs.envdecay = 0; + fs.dist = 0; + + vcf_envpos = ENVINC; + vco_detune = 0; + + vca_mode = 2; vca_a = 0; + //vca_attack = 1.0 - 0.94406088; + vca_attack = 1.0 - 0.96406088; + vca_decay = 0.99897516; + + vco_shape = SAWTOOTH; + + vca_a0 = 0.5; // Experimenting between original (0.5) and 1.0 + + vcf = new lb302FilterIIR2(&fs); + + recalcFilter(); + + lastFramesPlayed = 0; + + filterChanged(0.0); + detuneChanged(0.0); +} + + + + +lb302Synth::~lb302Synth() +{ + delete vcf; +} + + + + +void lb302Synth::saveSettings( QDomDocument & _doc, + QDomElement & _this ) +{ + vcf_cut_knob->saveSettings( _doc, _this, "vcf_cut" ); + vcf_res_knob->saveSettings( _doc, _this, "vcf_res" ); + vcf_mod_knob->saveSettings( _doc, _this, "vcf_mod" ); + vcf_dec_knob->saveSettings( _doc, _this, "vcf_dec" ); + + vco_fine_detune_knob->saveSettings( _doc, _this, "vco_detune" ); + wave_knob->saveSettings( _doc, _this, "shape"); + dist_knob->saveSettings( _doc, _this, "dist"); + slide_dec_knob->saveSettings( _doc, _this, "slide_dec"); + + slideToggle->saveSettings( _doc, _this, "slide"); + deadToggle->saveSettings( _doc, _this, "dead"); + db24Toggle->saveSettings( _doc, _this, "db24"); +} + + + + +void lb302Synth::loadSettings( const QDomElement & _this ) +{ + vcf_cut_knob->loadSettings( _this, "vcf_cut" ); + vcf_res_knob->loadSettings( _this, "vcf_res" ); + vcf_mod_knob->loadSettings( _this, "vcf_mod" ); + vcf_dec_knob->loadSettings( _this, "vcf_dec" ); + + vco_fine_detune_knob->loadSettings( _this, "vco_detune" ); + dist_knob->loadSettings( _this, "dist"); + wave_knob->loadSettings( _this, "shape"); + slide_dec_knob->loadSettings( _this, "slide_dec"); + + slideToggle->loadSettings( _this, "slide"); + deadToggle->loadSettings( _this, "dead"); + db24Toggle->loadSettings( _this, "db24"); + + filterChanged(0.0); + detuneChanged(0.0); +} + +// TODO: Split into one function per knob. envdecay doesn't require +// recalcFilter. +void lb302Synth::filterChanged( float ) +{ + fs.cutoff = vcf_cut_knob->value(); + fs.reso = vcf_res_knob->value(); + fs.envmod = vcf_mod_knob->value(); + fs.dist = LB_DIST_RATIO*dist_knob->value(); + + float d = 0.2 + (2.3*vcf_dec_knob->value()); + d*=LB_HZ; // d *= smpl rate + fs.envdecay = pow(0.1, 1.0/d * ENVINC); // decay is 0.1 to the 1/d * ENVINC + // vcf_envdecay is now adjusted for both + // sampling rate and ENVINC + recalcFilter(); +} + +void lb302Synth::db24Toggled( bool ) +{ + delete vcf; + if(db24Toggle->isChecked()) { + vcf = new lb302Filter3Pole(&fs); + } + else { + vcf = new lb302FilterIIR2(&fs); + } + recalcFilter(); +} + + +void lb302Synth::detuneChanged( float ) +{ + float freq = vco_inc*LB_HZ/vco_detune; + float slidebase_freq=0; + + if(vco_slide) { + printf("Detune on slide.\n"); + slidebase_freq = vco_slidebase*LB_HZ/vco_detune; + } + + vco_detune = powf(2.0f, (float)vco_fine_detune_knob->value()/1200.0f); + vco_inc = freq*vco_detune/LB_HZ; + + // If a slide note is pending, + if(vco_slideinc) + vco_slideinc = vco_inc; + + // If currently sliding, + // May need to rescale vco_slide as well + if(vco_slide) + vco_slidebase=slidebase_freq*vco_detune/LB_HZ; +} + +// TODO: Set vco_shape in here. +void lb302Synth::waveChanged( float ) +{ + switch(int(rint(wave_knob->value()))) { + case 0: wave_knob->setHintText(tr("Sawtooth "),""); break; + case 1: wave_knob->setHintText(tr("Inverted Sawtooth "),""); break; + case 2: wave_knob->setHintText(tr("Triangle "),""); break; + case 3: wave_knob->setHintText(tr("Square "),""); break; + case 4: wave_knob->setHintText(tr("Rounded Square "),""); break; + case 5: wave_knob->setHintText(tr("Moog "),""); break; + } +} + +QString lb302Synth::nodeName( void ) const +{ + return( lb302_plugin_descriptor.name ); +} + +// OBSOLETE. Break apart once we get Q_OBJECT to work. >:[ +void lb302Synth::recalcFilter() +{ + vcf->recalc(); + + // THIS IS OLD 3pole/24dB code, I may reintegrate it. Don't need it + // right now. Should be toggled by LB_24_RES_TRICK at the moment. + + /*kfcn = 2.0 * (((vcf_cutoff*3000))) / LB_HZ; + kp = ((-2.7528*kfcn + 3.0429)*kfcn + 1.718)*kfcn - 0.9984; + kp1 = kp+1.0; + kp1h = 0.5*kp1; + kres = (((vcf_reso))) * (((-2.7079*kp1 + 10.963)*kp1 - 14.934)*kp1 + 8.4974); + value = 1.0+( (((0))) *(1.5 + 2.0*kres*(1.0-kfcn))); // ENVMOD was DIST*/ + + vcf_envpos = ENVINC; // Trigger filter update in process() +} + + +int lb302Synth::process(sampleFrame *outbuf, const Uint32 size) +{ + + unsigned int i; + float w; + float samp; + + for(i=0;i= ENVINC) { + vcf->envRecalc(); + + vcf_envpos = 0; + + if (vco_slide) { + vco_inc=vco_slidebase-vco_slide; + // Calculate coeff from dec_knob on knob change. + vco_slide*= 0.9+(slide_dec_knob->value()*0.0999); // TODO: Adjust for Hz and ENVINC + + } + } + + sample_cnt++; + vcf_envpos++; + + // 01/21/07 Changed to VCF -> VCA instead of VCA -> VCF +#ifdef LB_FILTERED + samp = vcf->process(vco_k)*2.0*vca_a; +#else + samp = vco_k*vca_a; +#endif + + for(int c=0; c 0.5) vco_c -= 1.0; + + switch(int(rint(wave_knob->value()))) { + case 0: vco_shape = SAWTOOTH; break; + case 1: vco_shape = INVERTED_SAWTOOTH; break; + case 2: vco_shape = TRIANGLE; break; + case 3: vco_shape = SQUARE; break; + case 4: vco_shape = ROUND_SQUARE; break; + case 5: vco_shape = MOOG; break; + default: vco_shape = SAWTOOTH; break; + } + + // add vco_shape_param the changes the shape of each curve. + // merge sawtooths with triangle and square with round square? + switch (vco_shape) { + case SAWTOOTH: // p0: curviness of line + vco_k = vco_c; // Is this sawtooth backwards? + break; + + case INVERTED_SAWTOOTH: // p0: curviness of line + vco_k = -vco_c; // Is this sawtooth backwards? + break; + + // TODO: I think TRIANGLE is broken. + case TRIANGLE: // p0: duty rev.saw<->triangle<->saw p1: curviness + vco_k = (vco_c*2.0)+0.5; + if (vco_k>0.5) vco_k = 1.0-vco_k; + break; + + case SQUARE: // p0: slope of top + vco_k = (vco_c<0)?0.5:-0.5; + break; + + case ROUND_SQUARE: // p0: width of round + vco_k = (vco_c<0)?(sqrtf(1-(vco_c*vco_c*4))-0.5):-0.5; + break; + + case MOOG: // Maybe the fall should be exponential/sinsoidal instead of quadric. + // [-0.5, 0]: Rise, [0,0.25]: Slope down, [0.25,0.5]: Low + vco_k = (vco_c*2.0)+0.5; + if (vco_k>1.0) vco_k = -0.5 ; + else if (vco_k>0.5) { + w = 2*(vco_k-0.5)-1; + vco_k = 0.5 - sqrtf(1-(w*w)); + vco_k *= 2.0; // MOOG wave gets filtered away + } + break; + } + + // Make it louder. For the better? + //vco_k*=2.0; + + // Handle Envelope + // TODO: Add decay once I figure out how to extend past the end of a note. + if(sample_cnt>=0.5*44100 /*sz/2*/) vca_mode = 2; + if(vca_mode==0) vca_a+=(vca_a0-vca_a)*vca_attack; + else if(vca_mode == 1) { + vca_a *= vca_decay; + // the following line actually speeds up processing + if(vca_a < (1/65536.0)) { vca_a = 0; vca_mode = 2; } + } + + } + return 1; +} + + +void lb302Synth::playNote( notePlayHandle * _n, bool ) +{ + //int nidx = _n->index(); + + //if( _n->nphsOfInstrumentTrack(_n->getInstrumentTrack()).first() != _n ) + //if( _n->released() && _n->nphsOfInstrumentTrack( _n->getInstrumentTrack() ).count() > 1 ) + // return; + +/* + if (_n->released() ) { + if( notePlayHandle::nphsOfInstrumentTrack( getInstrumentTrack() ).size() > 0 + && notePlayHandle::nphsOfInstrumentTrack( getInstrumentTrack(), + TRUE ).last() == _n ) + { + return; + } + } +*/ + + + if ( _n->totalFramesPlayed() <= lastFramesPlayed ) { + float freq = getInstrumentTrack()->frequency( _n ); + + + // TODO: Try moving to the if() below + if(deadToggle->value()==0) { + sample_cnt = 0; + vca_mode = 0; vca_a = 0; + } + + // Adjust inc on SampRate change or detuning change + vco_inc = freq*vco_detune/LB_HZ; // TODO: Use actual sampling rate. + + // Initiate Slide + // TODO: Break out into function, should be called again on detuneChanged + if (vco_slideinc) { + vco_slide = vco_inc-vco_slideinc; + vco_slidebase = vco_inc; + vco_slideinc = 0; + } + else { + vco_slide = 0; + } + // End break-out + + // Slide note, save inc for next note + if (slideToggle->value()) { + vco_slideinc = vco_inc; // May need to equal vco_slidebase+vco_slide if last note slid + } + + + recalcFilter(); + + if(deadToggle->value()==0){ + // Swap next two blocks?? + vcf->playNote(); + // Ensure envelope is recalculated + vcf_envpos = ENVINC; + + // Double Check + vca_mode = 0; + vca_a = 0.0; + } + } + + const Uint32 frames = eng()->getMixer()->framesPerAudioBuffer(); + sampleFrame *buf = bufferAllocator::alloc( frames ); + + if (buf) { + process(buf, frames); + getInstrumentTrack()->processAudioBuffer( buf, frames, _n ); + + bufferAllocator::free( buf ); + } + + lastFramesPlayed = _n->totalFramesPlayed(); +} + + + + +void lb302Synth::deleteNotePluginData( notePlayHandle * _n ) +{ + +} + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( void * _data ) +{ +return( new lb302Synth( + static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/lb302/lb302.h b/plugins/lb302/lb302.h new file mode 100644 index 000000000..84981c69a --- /dev/null +++ b/plugins/lb302/lb302.h @@ -0,0 +1,219 @@ +/* + * lb302.h - declaration of class lb302 which is a bass synth attempting to + * emulate the Roland TB303 bass synth + * + * Copyright (c) 2006-2007 Paul Giblock + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * lb302FilterIIR2 is based on the gsyn filter code by Andy Sloane. + * + * lb302Filter3Pole is based on the TB303 instrument written by + * Josep M Comajuncosas for the CSounds library + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _LB302_H_ +#define _LB302_H_ + +#include "instrument.h" +#include "led_checkbox.h" +#include "effect_lib.h" +#include + + +class knob; +class notePlayHandle; + +class lb302FilterState +{ + public: + float cutoff; + float reso; + float envmod; + float envdecay; + float dist; +}; + +class lb302Filter +{ + public: + lb302Filter(lb302FilterState* p_fs); + virtual ~lb302Filter() {}; + + virtual void recalc(); + virtual void envRecalc(); + virtual float process(const float& samp)=0; + virtual void playNote(); + + protected: + lb302FilterState *fs; + + // Filter Decay + float vcf_c0; // c0=e1 on retrigger; c0*=ed every sample; cutoff=e0+c0 + float vcf_e0, // e0 and e1 for interpolation + vcf_e1; + float vcf_rescoeff; // Resonance coefficient [0.30,9.54] +}; + +class lb302FilterIIR2 : public lb302Filter +{ + public: + lb302FilterIIR2(lb302FilterState* p_fs); + + virtual void recalc(); + virtual void envRecalc(); + virtual float process(const float& samp); + + protected: + float vcf_d1, // d1 and d2 are added back into the sample with + vcf_d2; // vcf_a and b as coefficients. IIR2 resonance + // loop. + + // IIR2 Coefficients for mixing dry and delay. + float vcf_a, // Mixing coefficients for the final sound. + vcf_b, // + vcf_c; + + effectLib::monoToStereoAdaptor > * m_dist_fx; + effectLib::distortion<> * m_dist; +}; + +class lb302Filter3Pole : public lb302Filter +{ + public: + lb302Filter3Pole(lb302FilterState* p_fs); + + //virtual void recalc(); + virtual void envRecalc(); + virtual void recalc(); + virtual float process(const float& samp); + + protected: + float kfcn, + kp, + kp1, + kp1h, + kres; + float ay1, + ay2, + aout, + lastin, + value; +}; + + +class lb302Synth : public instrument +{ + Q_OBJECT +public: + lb302Synth( instrumentTrack * _channel_track ); + virtual ~lb302Synth(); + + virtual void FASTCALL playNote( notePlayHandle * _n, + bool _try_parallelizing ); + virtual void FASTCALL deleteNotePluginData( notePlayHandle * _n ); + + + virtual void FASTCALL saveSettings( QDomDocument & _doc, + QDomElement & _parent ); + virtual void FASTCALL loadSettings( const QDomElement & _this ); + + virtual QString nodeName( void ) const; + + virtual bool isMonophonic(void) const { + return true; + } + +private: + + +private: + knob * vcf_cut_knob; + knob * vcf_res_knob; + knob * vcf_dec_knob; + knob * vcf_mod_knob; + + knob * vco_fine_detune_knob; + + knob * dist_knob; + knob * wave_knob; + + ledCheckBox * slideToggle; + ledCheckBox * accentToggle; + ledCheckBox * deadToggle; + ledCheckBox * db24Toggle; + + knob * slide_dec_knob; + +public slots: + void filterChanged(float); + void detuneChanged(float); + void waveChanged(float); + void db24Toggled( bool ); + +private: + + + +private: + // Oscillator + float vco_inc, // Sample increment for the frequency. Creates Sawtooth. + vco_k, // Raw oscillator sample [-0.5,0.5] + vco_c; // Raw oscillator sample [-0.5,0.5] + + float vco_slide, //* Current value of slide exponential curve. Nonzero=sliding + vco_slideinc, //* Slide base to use in next node. Nonzero=slide next note + vco_slidebase; //* The base vco_inc while sliding. + + float vco_detune; + + enum vco_shape_t { SAWTOOTH, INVERTED_SAWTOOTH, SQUARE, TRIANGLE, MOOG, ROUND_SQUARE }; + vco_shape_t vco_shape; + + // User settings + lb302FilterState fs; + lb302Filter *vcf; + + + float lastFramesPlayed; + + + // More States + int vcf_envpos; // Update counter. Updates when >= ENVINC + + float vca_attack, // Amp attack + vca_decay, // Amp decay + vca_a0, // Initial amplifier coefficient + vca_a; // Amplifier coefficient. + + // Envelope State + int vca_mode; // 0: attack, 1: decay, 2: idle + + // My hacks + int sample_cnt; + + void recalcFilter(); + + int process(sampleFrame *outbuf, const Uint32 size); + +} ; + + +#endif diff --git a/plugins/lb302/logo.png b/plugins/lb302/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..22c99d1e46e1c58aa1642a6283a27aa00ae57fd7 GIT binary patch literal 3468 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 us?~zlgetMainWindow()->isCtrlPressed() == TRUE &&*/ eng()->getMainWindow()->isShiftPressed() == TRUE ) { + /* this pointer was casted to uint, + * compile time error on 64 bit systems */ new stringPairDrag( "link_object", - QString::number( (uint) this ), + QString::number( (ulong) this ), QPixmap(), this, eng() ); } else if( _me->button() == Qt::MidButton )