Giter Site home page Giter Site logo

buzzmachines's Introduction

Buzztrax

Gitter

quick info

Please turn you browser to http://www.buzztrax.org to learn what this project is about. Buzztrax is free software and distributed under the LGPL.

build status

We are running continuous integration on github actions, get coverage from codecov and have the codebase checked by coverity:

Build Status Test Coverage Coverity Defects

intro

Buzztrax is a music composer similar to tracker applications. It is roughly modelled after the windows only, closed source application called Buzz.

requirements

  • gstreamer >= 1.2 and its plugins (gstreamer, gst-plugins-base and gst-plugins-good).
  • glib, gsf and libxml2 for the core libraries.
  • clutter-gtk and gtk+ for the UI

optional packages

  • gst-plugins-ugly: for the use of mp3 recording
  • gst-plugins-bad: extra audio effects
  • gudev and libasound: for interaction controller support
  • orc: for plugin acceleration
  • fluidsynth: to build a relates gstreamer wrapper
  • check: for unit tests

building from git

To build use autogen.sh instead of configure. This accept the same options like configure. Later one can use autoregen.sh to rerun the bootstrapping. To build from git one needs to have gtk-doc, yelp-tools and cvs (for autopoint from gettext) installed.

directories

  • docs : design ideas and API reference
  • po : gettext i18n catalogs
  • src : the project sources
    • ui
      • cmd : buzztrax tool for the command line
      • edit : buzztrax editor (gtk based ui)
    • lib
      • core : logic, e.g. connections framework, file i/o, ...
      • ic : interaction controller
  • tests : unit tests (same directory structure as src)

installing locally

Use following options for ./autogen.sh or ./configure

--prefix=$HOME/buzztrax
--with-gconf-source=xml::/home/ensonic/.gconf/
--with-desktop-dir=/home/ensonic/.gnome2/vfolders/

when installing the package to e.g. $HOME/buzztrax you ned to set a few environment variables. To use the apps these variables are enough:

# libraries:
export LD_LIBRARY_PATH=$HOME/buzztrax/lib:$LD_LIBRARY_PATH
# gstreamer
export GST_PLUGIN_PATH="$HOME/buzztrax/lib/gstreamer-1.0"
# mime-database & icon-themes:
export XDG_DATA_DIRS="$XDG_DATA_DIRS:$HOME/buzztrax/share"
update-mime-database $HOME/buzztrax/share/mime/

Likewise for the man-pages to be found:

export MANPATH=\$MANPATH:$prefix/share/man

For developers:

# see buzztrax help files in devhelp:
export DEVHELP_SEARCH_PATH="$DEVHELP_SEARCH_PATH:$HOME/buzztrax/share/gtk-doc/html"
# compile against buzztrax libs using pkg-config:
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$HOME/buzztrax/lib/pkgconfig"
#
export GI_TYPELIB_PATH="\$GI_TYPELIB_PATH:$prefix/lib/girepository"

installing in /usr/local

The default value for the --prefix configure option is /usr/local. Also in that case the variables mentioned in the last example need to be exported.

running the apps

cd $HOME/buzztrax/bin
./buzztrax-cmd --command=info --input-file=../share/buzztrax/songs/melo1.xml
./buzztrax-cmd --command=play --input-file=../share/buzztrax/songs/melo1.xml
./buzztrax-cmd --command=encode --input-file=../share/buzztrax/songs/melo1.xml --output-file=./melo1.ogg
./buzztrax-edit --command=load --input-file=../share/buzztrax/songs/melo1.xml

running unit tests

run all the tests:

make check

run all the tests in one suite:

make bt_cmd.check
make bt_core.check
make bt_edit.check
make bt_gst.check
make bt_ic.check

select tests to run:

BT_CHECKS="test_bt_edit_app*" make check
BT_CHECKS="test_bt_edit_app*" make bt_edit.check

activate some logging info that can help while testing:

BT_TEST_DEBUG=1 make check

The tests make use of Xvfb (X Virtual Frame Buffer) to create UI in a headless scenario; if installed, it will be used. Sometimes it's useful to be able to see the UI when writing or debugging tests, though. You can set BT_CHECK_NO_XVFB=1 to disable use of XVfb. You will then see UI windows created on your desktop directly during test runs.

To debug a test suite with gdb, try:

BT_CHECKS="test_bt_edit_app*" make bt_edit.gdb

To run Valgrind's memcheck over a test suite:

BT_CHECKS="test_bt_edit_app*" make bt_edit.valgrind

The Valgrind log file will be found at /tmp/<test_name>.valgrind.. Logs without errors are deleted automatically after test execution.

You may find that you need to tweak the location of the Valgrind suppression files for your OS (the 'default.supp' file is found there.) If you have that issue, try this:

VALSUPP=/usr/libexec/valgrind BT_CHECKS="test_bt_edit_app*" make -e bt_edit.valgrind

reporting issues

Run the application from a terminal like e.g.:

GST_DEBUG=4 GST_DEBUG_FILE=./debug.log buzztrax-edit

and attach the log file to a bug report at https://github.com/Buzztrax/buzztrax/issues.

If there is a reproducible crash, run:

gdb $(which buzztrax-edit)

and in gdb type r for run and when the application crashed bt to get a backtrace. Share that text in the bugreport.

buzzmachines's People

Contributors

clvn avatar ensonic avatar oomek avatar phasonmatrix avatar rffontenelle avatar trusktr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

buzzmachines's Issues

Unable to build

Using the --enable-debug flag, compilation fails in Bigyo/FrequencyShifter displaying "error: invalid suffix on literal; C++11 requires a space between literal and string macro" four times. See build log and config.log.

Without such flag, compilation still fails, now in FSM/ArpMan, displaying some more error message. See build log and config.log.

Environment: Arch Linux 64-bit, GCC 6.1.1

Please help?

GLib-GIO-ERROR

Hi

I built and installed buzztrax and buzzmachine on my Ubuntu machinesuccessfully.
I configure using --prefix=$HOME/buzztrax/ and set the environment variables as instructed.

When I tried to run buzztrax, the following error ocurrs:
(buzztrax-cmd:4187): GLib-GIO-ERROR **: Settings schema 'org.buzztrax' is not installed

Best regards,
Gengdai

Holy Crap! And what's this all about?

First off I have to say holy ๐Ÿ’ฉ! I haven't used buzzmachines since 98'. Its really awesome to see it alive on github.

Now, are you guys taking over the work from Jeskola?
Is there any way I can contribute to this/these projects?

Error when running make install

I installed Buzztrax on Kubuntu 16.04 64-bit {The OS I just installed yesterday}. There weren't many machines to choose from, but I found this repository and attempted to compile it with hopes of adding it to buzztrax. I am stuck at the make install portion of getting this setup. Here are the steps I've taken so far:

  • Install from apt:
    sudo apt-get install buzztrax
  • Download and uncompress buzzmachines from: https://github.com/Buzztrax/buzzmachines
    [Using this commit: https://github.com/Buzztrax/buzzmachines/commit/37875d745328ca08d72e1115c22f9b44b7a1c19d]
  • Open Terminal and cd into directory. For me this was in my Downloads folder:
    cd ~/Downloads/buzzmachines-master
  • No configure available error received. Github page also suggested using Autogen Script
    ./autogen.sh --prefix=$HOME/buzztard/
  • So I attempted to run and had following output:
    ||[MyUserID@ComputerName]:~/Downloads/buzzmachines-master$ ./autogen.sh --prefix=$HOME/buzztard/
     ||+ passing --prefix=/home/MyUserID/buzztard/ to configure
     ||+ options passed to configure:  --prefix=/home/MyUserID/buzztard/
     ||+ check for build tools
     ||checking for autoconf >= 2.52 ... not found.
     ||checking for autoconf-2.54 >= 2.52 ... not found.
     ||checking for autoconf-2.53 >= 2.52 ... not found.
     ||checking for autoconf-2.52 >= 2.52 ... not found.
     ||not found !
     ||You must have autoconf installed to compile buzzmachines.
     ||Download the appropriate package for your distribution,
     ||or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/
     ||checking for automake >= 1.6 ... not found.
     ||checking for automake-1.7 >= 1.6 ... not found.
     ||checking for automake17 >= 1.6 ... not found.
     ||checking for automake-1.6 >= 1.6 ... not found.
     ||not found !         ||         
     ||You must have automake installed to compile buzzmachines.      
     ||Download the appropriate package for your distribution,    || 
     ||or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/     
     ||checking for libtoolize >= 1.5.0 ... not found.
     ||checking for glibtoolize >= 1.5.0 ... not found.    ||      
     ||not found !         ||         
     ||You must have libtoolize installed to compile buzzmachines.    
     ||Download the appropriate package for your distribution,    || 
     ||or get the source tarball at ftp://ftp.gnu.org/pub/gnu/libtool/
     ||- Please get the right tools before proceeding.
     ||- Alternatively, if you're sure we're wrong, run with --nocheck.    
  • Install the right tools and try again:
    sudo apt-get install autoconf automake libtool
    ./autogen.sh --prefix=$HOME/buzztard/
  • Success! I was prompted to run make:
    make
  • Recipe errors, forgot this is the first install outside of apt I've done on this linux installation
    ||[MyUserID@ComputerName]:~/Downloads/buzzmachines-master$ make
 ||make  all-recursive
 ||make[1]: Entering directory '/home/MyUserID/Downloads/buzzmachines-master'
 ||Making all in common
 ||make[2]: Entering directory '/home/MyUserID/Downloads/buzzmachines-master/common'
 ||Making all in dsplib
 ||make[3]: Entering directory '/home/MyUserID/Downloads/buzzmachines-master/common/dsplib'
 ||CXX      libdsplib_la-dsplib.lo
 ||../../libtool: line 1763: g++: command not found
 ||Makefile:391: recipe for target 'libdsplib_la-dsplib.lo' failed
 ||make[3]: *** [libdsplib_la-dsplib.lo] Error 1
 ||make[3]: Leaving directory '/home/MyUserID/Downloads/buzzmachines-master/common/dsplib'
 ||Makefile:365: recipe for target 'all-recursive' failed
 ||make[2]: *** [all-recursive] Error 1
 ||make[2]: Leaving directory '/home/MyUserID/Downloads/buzzmachines-master/common'
 ||Makefile:410: recipe for target 'all-recursive' failed
 ||make[1]: *** [all-recursive] Error 1
 ||make[1]: Leaving directory '/home/MyUserID/Downloads/buzzmachines-master'
 ||Makefile:342: recipe for target 'all' failed
 ||make: *** [all] Error 2
  • Need to install g++...
    sudo apt-get install g++

  • Run make again? Success! Lets try:
    make install

  • HELP?!

        ||[MyUserID@ComputerName]:~/Downloads/buzzmachines-master$ make install
     ||Making install in common
     ||make[1]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||Making install in dsplib
     ||make[2]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/dsplib'
     ||make[3]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/dsplib'
     ||make[3]: Nothing to be done for 'install-exec-am'.
     ||make[3]: Nothing to be done for 'install-data-am'.
     ||make[3]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/dsplib'
     ||make[2]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/dsplib'
     ||Making install in mdk
     ||make[2]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/mdk'
     ||make[3]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/mdk'
     ||make[3]: Nothing to be done for 'install-exec-am'.
     ||make[3]: Nothing to be done for 'install-data-am'.
     ||make[3]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/mdk'
     ||make[2]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common/mdk'
     ||make[2]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||make[3]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||make[3]: Nothing to be done for 'install-exec-am'.
     ||make[3]: Nothing to be done for 'install-data-am'.
     ||make[3]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||make[2]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||make[1]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/common'
     ||Making install in AseDev
     ||make[1]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev'
     ||Making install in a4pFilter01
     ||make[2]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev/a4pFilter01'
     ||make[3]: Entering directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev/a4pFilter01'
     ||make[3]: Nothing to be done for 'install-exec-am'.
     ||/bin/mkdir -p '/home/[MyUserID]/buzztard/lib/Gear'
     ||/bin/bash ../../libtool   --mode=install /usr/bin/install -c   libAseDev_a4pFilter01.la '/home/[MyUserID]/buzztard/lib/Gear'
     ||libtool: install: /usr/bin/install -c .libs/libAseDev_a4pFilter01.so /home/[MyUserID]/buzztard/lib/Gear/libAseDev_a4pFilter01.so
     ||/usr/bin/install: cannot stat '.libs/libAseDev_a4pFilter01.so': No such file or directory
     ||Makefile:377: recipe for target 'install-pluginLTLIBRARIES' failed
     ||make[3]: *** [install-pluginLTLIBRARIES] Error 1
     ||make[3]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev/a4pFilter01'
     ||Makefile:575: recipe for target 'install-am' failed
     ||make[2]: *** [install-am] Error 2
     ||make[2]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev/a4pFilter01'
     ||Makefile:359: recipe for target 'install-recursive' failed
     ||make[1]: *** [install-recursive] Error 1
     ||make[1]: Leaving directory '/home/[MyUserID]/Downloads/buzzmachines-master/AseDev'
     ||Makefile:410: recipe for target 'install-recursive' failed
     ||make: *** [install-recursive] Error 1
    

Missing Licenses

Can not find license for oomek agressor. My friend want to help me make oomek agressor as a lv2 plugin but he told me he can not find a license for agressor source.

error: unknown type name 'u_long'; did you mean 'u_llong'?

I'm getting these errors while now that the fpu_control situation is handled:

Making install in SurfsDSPLib
  CXX      libdsplib_la-SRF_DSP.lo
In file included from SRF_DSP.cpp:1:
In file included from ./SRF_DSP.h:6:
./SRF_Resampler.h:7:31: error: unknown type name 'u_long'; did you mean 'u_llong'?
typedef void (*DoneCallback)( u_long );
                              ^~~~~~
                              u_llong
./SRF_Types.h:17:29: note: 'u_llong' declared here
typedef unsigned long long      u_llong;
                                ^
In file included from SRF_DSP.cpp:1:
In file included from ./SRF_DSP.h:6:
./SRF_Resampler.h:58:2: error: unknown type name 'u_long'; did you mean 'u_llong'?
        u_long                          m_iCBData;
        ^~~~~~
        u_llong
./SRF_Types.h:17:29: note: 'u_llong' declared here
typedef unsigned long long      u_llong;
                                ^
2 errors generated.

There's also these couple of warnings:

Making all in BuzzMachines
  CXX      libGeonik_s_Omega1_la-Omega1.lo
In file included from Omega1.cpp:29:
./../DspClasses/Volume.h:7:9: warning: 'inc_dspcvolume' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef inc_dspcvolume
        ^~~~~~~~~~~~~~
./../DspClasses/Volume.h:8:9: note: 'inc_dspcVolume' is defined here; did you mean 'inc_dspcvolume'?
#define inc_dspcVolume
        ^~~~~~~~~~~~~~
        inc_dspcvolume
1 warning generated.
Making all in M4
  CXX      libMakk_M4_la-M4.lo
M4.cpp:1474:33: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
                        return "<B1>0 halfnotes";
                                ^~~~
M4.cpp:1483:33: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
                        return "<B1>0 cents";
                                ^~~~
M4.cpp:1547:42: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
                        sprintf( txt, "%i<B0>", value*360/128);
                                         ^~~~
3 warnings generated.

Machine porting request: FSM KickXP

Hello,

I hope this is the right place to post machine porting requests.
I miss the FSM KickXP (http://www.buzzmachines.com/machineinfo.php?id=741) which has one significant feature over the regular FSM kick generator: it can be tuned and play notes to match the root note of the pattern.
Looking at the sourceforge buzzmachines archive, the source for that one seems to be missing, so I was just wondering if it was forgotten or if FSM didn't wish to provide it?

BR,

LX

'fpu_control.h' file not found

I was trying to build this with the --disable-debug flag and glibtoolize added to autogen.sh, and got this errror:

In file included from Omega1.cpp:26:
./../DspClasses/DspClasses.h:132:10: fatal error: 'fpu_control.h' file not found
#include <fpu_control.h>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.