Giter Club home page Giter Club logo

pd-aubio's Introduction

aubio

CircleCI build status Azure Pipelines Appveyor build status Pypi Downloads Conda Downloads

Documentation DOI Commits since last release

aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody.

Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.

aubio provide several algorithms and routines, including:

  • several onset detection methods
  • different pitch detection methods
  • tempo tracking and beat detection
  • MFCC (mel-frequency cepstrum coefficients)
  • FFT and phase vocoder
  • up/down-sampling
  • digital filters (low pass, high pass, and more)
  • spectral filtering
  • transient/steady-state separation
  • sound file read and write access
  • various mathematics utilities for music applications

The name aubio comes from audio with a typo: some errors are likely to be found in the results.

Python module

A python module for aubio is provided. For more information on how to use it, please see the file python/README.md and the manual .

Tools

The python module comes with the following command line tools:

  • aubio extracts informations from sound files
  • aubiocut slices sound files at onset or beat timestamps

Additional command line tools are included along with the library:

  • aubioonset outputs the time stamp of detected note onsets
  • aubiopitch attempts to identify a fundamental frequency, or pitch, for each frame of the input sound
  • aubiomfcc computes Mel-frequency Cepstrum Coefficients
  • aubiotrack outputs the time stamp of detected beats
  • aubionotes emits midi-like notes, with an onset, a pitch, and a duration
  • aubioquiet extracts quiet and loud regions

Documentation

The latest version of the documentation can be found at:

https://aubio.org/documentation

Build Instructions

aubio compiles on Linux, Mac OS X, Windows, Cygwin, and iOS.

To compile aubio, you should be able to simply run:

make

To compile the python module:

./setup.py build

See the manual for more information about installing aubio.

Citation

Please use the DOI link above to cite this release in your publications. For more information, see also the about page in aubio manual.

Homepage

The home page of this project can be found at: https://aubio.org/

License

aubio 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 3 of the License, or (at your option) any later version.

Contributing

Patches are welcome: please fork the latest git repository and create a feature branch. Submitted requests should pass all continuous integration tests.

pd-aubio's People

Contributors

piem 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

x75 marcelraschke

pd-aubio's Issues

suggest help files to have an [aubio] instance

Hi,

Small suggestion: to include an instance of [aubio] in the help files in case users haven't preloaded aubio as in pd -lib aubio. Doing so would prevent the false impression that the dependent objects such as [aubiopitch~] don't work.

waf 19.0.6 not compatible with python >= 3.7

I get an error when running waf configure

python waf configure 
Traceback (most recent call last):
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Node.py", line 297, in ant_iter
    raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Scripting.py", line 120, in waf_entry_point
    run_commands()
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Scripting.py", line 177, in run_commands
    parse_options()
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Scripting.py", line 150, in parse_options
    Context.create_context('options').execute()
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Options.py", line 145, in execute
    super(OptionsContext,self).execute()
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Context.py", line 88, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Context.py", line 129, in recurse
    user_function(self)
  File "/home/urp/Documents/Sandbox/pd-aubio/wscript", line 17, in options
    ctx.load('compiler_c')
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Context.py", line 85, in load
    fun(self)
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Tools/compiler_c.py", line 40, in options
    opt.load_special_tools('c_*.py',ban=['c_dumbpreproc.py'])
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Context.py", line 319, in load_special_tools
    lst=self.root.find_node(waf_dir).find_node('waflib/extras').ant_glob(var)
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Node.py", line 346, in ant_glob
    ret=[x for x in self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
  File "/home/urp/Documents/Sandbox/pd-aubio/.waf3-1.9.6-1e8548ddb990ceb895e5c7946e836f9f/waflib/Node.py", line 346, in <listcomp>
    ret=[x for x in self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
RuntimeError: generator raised StopIteration
make: *** [Makefile:33: configure] Error 2

See upstream waf pull request.
Updating waf version in scripts/get_waf.sh to latest (2.0.20) works for me.

issues with installing/initializing

Hi there,

I am running Mac OSX 10.9.5. I've installed aubio along with python and then I built pd-aubio using the source and ended up with the aubio.pd_darwin file which I tried copying to startup as well as the extra folder for my version of pd-extended but audio does not work when I try to create an object in pd. When I add the aubio.pd_darwin file to startup in pd, this is the error I get:

/Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin: dlopen(/Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin, 10): Symbol not found: _aubio_onset_do
  Referenced from: /Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin
  Expected in: flat namespace
 in /Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin
/Applications/Pd-extended.app/Contents/Resources/Scripts/../startup/aubio.pd_darwin: can't load startup library'!

When In add the aubio.pd_darwin alias from the extra folder to startup then I get this error:

/Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin: dlopen(/Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin, 10): no suitable image found.  Did find:
	/Applications/Pd-extended.app/Contents/Resources/startup/aubio.pd_darwin: unknown file type, first eight bytes: 0x62 0x6F 0x6F 0x6B 0x00 0x00 0x00 0x00
/Applications/Pd-extended.app/Contents/Resources/Scripts/../startup/aubio.pd_darwin: can't load startup library'!

Please tell me what I am doing wrong?

Thx!

unknown pitch detection method ‘’

When trying to create an aubiopitch~ object, pd crashes with this error:

AUBIO ERROR: pitch: unknown pitch detection method ‘’
[1]    2015 segmentation fault  pd -lib aubio

Creating one with an explicit method (e.g. aubiopitch~ default) works just fine. It seems that it does not try to fall back when created without that argument.

The aubiopitch help patch also cannot be opened due to this issue. I had to consult the online documentation to figure out what argument to pass in.

Version Info
Puredata: Pd-0.47.1 ("") compiled 13:19:08 Feb 7 2017
aubio: aubio-0.4.4_1
aubio-pd: aubio external for pd, version '0.4'

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.