├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── aubio-ffi-generator.rb ├── aubio.gemspec ├── bin ├── console └── setup ├── lib ├── aubio.rb └── aubio │ ├── aubio-ffi.rb │ ├── beats.rb │ ├── legacy_api.rb │ ├── onsets.rb │ ├── pitches.rb │ └── version.rb └── test ├── aubio_test.rb ├── sounds ├── README.md ├── acappella.mp3 ├── french_house_thing.wav ├── loop_amen.wav ├── loop_amen_full.wav └── not_an_audio_file.txt └── test_helper.rb /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /.yardoc 3 | /Gemfile.lock 4 | /_yardoc/ 5 | /coverage/ 6 | /doc/ 7 | /pkg/ 8 | /spec/reports/ 9 | /tmp/ 10 | *.gem 11 | tags 12 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.2.1 4 | before_install: gem install bundler -v 1.11.2 5 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, and in the interest of 4 | fostering an open and welcoming community, we pledge to respect all people who 5 | contribute through reporting issues, posting feature requests, updating 6 | documentation, submitting pull requests or patches, and other activities. 7 | 8 | We are committed to making participation in this project a harassment-free 9 | experience for everyone, regardless of level of experience, gender, gender 10 | identity and expression, sexual orientation, disability, personal appearance, 11 | body size, race, ethnicity, age, religion, or nationality. 12 | 13 | Examples of unacceptable behavior by participants include: 14 | 15 | * The use of sexualized language or imagery 16 | * Personal attacks 17 | * Trolling or insulting/derogatory comments 18 | * Public or private harassment 19 | * Publishing other's private information, such as physical or electronic 20 | addresses, without explicit permission 21 | * Other unethical or unprofessional conduct 22 | 23 | Project maintainers have the right and responsibility to remove, edit, or 24 | reject comments, commits, code, wiki edits, issues, and other contributions 25 | that are not aligned to this Code of Conduct, or to ban temporarily or 26 | permanently any contributor for other behaviors that they deem inappropriate, 27 | threatening, offensive, or harmful. 28 | 29 | By adopting this Code of Conduct, project maintainers commit themselves to 30 | fairly and consistently applying these principles to every aspect of managing 31 | this project. Project maintainers who do not follow or enforce the Code of 32 | Conduct may be permanently removed from the project team. 33 | 34 | This code of conduct applies both within project spaces and in public spaces 35 | when an individual is representing the project or its community. 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 38 | reported by contacting a project maintainer at xavriley@hotmail.com. All 39 | complaints will be reviewed and investigated and will result in a response that 40 | is deemed necessary and appropriate to the circumstances. Maintainers are 41 | obligated to maintain confidentiality with regard to the reporter of an 42 | incident. 43 | 44 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 45 | version 1.3.0, available at 46 | [http://contributor-covenant.org/version/1/3/0/][version] 47 | 48 | [homepage]: http://contributor-covenant.org 49 | [version]: http://contributor-covenant.org/version/1/3/0/ -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source 'https://rubygems.org' 4 | 5 | # Specify your gem's dependencies in aubio.gemspec 6 | gemspec 7 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2016 Xavier Riley 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ruby Aubio 2 | 3 | A Ruby binding for the `aubio` library. 4 | 5 | # What is aubio? 6 | 7 | In their own words... 8 | 9 | > aubio is a tool designed for the extraction of annotations from audio signals. 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. 10 | - http://aubio.org/ 11 | 12 | ## Prerequisites 13 | 14 | `brew install aubio --with-libsndfile --with-fftw --with-libsamplerate` 15 | 16 | ## Using `ffi_gen` to autogenerate bindings 17 | 18 | This is optional, and something being considered for future development. The 19 | `ffi_gen` gem can analyse a library using clang to automatically write the ffi 20 | bindings for us (similar to `bindgen` in Rust as I understand it). 21 | 22 | You can see the results in the `autogen_bindings` branch. 23 | 24 | ``` 25 | brew install aubio --with-libsndfile --with-fftw --with-libsamplerate 26 | brew install llvm --with-clang --enable-shared 27 | # clone this repo and cd into the root folder, then run 28 | LD_LIBRARY_PATH="/usr/local/opt/llvm35/lib/llvm-3.5/lib" ruby aubio-ffi-generator.rb 29 | ``` 30 | 31 | ## Running tests 32 | 33 | ``` 34 | $ rake clobber && rake build && rake test 35 | ``` 36 | 37 | ## Installation 38 | 39 | Add this line to your application's Gemfile: 40 | 41 | ```ruby 42 | gem 'aubio' 43 | ``` 44 | 45 | And then execute: 46 | 47 | $ bundle 48 | 49 | Or install it yourself as: 50 | 51 | $ gem install aubio 52 | 53 | ## Usage 54 | 55 | `Aubio` just needs a path to a sound file: 56 | 57 | ``` 58 | my_file = Aubio.open("/path/to/file") 59 | ``` 60 | 61 | From there you can access the following: 62 | 63 | ``` 64 | my_file.onsets # list of extracted onsets 65 | my_file.pitches # list of extracted pitches 66 | my_file.beats # where one would tap their foot 67 | # NOT YET IMPLEMENTED # my_file.notes # list of onsets with pitches 68 | # NOT YET IMPLEMENTED # my_file.silences # list of silent regions 69 | # NOT YET IMPLEMENTED # my_file.mel_frequency_cepstral_coefficients # list of mfccs 70 | ``` 71 | 72 | All of these are Ruby `Enumerator`s which means they'll respond to `.next`, and so on. If you want the whole list all at once call `.to_a` on it. 73 | 74 | ### Avoiding memory leaks 75 | 76 | The underlying C library allocates some memory so to clean this up you'll need to run 77 | 78 | my_file.close 79 | 80 | to free it up. 81 | 82 | ## Data format 83 | 84 | Each "event" that `aubio` describes is represented as a `Hash` like so: 85 | 86 | ``` 87 | my_file.onsets.first #=> {s: 0.0, ms: 0.0, start: 1, end: 0} 88 | ``` 89 | 90 | `s` and `ms` refer to seconds and milliseconds respectively. 91 | 92 | `start: 1` and `end: 1` are special events that describe the start and the end of the audio file respectively. Whilst the `start` event at `0.0s` is usually an onset, the `end` is a convenience added by the Ruby wrapper to allow for easier slicing of sound files into samples. 93 | 94 | ### Still to implement 95 | 96 | `relative` is the point at which the event occurs relative to the overall length of the original sound file, scaled between `0` and `1` (i.e. `relative: 0.5` is exactly halfway through). 97 | 98 | `confidence` is a score returned from `aubio` which may be useful for threshold type operations. 99 | 100 | ## Optional params 101 | 102 | The `Aubio#open` method can take a list of optional params like so: 103 | 104 | ``` 105 | :sample_rate 106 | # Fetch the input source, resampled at the given sampling rate. The rate should be specified in Hertz as an integer. If 0, the sampling rate of the original source will be used. Defaults to 0. 107 | :bufsize 108 | The size of the buffer to analyze, that is the length of the window used for spectral and temporal computations. Defaults to 512. 109 | :hopsize 110 | ``` 111 | 112 | e.g. 113 | 114 | ``` 115 | Aubio.open("/path/to/audio/file", sample_rate: 44100) 116 | ``` 117 | 118 | ## Bugs / Still to do 119 | 120 | * better tests 121 | * use `Onsets` class as a basis to implement the other functions 122 | * improve accuracy of bpm - seems to be consistently too fast on things I've tried 123 | * look into streaming results for live inputs 124 | 125 | ## Development 126 | 127 | After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. 128 | 129 | To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). 130 | 131 | ## Contributing 132 | 133 | Bug reports and pull requests are welcome on GitHub at https://github.com/xavriley/aubio. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. 134 | 135 | 136 | ## License 137 | 138 | The gem is available as open source under the terms of the [MIT](http://opensource.org/licenses/MIT). 139 | 140 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'bundler/gem_tasks' 4 | require 'rake/testtask' 5 | 6 | Rake::TestTask.new(:test) do |t| 7 | t.libs << 'test' 8 | t.libs << 'lib' 9 | t.test_files = FileList['test/**/*_test.rb'] 10 | end 11 | 12 | task default: :spec 13 | -------------------------------------------------------------------------------- /aubio-ffi-generator.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | # this needs to be set on the command line when running this script 4 | # ENV['LD_LIBRARY_PATH'] = "/usr/local/opt/llvm35/lib/llvm-3.5/lib" 5 | require 'ffi_gen' 6 | 7 | FFIGen.generate( 8 | module_name: 'Aubio::Api', 9 | ffi_lib: '/usr/local/Cellar/aubio/0.4.4/lib/libaubio.dylib', 10 | headers: Dir['/usr/local/Cellar/aubio/0.4.4/include/aubio/**/*.h'], 11 | cflags: `/usr/local/opt/llvm35/bin/llvm-config-3.5 --cflags`.split(' '), 12 | # the following can be used to trim the aubio_ from the generated function names 13 | # prefixes: ["aubio_", "CX"], 14 | prefixes: [], 15 | output: 'lib/aubio/aubio-ffi.rb' 16 | ) 17 | -------------------------------------------------------------------------------- /aubio.gemspec: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | lib = File.expand_path('lib', __dir__) 4 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 5 | require 'aubio/version' 6 | 7 | Gem::Specification.new do |spec| 8 | spec.name = 'aubio' 9 | spec.version = Aubio::VERSION 10 | spec.authors = ['Xavier Riley'] 11 | spec.email = ['xavriley@hotmail.com'] 12 | 13 | spec.summary = 'Ruby bindings for the aubio audio library' 14 | spec.description = 'Aubio is a tool designed for the extraction of annotations from audio signals. 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.' 15 | spec.homepage = 'https://github.com/xavriley/ruby-aubio' 16 | spec.license = 'MIT' 17 | 18 | spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } 19 | spec.bindir = 'exe' 20 | spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 21 | spec.require_paths = ['lib'] 22 | 23 | spec.add_dependency 'ffi', '~> 1.9' 24 | 25 | spec.add_development_dependency 'bundler' 26 | spec.add_dependency 'rake', '>= 12.3.3' 27 | spec.add_development_dependency 'ffi_gen' 28 | spec.add_development_dependency 'minitest', '~> 5.0' 29 | spec.add_development_dependency 'pry' 30 | spec.add_development_dependency 'rubocop' 31 | end 32 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # frozen_string_literal: true 3 | 4 | require 'bundler/setup' 5 | require 'aubio' 6 | 7 | # You can add fixtures and/or initialization code here to make experimenting 8 | # with your gem easier. You can also use a different console, if you like. 9 | 10 | # (If you use this, don't forget to add pry to your Gemfile!) 11 | # require "pry" 12 | # Pry.start 13 | 14 | require 'irb' 15 | IRB.start 16 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | set -vx 5 | 6 | bundle install 7 | 8 | # Do any other automated setup that you need to do here 9 | -------------------------------------------------------------------------------- /lib/aubio.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require_relative 'aubio/version' 4 | require_relative 'aubio/aubio-ffi' 5 | require_relative 'aubio/onsets' 6 | require_relative 'aubio/pitches' 7 | require_relative 'aubio/beats' 8 | 9 | module Aubio 10 | class AubioException < RuntimeError; end 11 | class FileNotFound < AubioException; end 12 | class AlreadyClosed < AubioException; end 13 | class InvalidAudioInput < AubioException; end 14 | 15 | class Base 16 | def initialize(path, params) 17 | raise FileNotFound unless File.file?(path) 18 | 19 | sample_rate = params[:sample_rate] || 44_100 20 | hop_size = params[:hop_size] || 512 21 | 22 | @is_closed = false 23 | @source = Api.new_aubio_source(path, sample_rate, hop_size) 24 | @params = params 25 | 26 | check_for_valid_audio_source(path) 27 | end 28 | 29 | def close 30 | Api.del_aubio_source(@source) 31 | @is_closed = true 32 | end 33 | 34 | def onsets 35 | check_for_closed 36 | 37 | Onsets.new(@source, @params).each 38 | end 39 | 40 | def pitches 41 | check_for_closed 42 | 43 | Pitches.new(@source, @params).each 44 | end 45 | 46 | def enum_beats 47 | check_for_closed 48 | 49 | Beats.new(@source, @params).each 50 | end 51 | 52 | def beats 53 | check_for_closed 54 | 55 | beats = Beats.new(@source, @params).each.to_a 56 | 57 | # fill in the zero beat 58 | beats = beats.unshift( 59 | beats.first.merge({ 60 | confidence: 1, 61 | s: 0.0, 62 | ms: 0.0, 63 | sample_no: 0, 64 | rel_start: 0.0 65 | }) 66 | ) 67 | 68 | # fetch the rel_end from the next beat 69 | # using 1.0 for the last beat 70 | beats = beats.each_cons(2).map do |a, b| 71 | a.merge({ 72 | rel_end: (b[:rel_start] || 1.0) 73 | }) 74 | end 75 | 76 | # set minimum inter-onset interval in seconds 77 | # allows for 4/4 at 400bpm (faster than most music) 78 | # filters beats detected too closely together 79 | minioi = @params[:minioi] || 0.15 80 | filtered_beats = [beats.first] 81 | beats.each do |b| 82 | filtered_beats << b if (b[:s] - filtered_beats.last[:s]) > minioi 83 | end 84 | 85 | # TODO: are there other smoothing methods that would be useful here? 86 | filtered_beats 87 | end 88 | 89 | def bpm 90 | check_for_closed 91 | 92 | beat_locations = beats 93 | beat_periods = beat_locations.each_cons(2).map { |a, b| b[:s] - a[:s] } 94 | 95 | return 60.0 if beat_locations.length == 1 96 | 97 | # use interquartile median to discourage outliers 98 | s = beat_periods.length 99 | qrt_lower_idx = (s / 4.0).floor 100 | qrt_upper_idx = qrt_lower_idx * 3 101 | interquartile_beat_periods = beat_periods[qrt_lower_idx..qrt_upper_idx] 102 | 103 | # Calculate median 104 | iqs = interquartile_beat_periods.length 105 | 106 | iq_median_beat_period = interquartile_beat_periods.sort[(iqs / 2.0).floor - 1] 107 | 60.0 / iq_median_beat_period 108 | end 109 | 110 | private 111 | 112 | def check_for_closed 113 | raise AlreadyClosed if @is_closed 114 | end 115 | 116 | def check_for_valid_audio_source(path) 117 | @source.read_pointer 118 | rescue FFI::NullPointerError 119 | raise InvalidAudioInput, %( 120 | 121 | Couldn't read file at #{path} 122 | Did you install aubio with libsndfile support? 123 | ) 124 | end 125 | end 126 | end 127 | 128 | module Aubio 129 | def self.open(path, params = {}) 130 | Base.new(path, params) 131 | end 132 | end 133 | -------------------------------------------------------------------------------- /lib/aubio/aubio-ffi.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | # Generated by ffi_gen. Please do not change this file by hand. 4 | 5 | require 'ffi' 6 | 7 | module Aubio::Api 8 | extend FFI::Library 9 | lib_paths = Array(ENV['AUBIO_LIB'] || Dir['/{opt,usr}/{,local/}{lib,lib64,Cellar/aubio**,lib/arm-linux-gnueabihf}/libaubio.{*.dylib,so.*}']) 10 | fallback_names = %w[libaubio.4.2.2.dylib libaubio.so.1 aubio1.dll libaubio-5.dll] 11 | ffi_lib(lib_paths + fallback_names) 12 | 13 | def self.attach_function(name, *_) 14 | super; rescue FFI::NotFoundError => e 15 | (class << self; self; end).class_eval { define_method(name) { |*_| raise e } } 16 | end 17 | 18 | HAVE_AUBIO_DOUBLE = 0 19 | 20 | AUBIO_SMPL_FMT = '%f' 21 | 22 | AUBIO_LSMP_FMT = '%lf' 23 | 24 | # (Not documented) 25 | # 26 | # = Fields: 27 | # :length :: 28 | # (Integer) < length of buffer 29 | # :data :: 30 | # (FFI::Pointer(*SmplT)) < data vector of length ::fvec_t.length 31 | class FvecT < FFI::Struct 32 | layout :length, :uint, 33 | :data, :pointer 34 | end 35 | 36 | # (Not documented) 37 | # 38 | # @method new_fvec(length) 39 | # @param [Integer] length 40 | # @return [FvecT] 41 | # @scope class 42 | attach_function :new_fvec, :new_fvec, [:uint], FvecT 43 | 44 | # (Not documented) 45 | # 46 | # @method del_fvec(s) 47 | # @param [FvecT] s 48 | # @return [nil] 49 | # @scope class 50 | attach_function :del_fvec, :del_fvec, [FvecT], :void 51 | 52 | # (Not documented) 53 | # 54 | # @method fvec_get_sample(s, position) 55 | # @param [FvecT] s 56 | # @param [Integer] position 57 | # @return [Float] 58 | # @scope class 59 | attach_function :fvec_get_sample, :fvec_get_sample, [FvecT, :uint], :float 60 | 61 | # (Not documented) 62 | # 63 | # @method fvec_set_sample(s, data, position) 64 | # @param [FvecT] s 65 | # @param [Float] data 66 | # @param [Integer] position 67 | # @return [nil] 68 | # @scope class 69 | attach_function :fvec_set_sample, :fvec_set_sample, [FvecT, :float, :uint], :void 70 | 71 | # (Not documented) 72 | # 73 | # @method fvec_get_data(s) 74 | # @param [FvecT] s 75 | # @return [FFI::Pointer(*SmplT)] 76 | # @scope class 77 | attach_function :fvec_get_data, :fvec_get_data, [FvecT], :pointer 78 | 79 | # (Not documented) 80 | # 81 | # @method fvec_print(s) 82 | # @param [FvecT] s 83 | # @return [nil] 84 | # @scope class 85 | attach_function :fvec_print, :fvec_print, [FvecT], :void 86 | 87 | # (Not documented) 88 | # 89 | # @method fvec_set_all(s, val) 90 | # @param [FvecT] s 91 | # @param [Float] val 92 | # @return [nil] 93 | # @scope class 94 | attach_function :fvec_set_all, :fvec_set_all, [FvecT, :float], :void 95 | 96 | # (Not documented) 97 | # 98 | # @method fvec_zeros(s) 99 | # @param [FvecT] s 100 | # @return [nil] 101 | # @scope class 102 | attach_function :fvec_zeros, :fvec_zeros, [FvecT], :void 103 | 104 | # (Not documented) 105 | # 106 | # @method fvec_ones(s) 107 | # @param [FvecT] s 108 | # @return [nil] 109 | # @scope class 110 | attach_function :fvec_ones, :fvec_ones, [FvecT], :void 111 | 112 | # (Not documented) 113 | # 114 | # @method fvec_rev(s) 115 | # @param [FvecT] s 116 | # @return [nil] 117 | # @scope class 118 | attach_function :fvec_rev, :fvec_rev, [FvecT], :void 119 | 120 | # (Not documented) 121 | # 122 | # @method fvec_weight(s, weight) 123 | # @param [FvecT] s 124 | # @param [FvecT] weight 125 | # @return [nil] 126 | # @scope class 127 | attach_function :fvec_weight, :fvec_weight, [FvecT, FvecT], :void 128 | 129 | # (Not documented) 130 | # 131 | # @method fvec_copy(s, t) 132 | # @param [FvecT] s 133 | # @param [FvecT] t 134 | # @return [nil] 135 | # @scope class 136 | attach_function :fvec_copy, :fvec_copy, [FvecT, FvecT], :void 137 | 138 | # (Not documented) 139 | # 140 | # @method fvec_weighted_copy(in_, weight, out) 141 | # @param [FvecT] in_ 142 | # @param [FvecT] weight 143 | # @param [FvecT] out 144 | # @return [nil] 145 | # @scope class 146 | attach_function :fvec_weighted_copy, :fvec_weighted_copy, [FvecT, FvecT, FvecT], :void 147 | 148 | # (Not documented) 149 | # 150 | # = Fields: 151 | # :length :: 152 | # (Integer) < length of buffer = (requested length)/2 + 1 153 | # :norm :: 154 | # (FFI::Pointer(*SmplT)) < norm array of size ::cvec_t.length 155 | # :phas :: 156 | # (FFI::Pointer(*SmplT)) < phase array of size ::cvec_t.length 157 | class CvecT < FFI::Struct 158 | layout :length, :uint, 159 | :norm, :pointer, 160 | :phas, :pointer 161 | end 162 | 163 | # (Not documented) 164 | # 165 | # @method new_cvec(length) 166 | # @param [Integer] length 167 | # @return [CvecT] 168 | # @scope class 169 | attach_function :new_cvec, :new_cvec, [:uint], CvecT 170 | 171 | # (Not documented) 172 | # 173 | # @method del_cvec(s) 174 | # @param [CvecT] s 175 | # @return [nil] 176 | # @scope class 177 | attach_function :del_cvec, :del_cvec, [CvecT], :void 178 | 179 | # (Not documented) 180 | # 181 | # @method cvec_norm_set_sample(s, val, position) 182 | # @param [CvecT] s 183 | # @param [Float] val 184 | # @param [Integer] position 185 | # @return [nil] 186 | # @scope class 187 | attach_function :cvec_norm_set_sample, :cvec_norm_set_sample, [CvecT, :float, :uint], :void 188 | 189 | # (Not documented) 190 | # 191 | # @method cvec_phas_set_sample(s, val, position) 192 | # @param [CvecT] s 193 | # @param [Float] val 194 | # @param [Integer] position 195 | # @return [nil] 196 | # @scope class 197 | attach_function :cvec_phas_set_sample, :cvec_phas_set_sample, [CvecT, :float, :uint], :void 198 | 199 | # (Not documented) 200 | # 201 | # @method cvec_norm_get_sample(s, position) 202 | # @param [CvecT] s 203 | # @param [Integer] position 204 | # @return [Float] 205 | # @scope class 206 | attach_function :cvec_norm_get_sample, :cvec_norm_get_sample, [CvecT, :uint], :float 207 | 208 | # (Not documented) 209 | # 210 | # @method cvec_phas_get_sample(s, position) 211 | # @param [CvecT] s 212 | # @param [Integer] position 213 | # @return [Float] 214 | # @scope class 215 | attach_function :cvec_phas_get_sample, :cvec_phas_get_sample, [CvecT, :uint], :float 216 | 217 | # (Not documented) 218 | # 219 | # @method cvec_norm_get_data(s) 220 | # @param [CvecT] s 221 | # @return [FFI::Pointer(*SmplT)] 222 | # @scope class 223 | attach_function :cvec_norm_get_data, :cvec_norm_get_data, [CvecT], :pointer 224 | 225 | # (Not documented) 226 | # 227 | # @method cvec_phas_get_data(s) 228 | # @param [CvecT] s 229 | # @return [FFI::Pointer(*SmplT)] 230 | # @scope class 231 | attach_function :cvec_phas_get_data, :cvec_phas_get_data, [CvecT], :pointer 232 | 233 | # (Not documented) 234 | # 235 | # @method cvec_print(s) 236 | # @param [CvecT] s 237 | # @return [nil] 238 | # @scope class 239 | attach_function :cvec_print, :cvec_print, [CvecT], :void 240 | 241 | # (Not documented) 242 | # 243 | # @method cvec_copy(s, t) 244 | # @param [CvecT] s 245 | # @param [CvecT] t 246 | # @return [nil] 247 | # @scope class 248 | attach_function :cvec_copy, :cvec_copy, [CvecT, CvecT], :void 249 | 250 | # (Not documented) 251 | # 252 | # @method cvec_norm_set_all(s, val) 253 | # @param [CvecT] s 254 | # @param [Float] val 255 | # @return [nil] 256 | # @scope class 257 | attach_function :cvec_norm_set_all, :cvec_norm_set_all, [CvecT, :float], :void 258 | 259 | # (Not documented) 260 | # 261 | # @method cvec_norm_zeros(s) 262 | # @param [CvecT] s 263 | # @return [nil] 264 | # @scope class 265 | attach_function :cvec_norm_zeros, :cvec_norm_zeros, [CvecT], :void 266 | 267 | # (Not documented) 268 | # 269 | # @method cvec_norm_ones(s) 270 | # @param [CvecT] s 271 | # @return [nil] 272 | # @scope class 273 | attach_function :cvec_norm_ones, :cvec_norm_ones, [CvecT], :void 274 | 275 | # (Not documented) 276 | # 277 | # @method cvec_phas_set_all(s, val) 278 | # @param [CvecT] s 279 | # @param [Float] val 280 | # @return [nil] 281 | # @scope class 282 | attach_function :cvec_phas_set_all, :cvec_phas_set_all, [CvecT, :float], :void 283 | 284 | # (Not documented) 285 | # 286 | # @method cvec_phas_zeros(s) 287 | # @param [CvecT] s 288 | # @return [nil] 289 | # @scope class 290 | attach_function :cvec_phas_zeros, :cvec_phas_zeros, [CvecT], :void 291 | 292 | # (Not documented) 293 | # 294 | # @method cvec_phas_ones(s) 295 | # @param [CvecT] s 296 | # @return [nil] 297 | # @scope class 298 | attach_function :cvec_phas_ones, :cvec_phas_ones, [CvecT], :void 299 | 300 | # (Not documented) 301 | # 302 | # @method cvec_zeros(s) 303 | # @param [CvecT] s 304 | # @return [nil] 305 | # @scope class 306 | attach_function :cvec_zeros, :cvec_zeros, [CvecT], :void 307 | 308 | # (Not documented) 309 | # 310 | # = Fields: 311 | # :length :: 312 | # (Integer) < length of buffer 313 | # :data :: 314 | # (FFI::Pointer(*LsmpT)) < data array of size (length) 315 | class LvecT < FFI::Struct 316 | layout :length, :uint, 317 | :data, :pointer 318 | end 319 | 320 | # (Not documented) 321 | # 322 | # @method new_lvec(length) 323 | # @param [Integer] length 324 | # @return [LvecT] 325 | # @scope class 326 | attach_function :new_lvec, :new_lvec, [:uint], LvecT 327 | 328 | # (Not documented) 329 | # 330 | # @method del_lvec(s) 331 | # @param [LvecT] s 332 | # @return [nil] 333 | # @scope class 334 | attach_function :del_lvec, :del_lvec, [LvecT], :void 335 | 336 | # (Not documented) 337 | # 338 | # @method lvec_get_sample(s, position) 339 | # @param [LvecT] s 340 | # @param [Integer] position 341 | # @return [Float] 342 | # @scope class 343 | attach_function :lvec_get_sample, :lvec_get_sample, [LvecT, :uint], :double 344 | 345 | # (Not documented) 346 | # 347 | # @method lvec_set_sample(s, data, position) 348 | # @param [LvecT] s 349 | # @param [Float] data 350 | # @param [Integer] position 351 | # @return [nil] 352 | # @scope class 353 | attach_function :lvec_set_sample, :lvec_set_sample, [LvecT, :double, :uint], :void 354 | 355 | # (Not documented) 356 | # 357 | # @method lvec_get_data(s) 358 | # @param [LvecT] s 359 | # @return [FFI::Pointer(*LsmpT)] 360 | # @scope class 361 | attach_function :lvec_get_data, :lvec_get_data, [LvecT], :pointer 362 | 363 | # (Not documented) 364 | # 365 | # @method lvec_print(s) 366 | # @param [LvecT] s 367 | # @return [nil] 368 | # @scope class 369 | attach_function :lvec_print, :lvec_print, [LvecT], :void 370 | 371 | # (Not documented) 372 | # 373 | # @method lvec_set_all(s, val) 374 | # @param [LvecT] s 375 | # @param [Float] val 376 | # @return [nil] 377 | # @scope class 378 | attach_function :lvec_set_all, :lvec_set_all, [LvecT, :float], :void 379 | 380 | # (Not documented) 381 | # 382 | # @method lvec_zeros(s) 383 | # @param [LvecT] s 384 | # @return [nil] 385 | # @scope class 386 | attach_function :lvec_zeros, :lvec_zeros, [LvecT], :void 387 | 388 | # (Not documented) 389 | # 390 | # @method lvec_ones(s) 391 | # @param [LvecT] s 392 | # @return [nil] 393 | # @scope class 394 | attach_function :lvec_ones, :lvec_ones, [LvecT], :void 395 | 396 | # (Not documented) 397 | # 398 | # = Fields: 399 | # :length :: 400 | # (Integer) < length of matrix 401 | # :height :: 402 | # (Integer) < height of matrix 403 | # :data :: 404 | # (FFI::Pointer(**SmplT)) < data array of size (length) * (height) 405 | class FmatT < FFI::Struct 406 | layout :length, :uint, 407 | :height, :uint, 408 | :data, :pointer 409 | end 410 | 411 | # (Not documented) 412 | # 413 | # @method new_fmat(height, length) 414 | # @param [Integer] height 415 | # @param [Integer] length 416 | # @return [FmatT] 417 | # @scope class 418 | attach_function :new_fmat, :new_fmat, %i[uint uint], FmatT 419 | 420 | # (Not documented) 421 | # 422 | # @method del_fmat(s) 423 | # @param [FmatT] s 424 | # @return [nil] 425 | # @scope class 426 | attach_function :del_fmat, :del_fmat, [FmatT], :void 427 | 428 | # (Not documented) 429 | # 430 | # @method fmat_get_sample(s, channel, position) 431 | # @param [FmatT] s 432 | # @param [Integer] channel 433 | # @param [Integer] position 434 | # @return [Float] 435 | # @scope class 436 | attach_function :fmat_get_sample, :fmat_get_sample, [FmatT, :uint, :uint], :float 437 | 438 | # (Not documented) 439 | # 440 | # @method fmat_set_sample(s, data, channel, position) 441 | # @param [FmatT] s 442 | # @param [Float] data 443 | # @param [Integer] channel 444 | # @param [Integer] position 445 | # @return [nil] 446 | # @scope class 447 | attach_function :fmat_set_sample, :fmat_set_sample, [FmatT, :float, :uint, :uint], :void 448 | 449 | # (Not documented) 450 | # 451 | # @method fmat_get_channel(s, channel, output) 452 | # @param [FmatT] s 453 | # @param [Integer] channel 454 | # @param [FvecT] output 455 | # @return [nil] 456 | # @scope class 457 | attach_function :fmat_get_channel, :fmat_get_channel, [FmatT, :uint, FvecT], :void 458 | 459 | # (Not documented) 460 | # 461 | # @method fmat_get_channel_data(s, channel) 462 | # @param [FmatT] s 463 | # @param [Integer] channel 464 | # @return [FFI::Pointer(*SmplT)] 465 | # @scope class 466 | attach_function :fmat_get_channel_data, :fmat_get_channel_data, [FmatT, :uint], :pointer 467 | 468 | # (Not documented) 469 | # 470 | # @method fmat_get_data(s) 471 | # @param [FmatT] s 472 | # @return [FFI::Pointer(**SmplT)] 473 | # @scope class 474 | attach_function :fmat_get_data, :fmat_get_data, [FmatT], :pointer 475 | 476 | # (Not documented) 477 | # 478 | # @method fmat_print(s) 479 | # @param [FmatT] s 480 | # @return [nil] 481 | # @scope class 482 | attach_function :fmat_print, :fmat_print, [FmatT], :void 483 | 484 | # (Not documented) 485 | # 486 | # @method fmat_set(s, val) 487 | # @param [FmatT] s 488 | # @param [Float] val 489 | # @return [nil] 490 | # @scope class 491 | attach_function :fmat_set, :fmat_set, [FmatT, :float], :void 492 | 493 | # (Not documented) 494 | # 495 | # @method fmat_zeros(s) 496 | # @param [FmatT] s 497 | # @return [nil] 498 | # @scope class 499 | attach_function :fmat_zeros, :fmat_zeros, [FmatT], :void 500 | 501 | # (Not documented) 502 | # 503 | # @method fmat_ones(s) 504 | # @param [FmatT] s 505 | # @return [nil] 506 | # @scope class 507 | attach_function :fmat_ones, :fmat_ones, [FmatT], :void 508 | 509 | # (Not documented) 510 | # 511 | # @method fmat_rev(s) 512 | # @param [FmatT] s 513 | # @return [nil] 514 | # @scope class 515 | attach_function :fmat_rev, :fmat_rev, [FmatT], :void 516 | 517 | # (Not documented) 518 | # 519 | # @method fmat_weight(s, weight) 520 | # @param [FmatT] s 521 | # @param [FmatT] weight 522 | # @return [nil] 523 | # @scope class 524 | attach_function :fmat_weight, :fmat_weight, [FmatT, FmatT], :void 525 | 526 | # (Not documented) 527 | # 528 | # @method fmat_copy(s, t) 529 | # @param [FmatT] s 530 | # @param [FmatT] t 531 | # @return [nil] 532 | # @scope class 533 | attach_function :fmat_copy, :fmat_copy, [FmatT, FmatT], :void 534 | 535 | # (Not documented) 536 | # 537 | # @method fmat_vecmul(s, scale, output) 538 | # @param [FmatT] s 539 | # @param [FvecT] scale 540 | # @param [FvecT] output 541 | # @return [nil] 542 | # @scope class 543 | attach_function :fmat_vecmul, :fmat_vecmul, [FmatT, FvecT, FvecT], :void 544 | 545 | # (Not documented) 546 | # 547 | # @method new_aubio_window(window_type, size) 548 | # @param [String] window_type 549 | # @param [Integer] size 550 | # @return [FvecT] 551 | # @scope class 552 | attach_function :new_aubio_window, :new_aubio_window, %i[string uint], FvecT 553 | 554 | # (Not documented) 555 | # 556 | # @method fvec_set_window(window, window_type) 557 | # @param [FvecT] window 558 | # @param [String] window_type 559 | # @return [Integer] 560 | # @scope class 561 | attach_function :fvec_set_window, :fvec_set_window, [FvecT, :string], :uint 562 | 563 | # (Not documented) 564 | # 565 | # @method aubio_unwrap2pi(phase) 566 | # @param [Float] phase 567 | # @return [Float] 568 | # @scope class 569 | attach_function :aubio_unwrap2pi, :aubio_unwrap2pi, [:float], :float 570 | 571 | # (Not documented) 572 | # 573 | # @method aubio_bintomidi(bin, samplerate, fftsize) 574 | # @param [Float] bin 575 | # @param [Float] samplerate 576 | # @param [Float] fftsize 577 | # @return [Float] 578 | # @scope class 579 | attach_function :aubio_bintomidi, :aubio_bintomidi, %i[float float float], :float 580 | 581 | # (Not documented) 582 | # 583 | # @method aubio_miditobin(midi, samplerate, fftsize) 584 | # @param [Float] midi 585 | # @param [Float] samplerate 586 | # @param [Float] fftsize 587 | # @return [Float] 588 | # @scope class 589 | attach_function :aubio_miditobin, :aubio_miditobin, %i[float float float], :float 590 | 591 | # (Not documented) 592 | # 593 | # @method aubio_bintofreq(bin, samplerate, fftsize) 594 | # @param [Float] bin 595 | # @param [Float] samplerate 596 | # @param [Float] fftsize 597 | # @return [Float] 598 | # @scope class 599 | attach_function :aubio_bintofreq, :aubio_bintofreq, %i[float float float], :float 600 | 601 | # (Not documented) 602 | # 603 | # @method aubio_freqtobin(freq, samplerate, fftsize) 604 | # @param [Float] freq 605 | # @param [Float] samplerate 606 | # @param [Float] fftsize 607 | # @return [Float] 608 | # @scope class 609 | attach_function :aubio_freqtobin, :aubio_freqtobin, %i[float float float], :float 610 | 611 | # (Not documented) 612 | # 613 | # @method aubio_freqtomidi(freq) 614 | # @param [Float] freq 615 | # @return [Float] 616 | # @scope class 617 | attach_function :aubio_freqtomidi, :aubio_freqtomidi, [:float], :float 618 | 619 | # (Not documented) 620 | # 621 | # @method aubio_miditofreq(midi) 622 | # @param [Float] midi 623 | # @return [Float] 624 | # @scope class 625 | attach_function :aubio_miditofreq, :aubio_miditofreq, [:float], :float 626 | 627 | # (Not documented) 628 | # 629 | # @method aubio_cleanup() 630 | # @return [nil] 631 | # @scope class 632 | attach_function :aubio_cleanup, :aubio_cleanup, [], :void 633 | 634 | # (Not documented) 635 | # 636 | # @method aubio_zero_crossing_rate(v) 637 | # @param [FvecT] v 638 | # @return [Float] 639 | # @scope class 640 | attach_function :aubio_zero_crossing_rate, :aubio_zero_crossing_rate, [FvecT], :float 641 | 642 | # (Not documented) 643 | # 644 | # @method aubio_level_lin(v) 645 | # @param [FvecT] v 646 | # @return [Float] 647 | # @scope class 648 | attach_function :aubio_level_lin, :aubio_level_lin, [FvecT], :float 649 | 650 | # (Not documented) 651 | # 652 | # @method aubio_db_spl(v) 653 | # @param [FvecT] v 654 | # @return [Float] 655 | # @scope class 656 | attach_function :aubio_db_spl, :aubio_db_spl, [FvecT], :float 657 | 658 | # (Not documented) 659 | # 660 | # @method aubio_silence_detection(v, threshold) 661 | # @param [FvecT] v 662 | # @param [Float] threshold 663 | # @return [Integer] 664 | # @scope class 665 | attach_function :aubio_silence_detection, :aubio_silence_detection, [FvecT, :float], :uint 666 | 667 | # (Not documented) 668 | # 669 | # @method aubio_level_detection(v, threshold) 670 | # @param [FvecT] v 671 | # @param [Float] threshold 672 | # @return [Float] 673 | # @scope class 674 | attach_function :aubio_level_detection, :aubio_level_detection, [FvecT, :float], :float 675 | 676 | # (Not documented) 677 | # 678 | # @method fvec_exp(s) 679 | # @param [FvecT] s 680 | # @return [nil] 681 | # @scope class 682 | attach_function :fvec_exp, :fvec_exp, [FvecT], :void 683 | 684 | # (Not documented) 685 | # 686 | # @method fvec_cos(s) 687 | # @param [FvecT] s 688 | # @return [nil] 689 | # @scope class 690 | attach_function :fvec_cos, :fvec_cos, [FvecT], :void 691 | 692 | # (Not documented) 693 | # 694 | # @method fvec_sin(s) 695 | # @param [FvecT] s 696 | # @return [nil] 697 | # @scope class 698 | attach_function :fvec_sin, :fvec_sin, [FvecT], :void 699 | 700 | # (Not documented) 701 | # 702 | # @method fvec_abs(s) 703 | # @param [FvecT] s 704 | # @return [nil] 705 | # @scope class 706 | attach_function :fvec_abs, :fvec_abs, [FvecT], :void 707 | 708 | # (Not documented) 709 | # 710 | # @method fvec_sqrt(s) 711 | # @param [FvecT] s 712 | # @return [nil] 713 | # @scope class 714 | attach_function :fvec_sqrt, :fvec_sqrt, [FvecT], :void 715 | 716 | # (Not documented) 717 | # 718 | # @method fvec_log10(s) 719 | # @param [FvecT] s 720 | # @return [nil] 721 | # @scope class 722 | attach_function :fvec_log10, :fvec_log10, [FvecT], :void 723 | 724 | # (Not documented) 725 | # 726 | # @method fvec_log(s) 727 | # @param [FvecT] s 728 | # @return [nil] 729 | # @scope class 730 | attach_function :fvec_log, :fvec_log, [FvecT], :void 731 | 732 | # (Not documented) 733 | # 734 | # @method fvec_floor(s) 735 | # @param [FvecT] s 736 | # @return [nil] 737 | # @scope class 738 | attach_function :fvec_floor, :fvec_floor, [FvecT], :void 739 | 740 | # (Not documented) 741 | # 742 | # @method fvec_ceil(s) 743 | # @param [FvecT] s 744 | # @return [nil] 745 | # @scope class 746 | attach_function :fvec_ceil, :fvec_ceil, [FvecT], :void 747 | 748 | # (Not documented) 749 | # 750 | # @method fvec_round(s) 751 | # @param [FvecT] s 752 | # @return [nil] 753 | # @scope class 754 | attach_function :fvec_round, :fvec_round, [FvecT], :void 755 | 756 | # (Not documented) 757 | # 758 | # @method fvec_pow(s, pow) 759 | # @param [FvecT] s 760 | # @param [Float] pow 761 | # @return [nil] 762 | # @scope class 763 | attach_function :fvec_pow, :fvec_pow, [FvecT, :float], :void 764 | 765 | # (Not documented) 766 | class AubioResamplerT < FFI::Struct 767 | layout :dummy, :char 768 | end 769 | 770 | # (Not documented) 771 | # 772 | # @method new_aubio_resampler(ratio, type) 773 | # @param [Float] ratio 774 | # @param [Integer] type 775 | # @return [AubioResamplerT] 776 | # @scope class 777 | attach_function :new_aubio_resampler, :new_aubio_resampler, %i[float uint], AubioResamplerT 778 | 779 | # (Not documented) 780 | # 781 | # @method del_aubio_resampler(s) 782 | # @param [AubioResamplerT] s 783 | # @return [nil] 784 | # @scope class 785 | attach_function :del_aubio_resampler, :del_aubio_resampler, [AubioResamplerT], :void 786 | 787 | # (Not documented) 788 | # 789 | # @method aubio_resampler_do(s, input, output) 790 | # @param [AubioResamplerT] s 791 | # @param [FvecT] input 792 | # @param [FvecT] output 793 | # @return [nil] 794 | # @scope class 795 | attach_function :aubio_resampler_do, :aubio_resampler_do, [AubioResamplerT, FvecT, FvecT], :void 796 | 797 | # (Not documented) 798 | class AubioFilterT < FFI::Struct 799 | layout :dummy, :char 800 | end 801 | 802 | # (Not documented) 803 | # 804 | # @method aubio_filter_do(f, in_) 805 | # @param [AubioFilterT] f 806 | # @param [FvecT] in_ 807 | # @return [nil] 808 | # @scope class 809 | attach_function :aubio_filter_do, :aubio_filter_do, [AubioFilterT, FvecT], :void 810 | 811 | # (Not documented) 812 | # 813 | # @method aubio_filter_do_outplace(f, in_, out) 814 | # @param [AubioFilterT] f 815 | # @param [FvecT] in_ 816 | # @param [FvecT] out 817 | # @return [nil] 818 | # @scope class 819 | attach_function :aubio_filter_do_outplace, :aubio_filter_do_outplace, [AubioFilterT, FvecT, FvecT], :void 820 | 821 | # (Not documented) 822 | # 823 | # @method aubio_filter_do_filtfilt(f, in_, tmp) 824 | # @param [AubioFilterT] f 825 | # @param [FvecT] in_ 826 | # @param [FvecT] tmp 827 | # @return [nil] 828 | # @scope class 829 | attach_function :aubio_filter_do_filtfilt, :aubio_filter_do_filtfilt, [AubioFilterT, FvecT, FvecT], :void 830 | 831 | # (Not documented) 832 | # 833 | # @method aubio_filter_get_feedback(f) 834 | # @param [AubioFilterT] f 835 | # @return [LvecT] 836 | # @scope class 837 | attach_function :aubio_filter_get_feedback, :aubio_filter_get_feedback, [AubioFilterT], LvecT 838 | 839 | # (Not documented) 840 | # 841 | # @method aubio_filter_get_feedforward(f) 842 | # @param [AubioFilterT] f 843 | # @return [LvecT] 844 | # @scope class 845 | attach_function :aubio_filter_get_feedforward, :aubio_filter_get_feedforward, [AubioFilterT], LvecT 846 | 847 | # (Not documented) 848 | # 849 | # @method aubio_filter_get_order(f) 850 | # @param [AubioFilterT] f 851 | # @return [Integer] 852 | # @scope class 853 | attach_function :aubio_filter_get_order, :aubio_filter_get_order, [AubioFilterT], :uint 854 | 855 | # (Not documented) 856 | # 857 | # @method aubio_filter_get_samplerate(f) 858 | # @param [AubioFilterT] f 859 | # @return [Integer] 860 | # @scope class 861 | attach_function :aubio_filter_get_samplerate, :aubio_filter_get_samplerate, [AubioFilterT], :uint 862 | 863 | # (Not documented) 864 | # 865 | # @method aubio_filter_set_samplerate(f, samplerate) 866 | # @param [AubioFilterT] f 867 | # @param [Integer] samplerate 868 | # @return [Integer] 869 | # @scope class 870 | attach_function :aubio_filter_set_samplerate, :aubio_filter_set_samplerate, [AubioFilterT, :uint], :uint 871 | 872 | # (Not documented) 873 | # 874 | # @method aubio_filter_do_reset(f) 875 | # @param [AubioFilterT] f 876 | # @return [nil] 877 | # @scope class 878 | attach_function :aubio_filter_do_reset, :aubio_filter_do_reset, [AubioFilterT], :void 879 | 880 | # (Not documented) 881 | # 882 | # @method new_aubio_filter(order) 883 | # @param [Integer] order 884 | # @return [AubioFilterT] 885 | # @scope class 886 | attach_function :new_aubio_filter, :new_aubio_filter, [:uint], AubioFilterT 887 | 888 | # (Not documented) 889 | # 890 | # @method del_aubio_filter(f) 891 | # @param [AubioFilterT] f 892 | # @return [nil] 893 | # @scope class 894 | attach_function :del_aubio_filter, :del_aubio_filter, [AubioFilterT], :void 895 | 896 | # (Not documented) 897 | # 898 | # @method aubio_filter_set_biquad(f, b0, b1, b2, a1, a2) 899 | # @param [AubioFilterT] f 900 | # @param [Float] b0 901 | # @param [Float] b1 902 | # @param [Float] b2 903 | # @param [Float] a1 904 | # @param [Float] a2 905 | # @return [Integer] 906 | # @scope class 907 | attach_function :aubio_filter_set_biquad, :aubio_filter_set_biquad, [AubioFilterT, :double, :double, :double, :double, :double], :uint 908 | 909 | # (Not documented) 910 | # 911 | # @method new_aubio_filter_biquad(b0, b1, b2, a1, a2) 912 | # @param [Float] b0 913 | # @param [Float] b1 914 | # @param [Float] b2 915 | # @param [Float] a1 916 | # @param [Float] a2 917 | # @return [AubioFilterT] 918 | # @scope class 919 | attach_function :new_aubio_filter_biquad, :new_aubio_filter_biquad, %i[double double double double double], AubioFilterT 920 | 921 | # (Not documented) 922 | # 923 | # @method new_aubio_filter_a_weighting(samplerate) 924 | # @param [Integer] samplerate 925 | # @return [AubioFilterT] 926 | # @scope class 927 | attach_function :new_aubio_filter_a_weighting, :new_aubio_filter_a_weighting, [:uint], AubioFilterT 928 | 929 | # (Not documented) 930 | # 931 | # @method aubio_filter_set_a_weighting(f, samplerate) 932 | # @param [AubioFilterT] f 933 | # @param [Integer] samplerate 934 | # @return [Integer] 935 | # @scope class 936 | attach_function :aubio_filter_set_a_weighting, :aubio_filter_set_a_weighting, [AubioFilterT, :uint], :uint 937 | 938 | # (Not documented) 939 | # 940 | # @method new_aubio_filter_c_weighting(samplerate) 941 | # @param [Integer] samplerate 942 | # @return [AubioFilterT] 943 | # @scope class 944 | attach_function :new_aubio_filter_c_weighting, :new_aubio_filter_c_weighting, [:uint], AubioFilterT 945 | 946 | # (Not documented) 947 | # 948 | # @method aubio_filter_set_c_weighting(f, samplerate) 949 | # @param [AubioFilterT] f 950 | # @param [Integer] samplerate 951 | # @return [Integer] 952 | # @scope class 953 | attach_function :aubio_filter_set_c_weighting, :aubio_filter_set_c_weighting, [AubioFilterT, :uint], :uint 954 | 955 | # (Not documented) 956 | class AubioFftT < FFI::Struct 957 | layout :dummy, :char 958 | end 959 | 960 | # (Not documented) 961 | # 962 | # @method new_aubio_fft(size) 963 | # @param [Integer] size 964 | # @return [AubioFftT] 965 | # @scope class 966 | attach_function :new_aubio_fft, :new_aubio_fft, [:uint], AubioFftT 967 | 968 | # (Not documented) 969 | # 970 | # @method del_aubio_fft(s) 971 | # @param [AubioFftT] s 972 | # @return [nil] 973 | # @scope class 974 | attach_function :del_aubio_fft, :del_aubio_fft, [AubioFftT], :void 975 | 976 | # (Not documented) 977 | # 978 | # @method aubio_fft_do(s, input, spectrum) 979 | # @param [AubioFftT] s 980 | # @param [FvecT] input 981 | # @param [CvecT] spectrum 982 | # @return [nil] 983 | # @scope class 984 | attach_function :aubio_fft_do, :aubio_fft_do, [AubioFftT, FvecT, CvecT], :void 985 | 986 | # (Not documented) 987 | # 988 | # @method aubio_fft_rdo(s, spectrum, output) 989 | # @param [AubioFftT] s 990 | # @param [CvecT] spectrum 991 | # @param [FvecT] output 992 | # @return [nil] 993 | # @scope class 994 | attach_function :aubio_fft_rdo, :aubio_fft_rdo, [AubioFftT, CvecT, FvecT], :void 995 | 996 | # (Not documented) 997 | # 998 | # @method aubio_fft_do_complex(s, input, compspec) 999 | # @param [AubioFftT] s 1000 | # @param [FvecT] input 1001 | # @param [FvecT] compspec 1002 | # @return [nil] 1003 | # @scope class 1004 | attach_function :aubio_fft_do_complex, :aubio_fft_do_complex, [AubioFftT, FvecT, FvecT], :void 1005 | 1006 | # (Not documented) 1007 | # 1008 | # @method aubio_fft_rdo_complex(s, compspec, output) 1009 | # @param [AubioFftT] s 1010 | # @param [FvecT] compspec 1011 | # @param [FvecT] output 1012 | # @return [nil] 1013 | # @scope class 1014 | attach_function :aubio_fft_rdo_complex, :aubio_fft_rdo_complex, [AubioFftT, FvecT, FvecT], :void 1015 | 1016 | # (Not documented) 1017 | # 1018 | # @method aubio_fft_get_spectrum(compspec, spectrum) 1019 | # @param [FvecT] compspec 1020 | # @param [CvecT] spectrum 1021 | # @return [nil] 1022 | # @scope class 1023 | attach_function :aubio_fft_get_spectrum, :aubio_fft_get_spectrum, [FvecT, CvecT], :void 1024 | 1025 | # (Not documented) 1026 | # 1027 | # @method aubio_fft_get_realimag(spectrum, compspec) 1028 | # @param [CvecT] spectrum 1029 | # @param [FvecT] compspec 1030 | # @return [nil] 1031 | # @scope class 1032 | attach_function :aubio_fft_get_realimag, :aubio_fft_get_realimag, [CvecT, FvecT], :void 1033 | 1034 | # (Not documented) 1035 | # 1036 | # @method aubio_fft_get_phas(compspec, spectrum) 1037 | # @param [FvecT] compspec 1038 | # @param [CvecT] spectrum 1039 | # @return [nil] 1040 | # @scope class 1041 | attach_function :aubio_fft_get_phas, :aubio_fft_get_phas, [FvecT, CvecT], :void 1042 | 1043 | # (Not documented) 1044 | # 1045 | # @method aubio_fft_get_imag(spectrum, compspec) 1046 | # @param [CvecT] spectrum 1047 | # @param [FvecT] compspec 1048 | # @return [nil] 1049 | # @scope class 1050 | attach_function :aubio_fft_get_imag, :aubio_fft_get_imag, [CvecT, FvecT], :void 1051 | 1052 | # (Not documented) 1053 | # 1054 | # @method aubio_fft_get_norm(compspec, spectrum) 1055 | # @param [FvecT] compspec 1056 | # @param [CvecT] spectrum 1057 | # @return [nil] 1058 | # @scope class 1059 | attach_function :aubio_fft_get_norm, :aubio_fft_get_norm, [FvecT, CvecT], :void 1060 | 1061 | # (Not documented) 1062 | # 1063 | # @method aubio_fft_get_real(spectrum, compspec) 1064 | # @param [CvecT] spectrum 1065 | # @param [FvecT] compspec 1066 | # @return [nil] 1067 | # @scope class 1068 | attach_function :aubio_fft_get_real, :aubio_fft_get_real, [CvecT, FvecT], :void 1069 | 1070 | # (Not documented) 1071 | class AubioPvocT < FFI::Struct 1072 | layout :dummy, :char 1073 | end 1074 | 1075 | # (Not documented) 1076 | # 1077 | # @method new_aubio_pvoc(win_s, hop_s) 1078 | # @param [Integer] win_s 1079 | # @param [Integer] hop_s 1080 | # @return [AubioPvocT] 1081 | # @scope class 1082 | attach_function :new_aubio_pvoc, :new_aubio_pvoc, %i[uint uint], AubioPvocT 1083 | 1084 | # (Not documented) 1085 | # 1086 | # @method del_aubio_pvoc(pv) 1087 | # @param [AubioPvocT] pv 1088 | # @return [nil] 1089 | # @scope class 1090 | attach_function :del_aubio_pvoc, :del_aubio_pvoc, [AubioPvocT], :void 1091 | 1092 | # (Not documented) 1093 | # 1094 | # @method aubio_pvoc_do(pv, in_, fftgrain) 1095 | # @param [AubioPvocT] pv 1096 | # @param [FvecT] in_ 1097 | # @param [CvecT] fftgrain 1098 | # @return [nil] 1099 | # @scope class 1100 | attach_function :aubio_pvoc_do, :aubio_pvoc_do, [AubioPvocT, FvecT, CvecT], :void 1101 | 1102 | # (Not documented) 1103 | # 1104 | # @method aubio_pvoc_rdo(pv, fftgrain, out) 1105 | # @param [AubioPvocT] pv 1106 | # @param [CvecT] fftgrain 1107 | # @param [FvecT] out 1108 | # @return [nil] 1109 | # @scope class 1110 | attach_function :aubio_pvoc_rdo, :aubio_pvoc_rdo, [AubioPvocT, CvecT, FvecT], :void 1111 | 1112 | # (Not documented) 1113 | # 1114 | # @method aubio_pvoc_get_win(pv) 1115 | # @param [AubioPvocT] pv 1116 | # @return [Integer] 1117 | # @scope class 1118 | attach_function :aubio_pvoc_get_win, :aubio_pvoc_get_win, [AubioPvocT], :uint 1119 | 1120 | # (Not documented) 1121 | # 1122 | # @method aubio_pvoc_get_hop(pv) 1123 | # @param [AubioPvocT] pv 1124 | # @return [Integer] 1125 | # @scope class 1126 | attach_function :aubio_pvoc_get_hop, :aubio_pvoc_get_hop, [AubioPvocT], :uint 1127 | 1128 | # (Not documented) 1129 | class AubioFilterbankT < FFI::Struct 1130 | layout :dummy, :char 1131 | end 1132 | 1133 | # (Not documented) 1134 | # 1135 | # @method new_aubio_filterbank(n_filters, win_s) 1136 | # @param [Integer] n_filters 1137 | # @param [Integer] win_s 1138 | # @return [AubioFilterbankT] 1139 | # @scope class 1140 | attach_function :new_aubio_filterbank, :new_aubio_filterbank, %i[uint uint], AubioFilterbankT 1141 | 1142 | # (Not documented) 1143 | # 1144 | # @method del_aubio_filterbank(f) 1145 | # @param [AubioFilterbankT] f 1146 | # @return [nil] 1147 | # @scope class 1148 | attach_function :del_aubio_filterbank, :del_aubio_filterbank, [AubioFilterbankT], :void 1149 | 1150 | # (Not documented) 1151 | # 1152 | # @method aubio_filterbank_do(f, in_, out) 1153 | # @param [AubioFilterbankT] f 1154 | # @param [CvecT] in_ 1155 | # @param [FvecT] out 1156 | # @return [nil] 1157 | # @scope class 1158 | attach_function :aubio_filterbank_do, :aubio_filterbank_do, [AubioFilterbankT, CvecT, FvecT], :void 1159 | 1160 | # (Not documented) 1161 | # 1162 | # @method aubio_filterbank_get_coeffs(f) 1163 | # @param [AubioFilterbankT] f 1164 | # @return [FmatT] 1165 | # @scope class 1166 | attach_function :aubio_filterbank_get_coeffs, :aubio_filterbank_get_coeffs, [AubioFilterbankT], FmatT 1167 | 1168 | # (Not documented) 1169 | # 1170 | # @method aubio_filterbank_set_coeffs(f, filters) 1171 | # @param [AubioFilterbankT] f 1172 | # @param [FmatT] filters 1173 | # @return [Integer] 1174 | # @scope class 1175 | attach_function :aubio_filterbank_set_coeffs, :aubio_filterbank_set_coeffs, [AubioFilterbankT, FmatT], :uint 1176 | 1177 | # (Not documented) 1178 | # 1179 | # @method aubio_filterbank_set_triangle_bands(fb, freqs, samplerate) 1180 | # @param [AubioFilterbankT] fb 1181 | # @param [FvecT] freqs 1182 | # @param [Float] samplerate 1183 | # @return [Integer] 1184 | # @scope class 1185 | attach_function :aubio_filterbank_set_triangle_bands, :aubio_filterbank_set_triangle_bands, [AubioFilterbankT, FvecT, :float], :uint 1186 | 1187 | # (Not documented) 1188 | # 1189 | # @method aubio_filterbank_set_mel_coeffs_slaney(fb, samplerate) 1190 | # @param [AubioFilterbankT] fb 1191 | # @param [Float] samplerate 1192 | # @return [Integer] 1193 | # @scope class 1194 | attach_function :aubio_filterbank_set_mel_coeffs_slaney, :aubio_filterbank_set_mel_coeffs_slaney, [AubioFilterbankT, :float], :uint 1195 | 1196 | # (Not documented) 1197 | class AubioMfccT < FFI::Struct 1198 | layout :dummy, :char 1199 | end 1200 | 1201 | # (Not documented) 1202 | # 1203 | # @method new_aubio_mfcc(buf_size, n_filters, n_coeffs, samplerate) 1204 | # @param [Integer] buf_size 1205 | # @param [Integer] n_filters 1206 | # @param [Integer] n_coeffs 1207 | # @param [Integer] samplerate 1208 | # @return [AubioMfccT] 1209 | # @scope class 1210 | attach_function :new_aubio_mfcc, :new_aubio_mfcc, %i[uint uint uint uint], AubioMfccT 1211 | 1212 | # (Not documented) 1213 | # 1214 | # @method del_aubio_mfcc(mf) 1215 | # @param [AubioMfccT] mf 1216 | # @return [nil] 1217 | # @scope class 1218 | attach_function :del_aubio_mfcc, :del_aubio_mfcc, [AubioMfccT], :void 1219 | 1220 | # (Not documented) 1221 | # 1222 | # @method aubio_mfcc_do(mf, in_, out) 1223 | # @param [AubioMfccT] mf 1224 | # @param [CvecT] in_ 1225 | # @param [FvecT] out 1226 | # @return [nil] 1227 | # @scope class 1228 | attach_function :aubio_mfcc_do, :aubio_mfcc_do, [AubioMfccT, CvecT, FvecT], :void 1229 | 1230 | # (Not documented) 1231 | class AubioSpecdescT < FFI::Struct 1232 | layout :dummy, :char 1233 | end 1234 | 1235 | # (Not documented) 1236 | # 1237 | # @method aubio_specdesc_do(o, fftgrain, desc) 1238 | # @param [AubioSpecdescT] o 1239 | # @param [CvecT] fftgrain 1240 | # @param [FvecT] desc 1241 | # @return [nil] 1242 | # @scope class 1243 | attach_function :aubio_specdesc_do, :aubio_specdesc_do, [AubioSpecdescT, CvecT, FvecT], :void 1244 | 1245 | # (Not documented) 1246 | # 1247 | # @method new_aubio_specdesc(method, buf_size) 1248 | # @param [String] method 1249 | # @param [Integer] buf_size 1250 | # @return [AubioSpecdescT] 1251 | # @scope class 1252 | attach_function :new_aubio_specdesc, :new_aubio_specdesc, %i[string uint], AubioSpecdescT 1253 | 1254 | # (Not documented) 1255 | # 1256 | # @method del_aubio_specdesc(o) 1257 | # @param [AubioSpecdescT] o 1258 | # @return [nil] 1259 | # @scope class 1260 | attach_function :del_aubio_specdesc, :del_aubio_specdesc, [AubioSpecdescT], :void 1261 | 1262 | # (Not documented) 1263 | class AubioTssT < FFI::Struct 1264 | layout :dummy, :char 1265 | end 1266 | 1267 | # (Not documented) 1268 | # 1269 | # @method new_aubio_tss(buf_size, hop_size) 1270 | # @param [Integer] buf_size 1271 | # @param [Integer] hop_size 1272 | # @return [AubioTssT] 1273 | # @scope class 1274 | attach_function :new_aubio_tss, :new_aubio_tss, %i[uint uint], AubioTssT 1275 | 1276 | # (Not documented) 1277 | # 1278 | # @method del_aubio_tss(o) 1279 | # @param [AubioTssT] o 1280 | # @return [nil] 1281 | # @scope class 1282 | attach_function :del_aubio_tss, :del_aubio_tss, [AubioTssT], :void 1283 | 1284 | # (Not documented) 1285 | # 1286 | # @method aubio_tss_do(o, input, trans, stead) 1287 | # @param [AubioTssT] o 1288 | # @param [CvecT] input 1289 | # @param [CvecT] trans 1290 | # @param [CvecT] stead 1291 | # @return [nil] 1292 | # @scope class 1293 | attach_function :aubio_tss_do, :aubio_tss_do, [AubioTssT, CvecT, CvecT, CvecT], :void 1294 | 1295 | # (Not documented) 1296 | # 1297 | # @method aubio_tss_set_threshold(o, thrs) 1298 | # @param [AubioTssT] o 1299 | # @param [Float] thrs 1300 | # @return [Integer] 1301 | # @scope class 1302 | attach_function :aubio_tss_set_threshold, :aubio_tss_set_threshold, [AubioTssT, :float], :uint 1303 | 1304 | # (Not documented) 1305 | # 1306 | # @method aubio_tss_set_alpha(o, alpha) 1307 | # @param [AubioTssT] o 1308 | # @param [Float] alpha 1309 | # @return [Integer] 1310 | # @scope class 1311 | attach_function :aubio_tss_set_alpha, :aubio_tss_set_alpha, [AubioTssT, :float], :uint 1312 | 1313 | # (Not documented) 1314 | # 1315 | # @method aubio_tss_set_beta(o, beta) 1316 | # @param [AubioTssT] o 1317 | # @param [Float] beta 1318 | # @return [Integer] 1319 | # @scope class 1320 | attach_function :aubio_tss_set_beta, :aubio_tss_set_beta, [AubioTssT, :float], :uint 1321 | 1322 | # (Not documented) 1323 | class AubioPitchT < FFI::Struct 1324 | layout :dummy, :char 1325 | end 1326 | 1327 | # (Not documented) 1328 | # 1329 | # @method aubio_pitch_do(o, in_, out) 1330 | # @param [AubioPitchT] o 1331 | # @param [FvecT] in_ 1332 | # @param [FvecT] out 1333 | # @return [nil] 1334 | # @scope class 1335 | attach_function :aubio_pitch_do, :aubio_pitch_do, [AubioPitchT, FvecT, FvecT], :void 1336 | 1337 | # (Not documented) 1338 | # 1339 | # @method aubio_pitch_set_tolerance(o, tol) 1340 | # @param [AubioPitchT] o 1341 | # @param [Float] tol 1342 | # @return [Integer] 1343 | # @scope class 1344 | attach_function :aubio_pitch_set_tolerance, :aubio_pitch_set_tolerance, [AubioPitchT, :float], :uint 1345 | 1346 | # (Not documented) 1347 | # 1348 | # @method aubio_pitch_get_tolerance(o) 1349 | # @param [AubioPitchT] o 1350 | # @return [Float] 1351 | # @scope class 1352 | attach_function :aubio_pitch_get_tolerance, :aubio_pitch_get_tolerance, [AubioPitchT], :float 1353 | 1354 | # (Not documented) 1355 | # 1356 | # @method del_aubio_pitch(o) 1357 | # @param [AubioPitchT] o 1358 | # @return [nil] 1359 | # @scope class 1360 | attach_function :del_aubio_pitch, :del_aubio_pitch, [AubioPitchT], :void 1361 | 1362 | # (Not documented) 1363 | # 1364 | # @method new_aubio_pitch(method, buf_size, hop_size, samplerate) 1365 | # @param [String] method 1366 | # @param [Integer] buf_size 1367 | # @param [Integer] hop_size 1368 | # @param [Integer] samplerate 1369 | # @return [AubioPitchT] 1370 | # @scope class 1371 | attach_function :new_aubio_pitch, :new_aubio_pitch, %i[string uint uint uint], AubioPitchT 1372 | 1373 | # (Not documented) 1374 | # 1375 | # @method aubio_pitch_set_unit(o, mode) 1376 | # @param [AubioPitchT] o 1377 | # @param [String] mode 1378 | # @return [Integer] 1379 | # @scope class 1380 | attach_function :aubio_pitch_set_unit, :aubio_pitch_set_unit, [AubioPitchT, :string], :uint 1381 | 1382 | # (Not documented) 1383 | # 1384 | # @method aubio_pitch_set_silence(o, silence) 1385 | # @param [AubioPitchT] o 1386 | # @param [Float] silence 1387 | # @return [Integer] 1388 | # @scope class 1389 | attach_function :aubio_pitch_set_silence, :aubio_pitch_set_silence, [AubioPitchT, :float], :uint 1390 | 1391 | # (Not documented) 1392 | # 1393 | # @method aubio_pitch_get_silence(o) 1394 | # @param [AubioPitchT] o 1395 | # @return [Float] 1396 | # @scope class 1397 | attach_function :aubio_pitch_get_silence, :aubio_pitch_get_silence, [AubioPitchT], :float 1398 | 1399 | # (Not documented) 1400 | # 1401 | # @method aubio_pitch_get_confidence(o) 1402 | # @param [AubioPitchT] o 1403 | # @return [Float] 1404 | # @scope class 1405 | attach_function :aubio_pitch_get_confidence, :aubio_pitch_get_confidence, [AubioPitchT], :float 1406 | 1407 | # (Not documented) 1408 | class AubioOnsetT < FFI::Struct 1409 | layout :dummy, :char 1410 | end 1411 | 1412 | # (Not documented) 1413 | # 1414 | # @method new_aubio_onset(method, buf_size, hop_size, samplerate) 1415 | # @param [String] method 1416 | # @param [Integer] buf_size 1417 | # @param [Integer] hop_size 1418 | # @param [Integer] samplerate 1419 | # @return [AubioOnsetT] 1420 | # @scope class 1421 | attach_function :new_aubio_onset, :new_aubio_onset, %i[string uint uint uint], AubioOnsetT 1422 | 1423 | # (Not documented) 1424 | # 1425 | # @method aubio_onset_do(o, input, onset) 1426 | # @param [AubioOnsetT] o 1427 | # @param [FvecT] input 1428 | # @param [FvecT] onset 1429 | # @return [nil] 1430 | # @scope class 1431 | attach_function :aubio_onset_do, :aubio_onset_do, [AubioOnsetT, FvecT, FvecT], :void 1432 | 1433 | # (Not documented) 1434 | # 1435 | # @method aubio_onset_get_last(o) 1436 | # @param [AubioOnsetT] o 1437 | # @return [Integer] 1438 | # @scope class 1439 | attach_function :aubio_onset_get_last, :aubio_onset_get_last, [AubioOnsetT], :uint 1440 | 1441 | # (Not documented) 1442 | # 1443 | # @method aubio_onset_get_last_s(o) 1444 | # @param [AubioOnsetT] o 1445 | # @return [Float] 1446 | # @scope class 1447 | attach_function :aubio_onset_get_last_s, :aubio_onset_get_last_s, [AubioOnsetT], :float 1448 | 1449 | # (Not documented) 1450 | # 1451 | # @method aubio_onset_get_last_ms(o) 1452 | # @param [AubioOnsetT] o 1453 | # @return [Float] 1454 | # @scope class 1455 | attach_function :aubio_onset_get_last_ms, :aubio_onset_get_last_ms, [AubioOnsetT], :float 1456 | 1457 | # (Not documented) 1458 | # 1459 | # @method aubio_onset_set_silence(o, silence) 1460 | # @param [AubioOnsetT] o 1461 | # @param [Float] silence 1462 | # @return [Integer] 1463 | # @scope class 1464 | attach_function :aubio_onset_set_silence, :aubio_onset_set_silence, [AubioOnsetT, :float], :uint 1465 | 1466 | # (Not documented) 1467 | # 1468 | # @method aubio_onset_get_silence(o) 1469 | # @param [AubioOnsetT] o 1470 | # @return [Float] 1471 | # @scope class 1472 | attach_function :aubio_onset_get_silence, :aubio_onset_get_silence, [AubioOnsetT], :float 1473 | 1474 | # (Not documented) 1475 | # 1476 | # @method aubio_onset_get_descriptor(o) 1477 | # @param [AubioOnsetT] o 1478 | # @return [Float] 1479 | # @scope class 1480 | attach_function :aubio_onset_get_descriptor, :aubio_onset_get_descriptor, [AubioOnsetT], :float 1481 | 1482 | # (Not documented) 1483 | # 1484 | # @method aubio_onset_get_thresholded_descriptor(o) 1485 | # @param [AubioOnsetT] o 1486 | # @return [Float] 1487 | # @scope class 1488 | attach_function :aubio_onset_get_thresholded_descriptor, :aubio_onset_get_thresholded_descriptor, [AubioOnsetT], :float 1489 | 1490 | # (Not documented) 1491 | # 1492 | # @method aubio_onset_set_threshold(o, threshold) 1493 | # @param [AubioOnsetT] o 1494 | # @param [Float] threshold 1495 | # @return [Integer] 1496 | # @scope class 1497 | attach_function :aubio_onset_set_threshold, :aubio_onset_set_threshold, [AubioOnsetT, :float], :uint 1498 | 1499 | # (Not documented) 1500 | # 1501 | # @method aubio_onset_set_minioi(o, minioi) 1502 | # @param [AubioOnsetT] o 1503 | # @param [Integer] minioi 1504 | # @return [Integer] 1505 | # @scope class 1506 | attach_function :aubio_onset_set_minioi, :aubio_onset_set_minioi, [AubioOnsetT, :uint], :uint 1507 | 1508 | # (Not documented) 1509 | # 1510 | # @method aubio_onset_set_minioi_s(o, minioi) 1511 | # @param [AubioOnsetT] o 1512 | # @param [Float] minioi 1513 | # @return [Integer] 1514 | # @scope class 1515 | attach_function :aubio_onset_set_minioi_s, :aubio_onset_set_minioi_s, [AubioOnsetT, :float], :uint 1516 | 1517 | # (Not documented) 1518 | # 1519 | # @method aubio_onset_set_minioi_ms(o, minioi) 1520 | # @param [AubioOnsetT] o 1521 | # @param [Float] minioi 1522 | # @return [Integer] 1523 | # @scope class 1524 | attach_function :aubio_onset_set_minioi_ms, :aubio_onset_set_minioi_ms, [AubioOnsetT, :float], :uint 1525 | 1526 | # (Not documented) 1527 | # 1528 | # @method aubio_onset_set_delay(o, delay) 1529 | # @param [AubioOnsetT] o 1530 | # @param [Integer] delay 1531 | # @return [Integer] 1532 | # @scope class 1533 | attach_function :aubio_onset_set_delay, :aubio_onset_set_delay, [AubioOnsetT, :uint], :uint 1534 | 1535 | # (Not documented) 1536 | # 1537 | # @method aubio_onset_set_delay_s(o, delay) 1538 | # @param [AubioOnsetT] o 1539 | # @param [Float] delay 1540 | # @return [Integer] 1541 | # @scope class 1542 | attach_function :aubio_onset_set_delay_s, :aubio_onset_set_delay_s, [AubioOnsetT, :float], :uint 1543 | 1544 | # (Not documented) 1545 | # 1546 | # @method aubio_onset_set_delay_ms(o, delay) 1547 | # @param [AubioOnsetT] o 1548 | # @param [Float] delay 1549 | # @return [Integer] 1550 | # @scope class 1551 | attach_function :aubio_onset_set_delay_ms, :aubio_onset_set_delay_ms, [AubioOnsetT, :float], :uint 1552 | 1553 | # (Not documented) 1554 | # 1555 | # @method aubio_onset_get_minioi(o) 1556 | # @param [AubioOnsetT] o 1557 | # @return [Integer] 1558 | # @scope class 1559 | attach_function :aubio_onset_get_minioi, :aubio_onset_get_minioi, [AubioOnsetT], :uint 1560 | 1561 | # (Not documented) 1562 | # 1563 | # @method aubio_onset_get_minioi_s(o) 1564 | # @param [AubioOnsetT] o 1565 | # @return [Float] 1566 | # @scope class 1567 | attach_function :aubio_onset_get_minioi_s, :aubio_onset_get_minioi_s, [AubioOnsetT], :float 1568 | 1569 | # (Not documented) 1570 | # 1571 | # @method aubio_onset_get_minioi_ms(o) 1572 | # @param [AubioOnsetT] o 1573 | # @return [Float] 1574 | # @scope class 1575 | attach_function :aubio_onset_get_minioi_ms, :aubio_onset_get_minioi_ms, [AubioOnsetT], :float 1576 | 1577 | # (Not documented) 1578 | # 1579 | # @method aubio_onset_get_delay(o) 1580 | # @param [AubioOnsetT] o 1581 | # @return [Integer] 1582 | # @scope class 1583 | attach_function :aubio_onset_get_delay, :aubio_onset_get_delay, [AubioOnsetT], :uint 1584 | 1585 | # (Not documented) 1586 | # 1587 | # @method aubio_onset_get_delay_s(o) 1588 | # @param [AubioOnsetT] o 1589 | # @return [Float] 1590 | # @scope class 1591 | attach_function :aubio_onset_get_delay_s, :aubio_onset_get_delay_s, [AubioOnsetT], :float 1592 | 1593 | # (Not documented) 1594 | # 1595 | # @method aubio_onset_get_delay_ms(o) 1596 | # @param [AubioOnsetT] o 1597 | # @return [Float] 1598 | # @scope class 1599 | attach_function :aubio_onset_get_delay_ms, :aubio_onset_get_delay_ms, [AubioOnsetT], :float 1600 | 1601 | # (Not documented) 1602 | # 1603 | # @method aubio_onset_get_threshold(o) 1604 | # @param [AubioOnsetT] o 1605 | # @return [Float] 1606 | # @scope class 1607 | attach_function :aubio_onset_get_threshold, :aubio_onset_get_threshold, [AubioOnsetT], :float 1608 | 1609 | # (Not documented) 1610 | # 1611 | # @method del_aubio_onset(o) 1612 | # @param [AubioOnsetT] o 1613 | # @return [nil] 1614 | # @scope class 1615 | attach_function :del_aubio_onset, :del_aubio_onset, [AubioOnsetT], :void 1616 | 1617 | # (Not documented) 1618 | class AubioTempoT < FFI::Struct 1619 | layout :dummy, :char 1620 | end 1621 | 1622 | # (Not documented) 1623 | # 1624 | # @method new_aubio_tempo(method, buf_size, hop_size, samplerate) 1625 | # @param [String] method 1626 | # @param [Integer] buf_size 1627 | # @param [Integer] hop_size 1628 | # @param [Integer] samplerate 1629 | # @return [AubioTempoT] 1630 | # @scope class 1631 | attach_function :new_aubio_tempo, :new_aubio_tempo, %i[string uint uint uint], AubioTempoT 1632 | 1633 | # (Not documented) 1634 | # 1635 | # @method aubio_tempo_do(o, input, tempo) 1636 | # @param [AubioTempoT] o 1637 | # @param [FvecT] input 1638 | # @param [FvecT] tempo 1639 | # @return [nil] 1640 | # @scope class 1641 | attach_function :aubio_tempo_do, :aubio_tempo_do, [AubioTempoT, FvecT, FvecT], :void 1642 | 1643 | # (Not documented) 1644 | # 1645 | # @method aubio_tempo_get_last(o) 1646 | # @param [AubioTempoT] o 1647 | # @return [Integer] 1648 | # @scope class 1649 | attach_function :aubio_tempo_get_last, :aubio_tempo_get_last, [AubioTempoT], :uint 1650 | 1651 | # (Not documented) 1652 | # 1653 | # @method aubio_tempo_get_last_s(o) 1654 | # @param [AubioTempoT] o 1655 | # @return [Float] 1656 | # @scope class 1657 | attach_function :aubio_tempo_get_last_s, :aubio_tempo_get_last_s, [AubioTempoT], :float 1658 | 1659 | # (Not documented) 1660 | # 1661 | # @method aubio_tempo_get_last_ms(o) 1662 | # @param [AubioTempoT] o 1663 | # @return [Float] 1664 | # @scope class 1665 | attach_function :aubio_tempo_get_last_ms, :aubio_tempo_get_last_ms, [AubioTempoT], :float 1666 | 1667 | # (Not documented) 1668 | # 1669 | # @method aubio_tempo_set_silence(o, silence) 1670 | # @param [AubioTempoT] o 1671 | # @param [Float] silence 1672 | # @return [Integer] 1673 | # @scope class 1674 | attach_function :aubio_tempo_set_silence, :aubio_tempo_set_silence, [AubioTempoT, :float], :uint 1675 | 1676 | # (Not documented) 1677 | # 1678 | # @method aubio_tempo_get_silence(o) 1679 | # @param [AubioTempoT] o 1680 | # @return [Float] 1681 | # @scope class 1682 | attach_function :aubio_tempo_get_silence, :aubio_tempo_get_silence, [AubioTempoT], :float 1683 | 1684 | # (Not documented) 1685 | # 1686 | # @method aubio_tempo_set_threshold(o, threshold) 1687 | # @param [AubioTempoT] o 1688 | # @param [Float] threshold 1689 | # @return [Integer] 1690 | # @scope class 1691 | attach_function :aubio_tempo_set_threshold, :aubio_tempo_set_threshold, [AubioTempoT, :float], :uint 1692 | 1693 | # (Not documented) 1694 | # 1695 | # @method aubio_tempo_get_threshold(o) 1696 | # @param [AubioTempoT] o 1697 | # @return [Float] 1698 | # @scope class 1699 | attach_function :aubio_tempo_get_threshold, :aubio_tempo_get_threshold, [AubioTempoT], :float 1700 | 1701 | # (Not documented) 1702 | # 1703 | # @method aubio_tempo_get_period(bt) 1704 | # @param [AubioTempoT] bt 1705 | # @return [Float] 1706 | # @scope class 1707 | attach_function :aubio_tempo_get_period, :aubio_tempo_get_period, [AubioTempoT], :float 1708 | 1709 | # (Not documented) 1710 | # 1711 | # @method aubio_tempo_get_period_s(bt) 1712 | # @param [AubioTempoT] bt 1713 | # @return [Float] 1714 | # @scope class 1715 | attach_function :aubio_tempo_get_period_s, :aubio_tempo_get_period_s, [AubioTempoT], :float 1716 | 1717 | # (Not documented) 1718 | # 1719 | # @method aubio_tempo_get_bpm(o) 1720 | # @param [AubioTempoT] o 1721 | # @return [Float] 1722 | # @scope class 1723 | attach_function :aubio_tempo_get_bpm, :aubio_tempo_get_bpm, [AubioTempoT], :float 1724 | 1725 | # (Not documented) 1726 | # 1727 | # @method aubio_tempo_get_confidence(o) 1728 | # @param [AubioTempoT] o 1729 | # @return [Float] 1730 | # @scope class 1731 | attach_function :aubio_tempo_get_confidence, :aubio_tempo_get_confidence, [AubioTempoT], :float 1732 | 1733 | # (Not documented) 1734 | # 1735 | # @method aubio_tempo_set_tatum_signature(o, signature) 1736 | # @param [AubioTempoT] o 1737 | # @param [Integer] signature 1738 | # @return [Integer] 1739 | # @scope class 1740 | attach_function :aubio_tempo_set_tatum_signature, :aubio_tempo_set_tatum_signature, [AubioTempoT, :uint], :uint 1741 | 1742 | # (Not documented) 1743 | # 1744 | # @method aubio_tempo_was_tatum(o) 1745 | # @param [AubioTempoT] o 1746 | # @return [Integer] 1747 | # @scope class 1748 | attach_function :aubio_tempo_was_tatum, :aubio_tempo_was_tatum, [AubioTempoT], :uint 1749 | 1750 | # (Not documented) 1751 | # 1752 | # @method aubio_tempo_get_last_tatum(o) 1753 | # @param [AubioTempoT] o 1754 | # @return [Float] 1755 | # @scope class 1756 | attach_function :aubio_tempo_get_last_tatum, :aubio_tempo_get_last_tatum, [AubioTempoT], :float 1757 | 1758 | # (Not documented) 1759 | # 1760 | # @method aubio_tempo_get_delay(o) 1761 | # @param [AubioTempoT] o 1762 | # @return [Integer] 1763 | # @scope class 1764 | attach_function :aubio_tempo_get_delay, :aubio_tempo_get_delay, [AubioTempoT], :uint 1765 | 1766 | # (Not documented) 1767 | # 1768 | # @method aubio_tempo_get_delay_s(o) 1769 | # @param [AubioTempoT] o 1770 | # @return [Float] 1771 | # @scope class 1772 | attach_function :aubio_tempo_get_delay_s, :aubio_tempo_get_delay_s, [AubioTempoT], :float 1773 | 1774 | # (Not documented) 1775 | # 1776 | # @method aubio_tempo_get_delay_ms(o) 1777 | # @param [AubioTempoT] o 1778 | # @return [Float] 1779 | # @scope class 1780 | attach_function :aubio_tempo_get_delay_ms, :aubio_tempo_get_delay_ms, [AubioTempoT], :float 1781 | 1782 | # (Not documented) 1783 | # 1784 | # @method aubio_tempo_set_delay(o, delay) 1785 | # @param [AubioTempoT] o 1786 | # @param [Integer] delay 1787 | # @return [Integer] 1788 | # @scope class 1789 | attach_function :aubio_tempo_set_delay, :aubio_tempo_set_delay, [AubioTempoT, :int], :uint 1790 | 1791 | # (Not documented) 1792 | # 1793 | # @method aubio_tempo_set_delay_s(o, delay) 1794 | # @param [AubioTempoT] o 1795 | # @param [Float] delay 1796 | # @return [Integer] 1797 | # @scope class 1798 | attach_function :aubio_tempo_set_delay_s, :aubio_tempo_set_delay_s, [AubioTempoT, :float], :uint 1799 | 1800 | # (Not documented) 1801 | # 1802 | # @method aubio_tempo_set_delay_ms(o, delay) 1803 | # @param [AubioTempoT] o 1804 | # @param [Float] delay 1805 | # @return [Integer] 1806 | # @scope class 1807 | attach_function :aubio_tempo_set_delay_ms, :aubio_tempo_set_delay_ms, [AubioTempoT, :float], :uint 1808 | 1809 | # (Not documented) 1810 | # 1811 | # @method del_aubio_tempo(o) 1812 | # @param [AubioTempoT] o 1813 | # @return [nil] 1814 | # @scope class 1815 | attach_function :del_aubio_tempo, :del_aubio_tempo, [AubioTempoT], :void 1816 | 1817 | # (Not documented) 1818 | class AubioNotesT < FFI::Struct 1819 | layout :dummy, :char 1820 | end 1821 | 1822 | # (Not documented) 1823 | # 1824 | # @method new_aubio_notes(method, buf_size, hop_size, samplerate) 1825 | # @param [String] method 1826 | # @param [Integer] buf_size 1827 | # @param [Integer] hop_size 1828 | # @param [Integer] samplerate 1829 | # @return [AubioNotesT] 1830 | # @scope class 1831 | attach_function :new_aubio_notes, :new_aubio_notes, %i[string uint uint uint], AubioNotesT 1832 | 1833 | # (Not documented) 1834 | # 1835 | # @method del_aubio_notes(o) 1836 | # @param [AubioNotesT] o 1837 | # @return [nil] 1838 | # @scope class 1839 | attach_function :del_aubio_notes, :del_aubio_notes, [AubioNotesT], :void 1840 | 1841 | # (Not documented) 1842 | # 1843 | # @method aubio_notes_do(o, input, output) 1844 | # @param [AubioNotesT] o 1845 | # @param [FvecT] input 1846 | # @param [FvecT] output 1847 | # @return [nil] 1848 | # @scope class 1849 | attach_function :aubio_notes_do, :aubio_notes_do, [AubioNotesT, FvecT, FvecT], :void 1850 | 1851 | # (Not documented) 1852 | # 1853 | # @method aubio_notes_set_silence(o, silence) 1854 | # @param [AubioNotesT] o 1855 | # @param [Float] silence 1856 | # @return [Integer] 1857 | # @scope class 1858 | attach_function :aubio_notes_set_silence, :aubio_notes_set_silence, [AubioNotesT, :float], :uint 1859 | 1860 | # (Not documented) 1861 | # 1862 | # @method aubio_notes_get_silence(o) 1863 | # @param [AubioNotesT] o 1864 | # @return [Float] 1865 | # @scope class 1866 | attach_function :aubio_notes_get_silence, :aubio_notes_get_silence, [AubioNotesT], :float 1867 | 1868 | # (Not documented) 1869 | # 1870 | # @method aubio_notes_get_minioi_ms(o) 1871 | # @param [AubioNotesT] o 1872 | # @return [Float] 1873 | # @scope class 1874 | attach_function :aubio_notes_get_minioi_ms, :aubio_notes_get_minioi_ms, [AubioNotesT], :float 1875 | 1876 | # (Not documented) 1877 | # 1878 | # @method aubio_notes_set_minioi_ms(o, minioi_ms) 1879 | # @param [AubioNotesT] o 1880 | # @param [Float] minioi_ms 1881 | # @return [Integer] 1882 | # @scope class 1883 | attach_function :aubio_notes_set_minioi_ms, :aubio_notes_set_minioi_ms, [AubioNotesT, :float], :uint 1884 | 1885 | # (Not documented) 1886 | class AubioSourceT < FFI::Struct 1887 | layout :dummy, :char 1888 | end 1889 | 1890 | # (Not documented) 1891 | # 1892 | # @method new_aubio_source(uri, samplerate, hop_size) 1893 | # @param [String] uri 1894 | # @param [Integer] samplerate 1895 | # @param [Integer] hop_size 1896 | # @return [AubioSourceT] 1897 | # @scope class 1898 | attach_function :new_aubio_source, :new_aubio_source, %i[string uint uint], AubioSourceT 1899 | 1900 | # (Not documented) 1901 | # 1902 | # @method aubio_source_do(s, read_to, read) 1903 | # @param [AubioSourceT] s 1904 | # @param [FvecT] read_to 1905 | # @param [FFI::Pointer(*UintT)] read 1906 | # @return [nil] 1907 | # @scope class 1908 | attach_function :aubio_source_do, :aubio_source_do, [AubioSourceT, FvecT, :pointer], :void 1909 | 1910 | # (Not documented) 1911 | # 1912 | # @method aubio_source_do_multi(s, read_to, read) 1913 | # @param [AubioSourceT] s 1914 | # @param [FmatT] read_to 1915 | # @param [FFI::Pointer(*UintT)] read 1916 | # @return [nil] 1917 | # @scope class 1918 | attach_function :aubio_source_do_multi, :aubio_source_do_multi, [AubioSourceT, FmatT, :pointer], :void 1919 | 1920 | # (Not documented) 1921 | # 1922 | # @method aubio_source_get_samplerate(s) 1923 | # @param [AubioSourceT] s 1924 | # @return [Integer] 1925 | # @scope class 1926 | attach_function :aubio_source_get_samplerate, :aubio_source_get_samplerate, [AubioSourceT], :uint 1927 | 1928 | # (Not documented) 1929 | # 1930 | # @method aubio_source_get_channels(s) 1931 | # @param [AubioSourceT] s 1932 | # @return [Integer] 1933 | # @scope class 1934 | attach_function :aubio_source_get_channels, :aubio_source_get_channels, [AubioSourceT], :uint 1935 | 1936 | # (Not documented) 1937 | # 1938 | # @method aubio_source_seek(s, pos) 1939 | # @param [AubioSourceT] s 1940 | # @param [Integer] pos 1941 | # @return [Integer] 1942 | # @scope class 1943 | attach_function :aubio_source_seek, :aubio_source_seek, [AubioSourceT, :uint], :uint 1944 | 1945 | # (Not documented) 1946 | # 1947 | # @method aubio_source_get_duration(s) 1948 | # @param [AubioSourceT] s 1949 | # @return [Integer] 1950 | # @scope class 1951 | attach_function :aubio_source_get_duration, :aubio_source_get_duration, [AubioSourceT], :uint 1952 | 1953 | # (Not documented) 1954 | # 1955 | # @method aubio_source_close(s) 1956 | # @param [AubioSourceT] s 1957 | # @return [Integer] 1958 | # @scope class 1959 | attach_function :aubio_source_close, :aubio_source_close, [AubioSourceT], :uint 1960 | 1961 | # (Not documented) 1962 | # 1963 | # @method del_aubio_source(s) 1964 | # @param [AubioSourceT] s 1965 | # @return [nil] 1966 | # @scope class 1967 | attach_function :del_aubio_source, :del_aubio_source, [AubioSourceT], :void 1968 | 1969 | # (Not documented) 1970 | class AubioSinkT < FFI::Struct 1971 | layout :dummy, :char 1972 | end 1973 | 1974 | # (Not documented) 1975 | # 1976 | # @method new_aubio_sink(uri, samplerate) 1977 | # @param [String] uri 1978 | # @param [Integer] samplerate 1979 | # @return [AubioSinkT] 1980 | # @scope class 1981 | attach_function :new_aubio_sink, :new_aubio_sink, %i[string uint], AubioSinkT 1982 | 1983 | # (Not documented) 1984 | # 1985 | # @method aubio_sink_preset_samplerate(s, samplerate) 1986 | # @param [AubioSinkT] s 1987 | # @param [Integer] samplerate 1988 | # @return [Integer] 1989 | # @scope class 1990 | attach_function :aubio_sink_preset_samplerate, :aubio_sink_preset_samplerate, [AubioSinkT, :uint], :uint 1991 | 1992 | # (Not documented) 1993 | # 1994 | # @method aubio_sink_preset_channels(s, channels) 1995 | # @param [AubioSinkT] s 1996 | # @param [Integer] channels 1997 | # @return [Integer] 1998 | # @scope class 1999 | attach_function :aubio_sink_preset_channels, :aubio_sink_preset_channels, [AubioSinkT, :uint], :uint 2000 | 2001 | # (Not documented) 2002 | # 2003 | # @method aubio_sink_get_samplerate(s) 2004 | # @param [AubioSinkT] s 2005 | # @return [Integer] 2006 | # @scope class 2007 | attach_function :aubio_sink_get_samplerate, :aubio_sink_get_samplerate, [AubioSinkT], :uint 2008 | 2009 | # (Not documented) 2010 | # 2011 | # @method aubio_sink_get_channels(s) 2012 | # @param [AubioSinkT] s 2013 | # @return [Integer] 2014 | # @scope class 2015 | attach_function :aubio_sink_get_channels, :aubio_sink_get_channels, [AubioSinkT], :uint 2016 | 2017 | # (Not documented) 2018 | # 2019 | # @method aubio_sink_do(s, write_data, write) 2020 | # @param [AubioSinkT] s 2021 | # @param [FvecT] write_data 2022 | # @param [Integer] write 2023 | # @return [nil] 2024 | # @scope class 2025 | attach_function :aubio_sink_do, :aubio_sink_do, [AubioSinkT, FvecT, :uint], :void 2026 | 2027 | # (Not documented) 2028 | # 2029 | # @method aubio_sink_do_multi(s, write_data, write) 2030 | # @param [AubioSinkT] s 2031 | # @param [FmatT] write_data 2032 | # @param [Integer] write 2033 | # @return [nil] 2034 | # @scope class 2035 | attach_function :aubio_sink_do_multi, :aubio_sink_do_multi, [AubioSinkT, FmatT, :uint], :void 2036 | 2037 | # (Not documented) 2038 | # 2039 | # @method aubio_sink_close(s) 2040 | # @param [AubioSinkT] s 2041 | # @return [Integer] 2042 | # @scope class 2043 | attach_function :aubio_sink_close, :aubio_sink_close, [AubioSinkT], :uint 2044 | 2045 | # (Not documented) 2046 | # 2047 | # @method del_aubio_sink(s) 2048 | # @param [AubioSinkT] s 2049 | # @return [nil] 2050 | # @scope class 2051 | attach_function :del_aubio_sink, :del_aubio_sink, [AubioSinkT], :void 2052 | 2053 | # (Not documented) 2054 | class AubioSamplerT < FFI::Struct 2055 | layout :dummy, :char 2056 | end 2057 | 2058 | # (Not documented) 2059 | # 2060 | # @method new_aubio_sampler(samplerate, hop_size) 2061 | # @param [Integer] samplerate 2062 | # @param [Integer] hop_size 2063 | # @return [AubioSamplerT] 2064 | # @scope class 2065 | attach_function :new_aubio_sampler, :new_aubio_sampler, %i[uint uint], AubioSamplerT 2066 | 2067 | # (Not documented) 2068 | # 2069 | # @method aubio_sampler_load(o, uri) 2070 | # @param [AubioSamplerT] o 2071 | # @param [String] uri 2072 | # @return [Integer] 2073 | # @scope class 2074 | attach_function :aubio_sampler_load, :aubio_sampler_load, [AubioSamplerT, :string], :uint 2075 | 2076 | # (Not documented) 2077 | # 2078 | # @method aubio_sampler_do(o, input, output) 2079 | # @param [AubioSamplerT] o 2080 | # @param [FvecT] input 2081 | # @param [FvecT] output 2082 | # @return [nil] 2083 | # @scope class 2084 | attach_function :aubio_sampler_do, :aubio_sampler_do, [AubioSamplerT, FvecT, FvecT], :void 2085 | 2086 | # (Not documented) 2087 | # 2088 | # @method aubio_sampler_do_multi(o, input, output) 2089 | # @param [AubioSamplerT] o 2090 | # @param [FmatT] input 2091 | # @param [FmatT] output 2092 | # @return [nil] 2093 | # @scope class 2094 | attach_function :aubio_sampler_do_multi, :aubio_sampler_do_multi, [AubioSamplerT, FmatT, FmatT], :void 2095 | 2096 | # (Not documented) 2097 | # 2098 | # @method aubio_sampler_get_playing(o) 2099 | # @param [AubioSamplerT] o 2100 | # @return [Integer] 2101 | # @scope class 2102 | attach_function :aubio_sampler_get_playing, :aubio_sampler_get_playing, [AubioSamplerT], :uint 2103 | 2104 | # (Not documented) 2105 | # 2106 | # @method aubio_sampler_set_playing(o, playing) 2107 | # @param [AubioSamplerT] o 2108 | # @param [Integer] playing 2109 | # @return [Integer] 2110 | # @scope class 2111 | attach_function :aubio_sampler_set_playing, :aubio_sampler_set_playing, [AubioSamplerT, :uint], :uint 2112 | 2113 | # (Not documented) 2114 | # 2115 | # @method aubio_sampler_play(o) 2116 | # @param [AubioSamplerT] o 2117 | # @return [Integer] 2118 | # @scope class 2119 | attach_function :aubio_sampler_play, :aubio_sampler_play, [AubioSamplerT], :uint 2120 | 2121 | # (Not documented) 2122 | # 2123 | # @method aubio_sampler_stop(o) 2124 | # @param [AubioSamplerT] o 2125 | # @return [Integer] 2126 | # @scope class 2127 | attach_function :aubio_sampler_stop, :aubio_sampler_stop, [AubioSamplerT], :uint 2128 | 2129 | # (Not documented) 2130 | # 2131 | # @method del_aubio_sampler(o) 2132 | # @param [AubioSamplerT] o 2133 | # @return [nil] 2134 | # @scope class 2135 | attach_function :del_aubio_sampler, :del_aubio_sampler, [AubioSamplerT], :void 2136 | 2137 | # (Not documented) 2138 | class AubioWavetableT < FFI::Struct 2139 | layout :dummy, :char 2140 | end 2141 | 2142 | # (Not documented) 2143 | # 2144 | # @method new_aubio_wavetable(samplerate, hop_size) 2145 | # @param [Integer] samplerate 2146 | # @param [Integer] hop_size 2147 | # @return [AubioWavetableT] 2148 | # @scope class 2149 | attach_function :new_aubio_wavetable, :new_aubio_wavetable, %i[uint uint], AubioWavetableT 2150 | 2151 | # (Not documented) 2152 | # 2153 | # @method aubio_wavetable_load(o, uri) 2154 | # @param [AubioWavetableT] o 2155 | # @param [String] uri 2156 | # @return [Integer] 2157 | # @scope class 2158 | attach_function :aubio_wavetable_load, :aubio_wavetable_load, [AubioWavetableT, :string], :uint 2159 | 2160 | # (Not documented) 2161 | # 2162 | # @method aubio_wavetable_do(o, input, output) 2163 | # @param [AubioWavetableT] o 2164 | # @param [FvecT] input 2165 | # @param [FvecT] output 2166 | # @return [nil] 2167 | # @scope class 2168 | attach_function :aubio_wavetable_do, :aubio_wavetable_do, [AubioWavetableT, FvecT, FvecT], :void 2169 | 2170 | # (Not documented) 2171 | # 2172 | # @method aubio_wavetable_do_multi(o, input, output) 2173 | # @param [AubioWavetableT] o 2174 | # @param [FmatT] input 2175 | # @param [FmatT] output 2176 | # @return [nil] 2177 | # @scope class 2178 | attach_function :aubio_wavetable_do_multi, :aubio_wavetable_do_multi, [AubioWavetableT, FmatT, FmatT], :void 2179 | 2180 | # (Not documented) 2181 | # 2182 | # @method aubio_wavetable_get_playing(o) 2183 | # @param [AubioWavetableT] o 2184 | # @return [Integer] 2185 | # @scope class 2186 | attach_function :aubio_wavetable_get_playing, :aubio_wavetable_get_playing, [AubioWavetableT], :uint 2187 | 2188 | # (Not documented) 2189 | # 2190 | # @method aubio_wavetable_set_playing(o, playing) 2191 | # @param [AubioWavetableT] o 2192 | # @param [Integer] playing 2193 | # @return [Integer] 2194 | # @scope class 2195 | attach_function :aubio_wavetable_set_playing, :aubio_wavetable_set_playing, [AubioWavetableT, :uint], :uint 2196 | 2197 | # (Not documented) 2198 | # 2199 | # @method aubio_wavetable_play(o) 2200 | # @param [AubioWavetableT] o 2201 | # @return [Integer] 2202 | # @scope class 2203 | attach_function :aubio_wavetable_play, :aubio_wavetable_play, [AubioWavetableT], :uint 2204 | 2205 | # (Not documented) 2206 | # 2207 | # @method aubio_wavetable_stop(o) 2208 | # @param [AubioWavetableT] o 2209 | # @return [Integer] 2210 | # @scope class 2211 | attach_function :aubio_wavetable_stop, :aubio_wavetable_stop, [AubioWavetableT], :uint 2212 | 2213 | # (Not documented) 2214 | # 2215 | # @method aubio_wavetable_set_freq(o, freq) 2216 | # @param [AubioWavetableT] o 2217 | # @param [Float] freq 2218 | # @return [Integer] 2219 | # @scope class 2220 | attach_function :aubio_wavetable_set_freq, :aubio_wavetable_set_freq, [AubioWavetableT, :float], :uint 2221 | 2222 | # (Not documented) 2223 | # 2224 | # @method aubio_wavetable_get_freq(o) 2225 | # @param [AubioWavetableT] o 2226 | # @return [Float] 2227 | # @scope class 2228 | attach_function :aubio_wavetable_get_freq, :aubio_wavetable_get_freq, [AubioWavetableT], :float 2229 | 2230 | # (Not documented) 2231 | # 2232 | # @method aubio_wavetable_set_amp(o, amp) 2233 | # @param [AubioWavetableT] o 2234 | # @param [Float] amp 2235 | # @return [Integer] 2236 | # @scope class 2237 | attach_function :aubio_wavetable_set_amp, :aubio_wavetable_set_amp, [AubioWavetableT, :float], :uint 2238 | 2239 | # (Not documented) 2240 | # 2241 | # @method aubio_wavetable_get_amp(o) 2242 | # @param [AubioWavetableT] o 2243 | # @return [Float] 2244 | # @scope class 2245 | attach_function :aubio_wavetable_get_amp, :aubio_wavetable_get_amp, [AubioWavetableT], :float 2246 | 2247 | # (Not documented) 2248 | # 2249 | # @method del_aubio_wavetable(o) 2250 | # @param [AubioWavetableT] o 2251 | # @return [nil] 2252 | # @scope class 2253 | attach_function :del_aubio_wavetable, :del_aubio_wavetable, [AubioWavetableT], :void 2254 | 2255 | # (Not documented) 2256 | class AubioParameterT < FFI::Struct 2257 | layout :dummy, :char 2258 | end 2259 | 2260 | # (Not documented) 2261 | # 2262 | # @method new_aubio_parameter(min_value, max_value, steps) 2263 | # @param [Float] min_value 2264 | # @param [Float] max_value 2265 | # @param [Integer] steps 2266 | # @return [AubioParameterT] 2267 | # @scope class 2268 | attach_function :new_aubio_parameter, :new_aubio_parameter, %i[float float uint], AubioParameterT 2269 | 2270 | # (Not documented) 2271 | # 2272 | # @method aubio_parameter_set_target_value(param, value) 2273 | # @param [AubioParameterT] param 2274 | # @param [Float] value 2275 | # @return [Integer] 2276 | # @scope class 2277 | attach_function :aubio_parameter_set_target_value, :aubio_parameter_set_target_value, [AubioParameterT, :float], :uint 2278 | 2279 | # (Not documented) 2280 | # 2281 | # @method aubio_parameter_get_next_value(param) 2282 | # @param [AubioParameterT] param 2283 | # @return [Float] 2284 | # @scope class 2285 | attach_function :aubio_parameter_get_next_value, :aubio_parameter_get_next_value, [AubioParameterT], :float 2286 | 2287 | # (Not documented) 2288 | # 2289 | # @method aubio_parameter_get_current_value(param) 2290 | # @param [AubioParameterT] param 2291 | # @return [Float] 2292 | # @scope class 2293 | attach_function :aubio_parameter_get_current_value, :aubio_parameter_get_current_value, [AubioParameterT], :float 2294 | 2295 | # (Not documented) 2296 | # 2297 | # @method aubio_parameter_set_current_value(param, value) 2298 | # @param [AubioParameterT] param 2299 | # @param [Float] value 2300 | # @return [Integer] 2301 | # @scope class 2302 | attach_function :aubio_parameter_set_current_value, :aubio_parameter_set_current_value, [AubioParameterT, :float], :uint 2303 | 2304 | # (Not documented) 2305 | # 2306 | # @method aubio_parameter_set_steps(param, steps) 2307 | # @param [AubioParameterT] param 2308 | # @param [Integer] steps 2309 | # @return [Integer] 2310 | # @scope class 2311 | attach_function :aubio_parameter_set_steps, :aubio_parameter_set_steps, [AubioParameterT, :uint], :uint 2312 | 2313 | # (Not documented) 2314 | # 2315 | # @method aubio_parameter_get_steps(param) 2316 | # @param [AubioParameterT] param 2317 | # @return [Integer] 2318 | # @scope class 2319 | attach_function :aubio_parameter_get_steps, :aubio_parameter_get_steps, [AubioParameterT], :uint 2320 | 2321 | # (Not documented) 2322 | # 2323 | # @method aubio_parameter_set_min_value(param, min_value) 2324 | # @param [AubioParameterT] param 2325 | # @param [Float] min_value 2326 | # @return [Integer] 2327 | # @scope class 2328 | attach_function :aubio_parameter_set_min_value, :aubio_parameter_set_min_value, [AubioParameterT, :float], :uint 2329 | 2330 | # (Not documented) 2331 | # 2332 | # @method aubio_parameter_get_min_value(param) 2333 | # @param [AubioParameterT] param 2334 | # @return [Float] 2335 | # @scope class 2336 | attach_function :aubio_parameter_get_min_value, :aubio_parameter_get_min_value, [AubioParameterT], :float 2337 | 2338 | # (Not documented) 2339 | # 2340 | # @method aubio_parameter_set_max_value(param, max_value) 2341 | # @param [AubioParameterT] param 2342 | # @param [Float] max_value 2343 | # @return [Integer] 2344 | # @scope class 2345 | attach_function :aubio_parameter_set_max_value, :aubio_parameter_set_max_value, [AubioParameterT, :float], :uint 2346 | 2347 | # (Not documented) 2348 | # 2349 | # @method aubio_parameter_get_max_value(param) 2350 | # @param [AubioParameterT] param 2351 | # @return [Float] 2352 | # @scope class 2353 | attach_function :aubio_parameter_get_max_value, :aubio_parameter_get_max_value, [AubioParameterT], :float 2354 | 2355 | # (Not documented) 2356 | # 2357 | # @method del_aubio_parameter(param) 2358 | # @param [AubioParameterT] param 2359 | # @return [nil] 2360 | # @scope class 2361 | attach_function :del_aubio_parameter, :del_aubio_parameter, [AubioParameterT], :void 2362 | 2363 | # (Not documented) 2364 | # 2365 | # This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:aubio_log_level). 2366 | # 2367 | # === Options: 2368 | # :err :: 2369 | # 2370 | # :inf :: 2371 | # < critical errors 2372 | # :msg :: 2373 | # < infos 2374 | # :dbg :: 2375 | # < general messages 2376 | # :wrn :: 2377 | # < debug messages 2378 | # :last_level :: 2379 | # < warnings 2380 | # 2381 | # @method _enum_aubio_log_level_ 2382 | # @return [Symbol] 2383 | # @scope class 2384 | enum :aubio_log_level, [ 2385 | :err, 0, 2386 | :inf, 1, 2387 | :msg, 2, 2388 | :dbg, 3, 2389 | :wrn, 4, 2390 | :last_level, 5 2391 | ] 2392 | 2393 | # (Not documented) 2394 | # 2395 | # This entry is only for documentation and no real method. 2396 | # 2397 | # @method _callback_aubio_log_function_t_(level, message, data) 2398 | # @param [Integer] level 2399 | # @param [String] message 2400 | # @param [FFI::Pointer(*Void)] data 2401 | # @return [Integer] 2402 | # @scope class 2403 | callback :aubio_log_function_t, %i[int string pointer], :int 2404 | 2405 | # (Not documented) 2406 | # 2407 | # @method aubio_log_set_function(fun, data) 2408 | # @param [Proc(_callback_aubio_log_function_t_)] fun 2409 | # @param [FFI::Pointer(*Void)] data 2410 | # @return [nil] 2411 | # @scope class 2412 | attach_function :aubio_log_set_function, :aubio_log_set_function, %i[aubio_log_function_t pointer], :void 2413 | 2414 | # (Not documented) 2415 | # 2416 | # @method aubio_log_set_level_function(level, fun, data) 2417 | # @param [Integer] level 2418 | # @param [Proc(_callback_aubio_log_function_t_)] fun 2419 | # @param [FFI::Pointer(*Void)] data 2420 | # @return [Proc(_callback_aubio_log_function_t_)] 2421 | # @scope class 2422 | attach_function :aubio_log_set_level_function, :aubio_log_set_level_function, %i[int aubio_log_function_t pointer], :aubio_log_function_t 2423 | 2424 | # (Not documented) 2425 | # 2426 | # @method aubio_log_reset() 2427 | # @return [nil] 2428 | # @scope class 2429 | attach_function :aubio_log_reset, :aubio_log_reset, [], :void 2430 | 2431 | # (Not documented) 2432 | class AubioAudioUnitT < FFI::Struct 2433 | layout :dummy, :char 2434 | end 2435 | 2436 | # (Not documented) 2437 | # 2438 | # @method new_aubio_audio_unit(samplerate, inchannels, outchannels, blocksize) 2439 | # @param [Integer] samplerate 2440 | # @param [Integer] inchannels 2441 | # @param [Integer] outchannels 2442 | # @param [Integer] blocksize 2443 | # @return [AubioAudioUnitT] 2444 | # @scope class 2445 | attach_function :new_aubio_audio_unit, :new_aubio_audio_unit, %i[uint uint uint uint], AubioAudioUnitT 2446 | 2447 | # (Not documented) 2448 | # 2449 | # This entry is only for documentation and no real method. 2450 | # 2451 | # @method _callback_aubio_device_callback_t_(uint_t, closure, ibuf, obuf) 2452 | # @param [Integer] uint_t 2453 | # @param [FFI::Pointer(*Void)] closure 2454 | # @param [FmatT] ibuf 2455 | # @param [FmatT] obuf 2456 | # @return [Integer] 2457 | # @scope class 2458 | callback :aubio_device_callback_t, [:uint, :pointer, FmatT, FmatT], :uint 2459 | 2460 | # (Not documented) 2461 | # 2462 | # @method aubio_audio_unit_set_callback(o, callback, closure) 2463 | # @param [AubioAudioUnitT] o 2464 | # @param [Proc(_callback_aubio_device_callback_t_)] callback 2465 | # @param [FFI::Pointer(*Void)] closure 2466 | # @return [Integer] 2467 | # @scope class 2468 | attach_function :aubio_audio_unit_set_callback, :aubio_audio_unit_set_callback, [AubioAudioUnitT, :aubio_device_callback_t, :pointer], :uint 2469 | 2470 | # (Not documented) 2471 | # 2472 | # @method aubio_audio_unit_set_verbose(o, verbose) 2473 | # @param [AubioAudioUnitT] o 2474 | # @param [Integer] verbose 2475 | # @return [Integer] 2476 | # @scope class 2477 | attach_function :aubio_audio_unit_set_verbose, :aubio_audio_unit_set_verbose, [AubioAudioUnitT, :uint], :int 2478 | 2479 | # (Not documented) 2480 | # 2481 | # @method aubio_audio_unit_set_preferred_latency(o, latency) 2482 | # @param [AubioAudioUnitT] o 2483 | # @param [Float] latency 2484 | # @return [Integer] 2485 | # @scope class 2486 | attach_function :aubio_audio_unit_set_preferred_latency, :aubio_audio_unit_set_preferred_latency, [AubioAudioUnitT, :float], :int 2487 | 2488 | # (Not documented) 2489 | # 2490 | # @method aubio_audio_unit_set_prevent_feedback(o, prevent_feedback) 2491 | # @param [AubioAudioUnitT] o 2492 | # @param [Integer] prevent_feedback 2493 | # @return [Integer] 2494 | # @scope class 2495 | attach_function :aubio_audio_unit_set_prevent_feedback, :aubio_audio_unit_set_prevent_feedback, [AubioAudioUnitT, :uint], :int 2496 | 2497 | # (Not documented) 2498 | # 2499 | # @method aubio_audio_unit_get_info(o) 2500 | # @param [AubioAudioUnitT] o 2501 | # @return [Integer] 2502 | # @scope class 2503 | attach_function :aubio_audio_unit_get_info, :aubio_audio_unit_get_info, [AubioAudioUnitT], :int 2504 | 2505 | # (Not documented) 2506 | # 2507 | # @method aubio_audio_unit_init(o) 2508 | # @param [AubioAudioUnitT] o 2509 | # @return [Integer] 2510 | # @scope class 2511 | attach_function :aubio_audio_unit_init, :aubio_audio_unit_init, [AubioAudioUnitT], :int 2512 | 2513 | # (Not documented) 2514 | # 2515 | # @method aubio_audio_unit_start(o) 2516 | # @param [AubioAudioUnitT] o 2517 | # @return [Integer] 2518 | # @scope class 2519 | attach_function :aubio_audio_unit_start, :aubio_audio_unit_start, [AubioAudioUnitT], :int 2520 | 2521 | # (Not documented) 2522 | # 2523 | # @method aubio_audio_unit_stop(o) 2524 | # @param [AubioAudioUnitT] o 2525 | # @return [Integer] 2526 | # @scope class 2527 | attach_function :aubio_audio_unit_stop, :aubio_audio_unit_stop, [AubioAudioUnitT], :int 2528 | 2529 | # (Not documented) 2530 | # 2531 | # @method del_aubio_audio_unit(o) 2532 | # @param [AubioAudioUnitT] o 2533 | # @return [Integer] 2534 | # @scope class 2535 | attach_function :del_aubio_audio_unit, :del_aubio_audio_unit, [AubioAudioUnitT], :uint 2536 | 2537 | # (Not documented) 2538 | # 2539 | # @method aubio_io_validate_samplerate(kind, path, samplerate) 2540 | # @param [String] kind 2541 | # @param [String] path 2542 | # @param [Integer] samplerate 2543 | # @return [Integer] 2544 | # @scope class 2545 | attach_function :aubio_io_validate_samplerate, :aubio_io_validate_samplerate, %i[string string uint], :uint 2546 | 2547 | # (Not documented) 2548 | # 2549 | # @method aubio_io_validate_channels(kind, path, channels) 2550 | # @param [String] kind 2551 | # @param [String] path 2552 | # @param [Integer] channels 2553 | # @return [Integer] 2554 | # @scope class 2555 | attach_function :aubio_io_validate_channels, :aubio_io_validate_channels, %i[string string uint], :uint 2556 | 2557 | # (Not documented) 2558 | class AubioSinkAppleAudioT < FFI::Struct 2559 | layout :dummy, :char 2560 | end 2561 | 2562 | # (Not documented) 2563 | # 2564 | # @method new_aubio_sink_apple_audio(uri, samplerate) 2565 | # @param [String] uri 2566 | # @param [Integer] samplerate 2567 | # @return [AubioSinkAppleAudioT] 2568 | # @scope class 2569 | attach_function :new_aubio_sink_apple_audio, :new_aubio_sink_apple_audio, %i[string uint], AubioSinkAppleAudioT 2570 | 2571 | # (Not documented) 2572 | # 2573 | # @method aubio_sink_apple_audio_preset_samplerate(s, samplerate) 2574 | # @param [AubioSinkAppleAudioT] s 2575 | # @param [Integer] samplerate 2576 | # @return [Integer] 2577 | # @scope class 2578 | attach_function :aubio_sink_apple_audio_preset_samplerate, :aubio_sink_apple_audio_preset_samplerate, [AubioSinkAppleAudioT, :uint], :uint 2579 | 2580 | # (Not documented) 2581 | # 2582 | # @method aubio_sink_apple_audio_preset_channels(s, channels) 2583 | # @param [AubioSinkAppleAudioT] s 2584 | # @param [Integer] channels 2585 | # @return [Integer] 2586 | # @scope class 2587 | attach_function :aubio_sink_apple_audio_preset_channels, :aubio_sink_apple_audio_preset_channels, [AubioSinkAppleAudioT, :uint], :uint 2588 | 2589 | # (Not documented) 2590 | # 2591 | # @method aubio_sink_apple_audio_get_samplerate(s) 2592 | # @param [AubioSinkAppleAudioT] s 2593 | # @return [Integer] 2594 | # @scope class 2595 | attach_function :aubio_sink_apple_audio_get_samplerate, :aubio_sink_apple_audio_get_samplerate, [AubioSinkAppleAudioT], :uint 2596 | 2597 | # (Not documented) 2598 | # 2599 | # @method aubio_sink_apple_audio_get_channels(s) 2600 | # @param [AubioSinkAppleAudioT] s 2601 | # @return [Integer] 2602 | # @scope class 2603 | attach_function :aubio_sink_apple_audio_get_channels, :aubio_sink_apple_audio_get_channels, [AubioSinkAppleAudioT], :uint 2604 | 2605 | # (Not documented) 2606 | # 2607 | # @method aubio_sink_apple_audio_do(s, write_data, write) 2608 | # @param [AubioSinkAppleAudioT] s 2609 | # @param [FvecT] write_data 2610 | # @param [Integer] write 2611 | # @return [nil] 2612 | # @scope class 2613 | attach_function :aubio_sink_apple_audio_do, :aubio_sink_apple_audio_do, [AubioSinkAppleAudioT, FvecT, :uint], :void 2614 | 2615 | # (Not documented) 2616 | # 2617 | # @method aubio_sink_apple_audio_do_multi(s, write_data, write) 2618 | # @param [AubioSinkAppleAudioT] s 2619 | # @param [FmatT] write_data 2620 | # @param [Integer] write 2621 | # @return [nil] 2622 | # @scope class 2623 | attach_function :aubio_sink_apple_audio_do_multi, :aubio_sink_apple_audio_do_multi, [AubioSinkAppleAudioT, FmatT, :uint], :void 2624 | 2625 | # (Not documented) 2626 | # 2627 | # @method aubio_sink_apple_audio_close(s) 2628 | # @param [AubioSinkAppleAudioT] s 2629 | # @return [Integer] 2630 | # @scope class 2631 | attach_function :aubio_sink_apple_audio_close, :aubio_sink_apple_audio_close, [AubioSinkAppleAudioT], :uint 2632 | 2633 | # (Not documented) 2634 | # 2635 | # @method del_aubio_sink_apple_audio(s) 2636 | # @param [AubioSinkAppleAudioT] s 2637 | # @return [nil] 2638 | # @scope class 2639 | attach_function :del_aubio_sink_apple_audio, :del_aubio_sink_apple_audio, [AubioSinkAppleAudioT], :void 2640 | 2641 | # (Not documented) 2642 | class AubioSinkSndfileT < FFI::Struct 2643 | layout :dummy, :char 2644 | end 2645 | 2646 | # (Not documented) 2647 | # 2648 | # @method new_aubio_sink_sndfile(uri, samplerate) 2649 | # @param [String] uri 2650 | # @param [Integer] samplerate 2651 | # @return [AubioSinkSndfileT] 2652 | # @scope class 2653 | attach_function :new_aubio_sink_sndfile, :new_aubio_sink_sndfile, %i[string uint], AubioSinkSndfileT 2654 | 2655 | # (Not documented) 2656 | # 2657 | # @method aubio_sink_sndfile_preset_samplerate(s, samplerate) 2658 | # @param [AubioSinkSndfileT] s 2659 | # @param [Integer] samplerate 2660 | # @return [Integer] 2661 | # @scope class 2662 | attach_function :aubio_sink_sndfile_preset_samplerate, :aubio_sink_sndfile_preset_samplerate, [AubioSinkSndfileT, :uint], :uint 2663 | 2664 | # (Not documented) 2665 | # 2666 | # @method aubio_sink_sndfile_preset_channels(s, channels) 2667 | # @param [AubioSinkSndfileT] s 2668 | # @param [Integer] channels 2669 | # @return [Integer] 2670 | # @scope class 2671 | attach_function :aubio_sink_sndfile_preset_channels, :aubio_sink_sndfile_preset_channels, [AubioSinkSndfileT, :uint], :uint 2672 | 2673 | # (Not documented) 2674 | # 2675 | # @method aubio_sink_sndfile_get_samplerate(s) 2676 | # @param [AubioSinkSndfileT] s 2677 | # @return [Integer] 2678 | # @scope class 2679 | attach_function :aubio_sink_sndfile_get_samplerate, :aubio_sink_sndfile_get_samplerate, [AubioSinkSndfileT], :uint 2680 | 2681 | # (Not documented) 2682 | # 2683 | # @method aubio_sink_sndfile_get_channels(s) 2684 | # @param [AubioSinkSndfileT] s 2685 | # @return [Integer] 2686 | # @scope class 2687 | attach_function :aubio_sink_sndfile_get_channels, :aubio_sink_sndfile_get_channels, [AubioSinkSndfileT], :uint 2688 | 2689 | # (Not documented) 2690 | # 2691 | # @method aubio_sink_sndfile_do(s, write_data, write) 2692 | # @param [AubioSinkSndfileT] s 2693 | # @param [FvecT] write_data 2694 | # @param [Integer] write 2695 | # @return [nil] 2696 | # @scope class 2697 | attach_function :aubio_sink_sndfile_do, :aubio_sink_sndfile_do, [AubioSinkSndfileT, FvecT, :uint], :void 2698 | 2699 | # (Not documented) 2700 | # 2701 | # @method aubio_sink_sndfile_do_multi(s, write_data, write) 2702 | # @param [AubioSinkSndfileT] s 2703 | # @param [FmatT] write_data 2704 | # @param [Integer] write 2705 | # @return [nil] 2706 | # @scope class 2707 | attach_function :aubio_sink_sndfile_do_multi, :aubio_sink_sndfile_do_multi, [AubioSinkSndfileT, FmatT, :uint], :void 2708 | 2709 | # (Not documented) 2710 | # 2711 | # @method aubio_sink_sndfile_close(s) 2712 | # @param [AubioSinkSndfileT] s 2713 | # @return [Integer] 2714 | # @scope class 2715 | attach_function :aubio_sink_sndfile_close, :aubio_sink_sndfile_close, [AubioSinkSndfileT], :uint 2716 | 2717 | # (Not documented) 2718 | # 2719 | # @method del_aubio_sink_sndfile(s) 2720 | # @param [AubioSinkSndfileT] s 2721 | # @return [nil] 2722 | # @scope class 2723 | attach_function :del_aubio_sink_sndfile, :del_aubio_sink_sndfile, [AubioSinkSndfileT], :void 2724 | 2725 | # (Not documented) 2726 | class AubioSinkWavwriteT < FFI::Struct 2727 | layout :dummy, :char 2728 | end 2729 | 2730 | # (Not documented) 2731 | # 2732 | # @method new_aubio_sink_wavwrite(uri, samplerate) 2733 | # @param [String] uri 2734 | # @param [Integer] samplerate 2735 | # @return [AubioSinkWavwriteT] 2736 | # @scope class 2737 | attach_function :new_aubio_sink_wavwrite, :new_aubio_sink_wavwrite, %i[string uint], AubioSinkWavwriteT 2738 | 2739 | # (Not documented) 2740 | # 2741 | # @method aubio_sink_wavwrite_preset_samplerate(s, samplerate) 2742 | # @param [AubioSinkWavwriteT] s 2743 | # @param [Integer] samplerate 2744 | # @return [Integer] 2745 | # @scope class 2746 | attach_function :aubio_sink_wavwrite_preset_samplerate, :aubio_sink_wavwrite_preset_samplerate, [AubioSinkWavwriteT, :uint], :uint 2747 | 2748 | # (Not documented) 2749 | # 2750 | # @method aubio_sink_wavwrite_preset_channels(s, channels) 2751 | # @param [AubioSinkWavwriteT] s 2752 | # @param [Integer] channels 2753 | # @return [Integer] 2754 | # @scope class 2755 | attach_function :aubio_sink_wavwrite_preset_channels, :aubio_sink_wavwrite_preset_channels, [AubioSinkWavwriteT, :uint], :uint 2756 | 2757 | # (Not documented) 2758 | # 2759 | # @method aubio_sink_wavwrite_get_samplerate(s) 2760 | # @param [AubioSinkWavwriteT] s 2761 | # @return [Integer] 2762 | # @scope class 2763 | attach_function :aubio_sink_wavwrite_get_samplerate, :aubio_sink_wavwrite_get_samplerate, [AubioSinkWavwriteT], :uint 2764 | 2765 | # (Not documented) 2766 | # 2767 | # @method aubio_sink_wavwrite_get_channels(s) 2768 | # @param [AubioSinkWavwriteT] s 2769 | # @return [Integer] 2770 | # @scope class 2771 | attach_function :aubio_sink_wavwrite_get_channels, :aubio_sink_wavwrite_get_channels, [AubioSinkWavwriteT], :uint 2772 | 2773 | # (Not documented) 2774 | # 2775 | # @method aubio_sink_wavwrite_do(s, write_data, write) 2776 | # @param [AubioSinkWavwriteT] s 2777 | # @param [FvecT] write_data 2778 | # @param [Integer] write 2779 | # @return [nil] 2780 | # @scope class 2781 | attach_function :aubio_sink_wavwrite_do, :aubio_sink_wavwrite_do, [AubioSinkWavwriteT, FvecT, :uint], :void 2782 | 2783 | # (Not documented) 2784 | # 2785 | # @method aubio_sink_wavwrite_do_multi(s, write_data, write) 2786 | # @param [AubioSinkWavwriteT] s 2787 | # @param [FmatT] write_data 2788 | # @param [Integer] write 2789 | # @return [nil] 2790 | # @scope class 2791 | attach_function :aubio_sink_wavwrite_do_multi, :aubio_sink_wavwrite_do_multi, [AubioSinkWavwriteT, FmatT, :uint], :void 2792 | 2793 | # (Not documented) 2794 | # 2795 | # @method aubio_sink_wavwrite_close(s) 2796 | # @param [AubioSinkWavwriteT] s 2797 | # @return [Integer] 2798 | # @scope class 2799 | attach_function :aubio_sink_wavwrite_close, :aubio_sink_wavwrite_close, [AubioSinkWavwriteT], :uint 2800 | 2801 | # (Not documented) 2802 | # 2803 | # @method del_aubio_sink_wavwrite(s) 2804 | # @param [AubioSinkWavwriteT] s 2805 | # @return [nil] 2806 | # @scope class 2807 | attach_function :del_aubio_sink_wavwrite, :del_aubio_sink_wavwrite, [AubioSinkWavwriteT], :void 2808 | 2809 | # (Not documented) 2810 | class AubioSourceAppleAudioT < FFI::Struct 2811 | layout :dummy, :char 2812 | end 2813 | 2814 | # (Not documented) 2815 | # 2816 | # @method new_aubio_source_apple_audio(uri, samplerate, hop_size) 2817 | # @param [String] uri 2818 | # @param [Integer] samplerate 2819 | # @param [Integer] hop_size 2820 | # @return [AubioSourceAppleAudioT] 2821 | # @scope class 2822 | attach_function :new_aubio_source_apple_audio, :new_aubio_source_apple_audio, %i[string uint uint], AubioSourceAppleAudioT 2823 | 2824 | # (Not documented) 2825 | # 2826 | # @method aubio_source_apple_audio_do(s, read_to, read) 2827 | # @param [AubioSourceAppleAudioT] s 2828 | # @param [FvecT] read_to 2829 | # @param [FFI::Pointer(*UintT)] read 2830 | # @return [nil] 2831 | # @scope class 2832 | attach_function :aubio_source_apple_audio_do, :aubio_source_apple_audio_do, [AubioSourceAppleAudioT, FvecT, :pointer], :void 2833 | 2834 | # (Not documented) 2835 | # 2836 | # @method aubio_source_apple_audio_do_multi(s, read_to, read) 2837 | # @param [AubioSourceAppleAudioT] s 2838 | # @param [FmatT] read_to 2839 | # @param [FFI::Pointer(*UintT)] read 2840 | # @return [nil] 2841 | # @scope class 2842 | attach_function :aubio_source_apple_audio_do_multi, :aubio_source_apple_audio_do_multi, [AubioSourceAppleAudioT, FmatT, :pointer], :void 2843 | 2844 | # (Not documented) 2845 | # 2846 | # @method aubio_source_apple_audio_get_samplerate(s) 2847 | # @param [AubioSourceAppleAudioT] s 2848 | # @return [Integer] 2849 | # @scope class 2850 | attach_function :aubio_source_apple_audio_get_samplerate, :aubio_source_apple_audio_get_samplerate, [AubioSourceAppleAudioT], :uint 2851 | 2852 | # (Not documented) 2853 | # 2854 | # @method aubio_source_apple_audio_get_channels(s) 2855 | # @param [AubioSourceAppleAudioT] s 2856 | # @return [Integer] 2857 | # @scope class 2858 | attach_function :aubio_source_apple_audio_get_channels, :aubio_source_apple_audio_get_channels, [AubioSourceAppleAudioT], :uint 2859 | 2860 | # (Not documented) 2861 | # 2862 | # @method aubio_source_apple_audio_get_duration(s) 2863 | # @param [AubioSourceAppleAudioT] s 2864 | # @return [Integer] 2865 | # @scope class 2866 | attach_function :aubio_source_apple_audio_get_duration, :aubio_source_apple_audio_get_duration, [AubioSourceAppleAudioT], :uint 2867 | 2868 | # (Not documented) 2869 | # 2870 | # @method aubio_source_apple_audio_seek(s, pos) 2871 | # @param [AubioSourceAppleAudioT] s 2872 | # @param [Integer] pos 2873 | # @return [Integer] 2874 | # @scope class 2875 | attach_function :aubio_source_apple_audio_seek, :aubio_source_apple_audio_seek, [AubioSourceAppleAudioT, :uint], :uint 2876 | 2877 | # (Not documented) 2878 | # 2879 | # @method aubio_source_apple_audio_close(s) 2880 | # @param [AubioSourceAppleAudioT] s 2881 | # @return [Integer] 2882 | # @scope class 2883 | attach_function :aubio_source_apple_audio_close, :aubio_source_apple_audio_close, [AubioSourceAppleAudioT], :uint 2884 | 2885 | # (Not documented) 2886 | # 2887 | # @method del_aubio_source_apple_audio(s) 2888 | # @param [AubioSourceAppleAudioT] s 2889 | # @return [nil] 2890 | # @scope class 2891 | attach_function :del_aubio_source_apple_audio, :del_aubio_source_apple_audio, [AubioSourceAppleAudioT], :void 2892 | 2893 | # (Not documented) 2894 | class AubioSourceAvcodecT < FFI::Struct 2895 | layout :dummy, :char 2896 | end 2897 | 2898 | # (Not documented) 2899 | # 2900 | # @method new_aubio_source_avcodec(uri, samplerate, hop_size) 2901 | # @param [String] uri 2902 | # @param [Integer] samplerate 2903 | # @param [Integer] hop_size 2904 | # @return [AubioSourceAvcodecT] 2905 | # @scope class 2906 | attach_function :new_aubio_source_avcodec, :new_aubio_source_avcodec, %i[string uint uint], AubioSourceAvcodecT 2907 | 2908 | # (Not documented) 2909 | # 2910 | # @method aubio_source_avcodec_do(s, read_to, read) 2911 | # @param [AubioSourceAvcodecT] s 2912 | # @param [FvecT] read_to 2913 | # @param [FFI::Pointer(*UintT)] read 2914 | # @return [nil] 2915 | # @scope class 2916 | attach_function :aubio_source_avcodec_do, :aubio_source_avcodec_do, [AubioSourceAvcodecT, FvecT, :pointer], :void 2917 | 2918 | # (Not documented) 2919 | # 2920 | # @method aubio_source_avcodec_do_multi(s, read_to, read) 2921 | # @param [AubioSourceAvcodecT] s 2922 | # @param [FmatT] read_to 2923 | # @param [FFI::Pointer(*UintT)] read 2924 | # @return [nil] 2925 | # @scope class 2926 | attach_function :aubio_source_avcodec_do_multi, :aubio_source_avcodec_do_multi, [AubioSourceAvcodecT, FmatT, :pointer], :void 2927 | 2928 | # (Not documented) 2929 | # 2930 | # @method aubio_source_avcodec_get_samplerate(s) 2931 | # @param [AubioSourceAvcodecT] s 2932 | # @return [Integer] 2933 | # @scope class 2934 | attach_function :aubio_source_avcodec_get_samplerate, :aubio_source_avcodec_get_samplerate, [AubioSourceAvcodecT], :uint 2935 | 2936 | # (Not documented) 2937 | # 2938 | # @method aubio_source_avcodec_get_channels(s) 2939 | # @param [AubioSourceAvcodecT] s 2940 | # @return [Integer] 2941 | # @scope class 2942 | attach_function :aubio_source_avcodec_get_channels, :aubio_source_avcodec_get_channels, [AubioSourceAvcodecT], :uint 2943 | 2944 | # (Not documented) 2945 | # 2946 | # @method aubio_source_avcodec_seek(s, pos) 2947 | # @param [AubioSourceAvcodecT] s 2948 | # @param [Integer] pos 2949 | # @return [Integer] 2950 | # @scope class 2951 | attach_function :aubio_source_avcodec_seek, :aubio_source_avcodec_seek, [AubioSourceAvcodecT, :uint], :uint 2952 | 2953 | # (Not documented) 2954 | # 2955 | # @method aubio_source_avcodec_get_duration(s) 2956 | # @param [AubioSourceAvcodecT] s 2957 | # @return [Integer] 2958 | # @scope class 2959 | attach_function :aubio_source_avcodec_get_duration, :aubio_source_avcodec_get_duration, [AubioSourceAvcodecT], :uint 2960 | 2961 | # (Not documented) 2962 | # 2963 | # @method aubio_source_avcodec_close(s) 2964 | # @param [AubioSourceAvcodecT] s 2965 | # @return [Integer] 2966 | # @scope class 2967 | attach_function :aubio_source_avcodec_close, :aubio_source_avcodec_close, [AubioSourceAvcodecT], :uint 2968 | 2969 | # (Not documented) 2970 | # 2971 | # @method del_aubio_source_avcodec(s) 2972 | # @param [AubioSourceAvcodecT] s 2973 | # @return [nil] 2974 | # @scope class 2975 | attach_function :del_aubio_source_avcodec, :del_aubio_source_avcodec, [AubioSourceAvcodecT], :void 2976 | 2977 | # (Not documented) 2978 | class AubioSourceSndfileT < FFI::Struct 2979 | layout :dummy, :char 2980 | end 2981 | 2982 | # (Not documented) 2983 | # 2984 | # @method new_aubio_source_sndfile(uri, samplerate, hop_size) 2985 | # @param [String] uri 2986 | # @param [Integer] samplerate 2987 | # @param [Integer] hop_size 2988 | # @return [AubioSourceSndfileT] 2989 | # @scope class 2990 | attach_function :new_aubio_source_sndfile, :new_aubio_source_sndfile, %i[string uint uint], AubioSourceSndfileT 2991 | 2992 | # (Not documented) 2993 | # 2994 | # @method aubio_source_sndfile_do(s, read_to, read) 2995 | # @param [AubioSourceSndfileT] s 2996 | # @param [FvecT] read_to 2997 | # @param [FFI::Pointer(*UintT)] read 2998 | # @return [nil] 2999 | # @scope class 3000 | attach_function :aubio_source_sndfile_do, :aubio_source_sndfile_do, [AubioSourceSndfileT, FvecT, :pointer], :void 3001 | 3002 | # (Not documented) 3003 | # 3004 | # @method aubio_source_sndfile_do_multi(s, read_to, read) 3005 | # @param [AubioSourceSndfileT] s 3006 | # @param [FmatT] read_to 3007 | # @param [FFI::Pointer(*UintT)] read 3008 | # @return [nil] 3009 | # @scope class 3010 | attach_function :aubio_source_sndfile_do_multi, :aubio_source_sndfile_do_multi, [AubioSourceSndfileT, FmatT, :pointer], :void 3011 | 3012 | # (Not documented) 3013 | # 3014 | # @method aubio_source_sndfile_get_samplerate(s) 3015 | # @param [AubioSourceSndfileT] s 3016 | # @return [Integer] 3017 | # @scope class 3018 | attach_function :aubio_source_sndfile_get_samplerate, :aubio_source_sndfile_get_samplerate, [AubioSourceSndfileT], :uint 3019 | 3020 | # (Not documented) 3021 | # 3022 | # @method aubio_source_sndfile_get_channels(s) 3023 | # @param [AubioSourceSndfileT] s 3024 | # @return [Integer] 3025 | # @scope class 3026 | attach_function :aubio_source_sndfile_get_channels, :aubio_source_sndfile_get_channels, [AubioSourceSndfileT], :uint 3027 | 3028 | # (Not documented) 3029 | # 3030 | # @method aubio_source_sndfile_seek(s, pos) 3031 | # @param [AubioSourceSndfileT] s 3032 | # @param [Integer] pos 3033 | # @return [Integer] 3034 | # @scope class 3035 | attach_function :aubio_source_sndfile_seek, :aubio_source_sndfile_seek, [AubioSourceSndfileT, :uint], :uint 3036 | 3037 | # (Not documented) 3038 | # 3039 | # @method aubio_source_sndfile_get_duration(s) 3040 | # @param [AubioSourceSndfileT] s 3041 | # @return [Integer] 3042 | # @scope class 3043 | attach_function :aubio_source_sndfile_get_duration, :aubio_source_sndfile_get_duration, [AubioSourceSndfileT], :uint 3044 | 3045 | # (Not documented) 3046 | # 3047 | # @method aubio_source_sndfile_close(s) 3048 | # @param [AubioSourceSndfileT] s 3049 | # @return [Integer] 3050 | # @scope class 3051 | attach_function :aubio_source_sndfile_close, :aubio_source_sndfile_close, [AubioSourceSndfileT], :uint 3052 | 3053 | # (Not documented) 3054 | # 3055 | # @method del_aubio_source_sndfile(s) 3056 | # @param [AubioSourceSndfileT] s 3057 | # @return [nil] 3058 | # @scope class 3059 | attach_function :del_aubio_source_sndfile, :del_aubio_source_sndfile, [AubioSourceSndfileT], :void 3060 | 3061 | # (Not documented) 3062 | class AubioSourceWavreadT < FFI::Struct 3063 | layout :dummy, :char 3064 | end 3065 | 3066 | # (Not documented) 3067 | # 3068 | # @method new_aubio_source_wavread(uri, samplerate, hop_size) 3069 | # @param [String] uri 3070 | # @param [Integer] samplerate 3071 | # @param [Integer] hop_size 3072 | # @return [AubioSourceWavreadT] 3073 | # @scope class 3074 | attach_function :new_aubio_source_wavread, :new_aubio_source_wavread, %i[string uint uint], AubioSourceWavreadT 3075 | 3076 | # (Not documented) 3077 | # 3078 | # @method aubio_source_wavread_do(s, read_to, read) 3079 | # @param [AubioSourceWavreadT] s 3080 | # @param [FvecT] read_to 3081 | # @param [FFI::Pointer(*UintT)] read 3082 | # @return [nil] 3083 | # @scope class 3084 | attach_function :aubio_source_wavread_do, :aubio_source_wavread_do, [AubioSourceWavreadT, FvecT, :pointer], :void 3085 | 3086 | # (Not documented) 3087 | # 3088 | # @method aubio_source_wavread_do_multi(s, read_to, read) 3089 | # @param [AubioSourceWavreadT] s 3090 | # @param [FmatT] read_to 3091 | # @param [FFI::Pointer(*UintT)] read 3092 | # @return [nil] 3093 | # @scope class 3094 | attach_function :aubio_source_wavread_do_multi, :aubio_source_wavread_do_multi, [AubioSourceWavreadT, FmatT, :pointer], :void 3095 | 3096 | # (Not documented) 3097 | # 3098 | # @method aubio_source_wavread_get_samplerate(s) 3099 | # @param [AubioSourceWavreadT] s 3100 | # @return [Integer] 3101 | # @scope class 3102 | attach_function :aubio_source_wavread_get_samplerate, :aubio_source_wavread_get_samplerate, [AubioSourceWavreadT], :uint 3103 | 3104 | # (Not documented) 3105 | # 3106 | # @method aubio_source_wavread_get_channels(s) 3107 | # @param [AubioSourceWavreadT] s 3108 | # @return [Integer] 3109 | # @scope class 3110 | attach_function :aubio_source_wavread_get_channels, :aubio_source_wavread_get_channels, [AubioSourceWavreadT], :uint 3111 | 3112 | # (Not documented) 3113 | # 3114 | # @method aubio_source_wavread_seek(s, pos) 3115 | # @param [AubioSourceWavreadT] s 3116 | # @param [Integer] pos 3117 | # @return [Integer] 3118 | # @scope class 3119 | attach_function :aubio_source_wavread_seek, :aubio_source_wavread_seek, [AubioSourceWavreadT, :uint], :uint 3120 | 3121 | # (Not documented) 3122 | # 3123 | # @method aubio_source_wavread_get_duration(s) 3124 | # @param [AubioSourceWavreadT] s 3125 | # @return [Integer] 3126 | # @scope class 3127 | attach_function :aubio_source_wavread_get_duration, :aubio_source_wavread_get_duration, [AubioSourceWavreadT], :uint 3128 | 3129 | # (Not documented) 3130 | # 3131 | # @method aubio_source_wavread_close(s) 3132 | # @param [AubioSourceWavreadT] s 3133 | # @return [Integer] 3134 | # @scope class 3135 | attach_function :aubio_source_wavread_close, :aubio_source_wavread_close, [AubioSourceWavreadT], :uint 3136 | 3137 | # (Not documented) 3138 | # 3139 | # @method del_aubio_source_wavread(s) 3140 | # @param [AubioSourceWavreadT] s 3141 | # @return [nil] 3142 | # @scope class 3143 | attach_function :del_aubio_source_wavread, :del_aubio_source_wavread, [AubioSourceWavreadT], :void 3144 | 3145 | # (Not documented) 3146 | # 3147 | # @method fvec_mean(s) 3148 | # @param [FvecT] s 3149 | # @return [Float] 3150 | # @scope class 3151 | attach_function :fvec_mean, :fvec_mean, [FvecT], :float 3152 | 3153 | # (Not documented) 3154 | # 3155 | # @method fvec_max(s) 3156 | # @param [FvecT] s 3157 | # @return [Float] 3158 | # @scope class 3159 | attach_function :fvec_max, :fvec_max, [FvecT], :float 3160 | 3161 | # (Not documented) 3162 | # 3163 | # @method fvec_min(s) 3164 | # @param [FvecT] s 3165 | # @return [Float] 3166 | # @scope class 3167 | attach_function :fvec_min, :fvec_min, [FvecT], :float 3168 | 3169 | # (Not documented) 3170 | # 3171 | # @method fvec_min_elem(s) 3172 | # @param [FvecT] s 3173 | # @return [Integer] 3174 | # @scope class 3175 | attach_function :fvec_min_elem, :fvec_min_elem, [FvecT], :uint 3176 | 3177 | # (Not documented) 3178 | # 3179 | # @method fvec_max_elem(s) 3180 | # @param [FvecT] s 3181 | # @return [Integer] 3182 | # @scope class 3183 | attach_function :fvec_max_elem, :fvec_max_elem, [FvecT], :uint 3184 | 3185 | # (Not documented) 3186 | # 3187 | # @method fvec_shift(v) 3188 | # @param [FvecT] v 3189 | # @return [nil] 3190 | # @scope class 3191 | attach_function :fvec_shift, :fvec_shift, [FvecT], :void 3192 | 3193 | # (Not documented) 3194 | # 3195 | # @method fvec_ishift(v) 3196 | # @param [FvecT] v 3197 | # @return [nil] 3198 | # @scope class 3199 | attach_function :fvec_ishift, :fvec_ishift, [FvecT], :void 3200 | 3201 | # (Not documented) 3202 | # 3203 | # @method fvec_sum(v) 3204 | # @param [FvecT] v 3205 | # @return [Float] 3206 | # @scope class 3207 | attach_function :fvec_sum, :fvec_sum, [FvecT], :float 3208 | 3209 | # (Not documented) 3210 | # 3211 | # @method fvec_local_hfc(v) 3212 | # @param [FvecT] v 3213 | # @return [Float] 3214 | # @scope class 3215 | attach_function :fvec_local_hfc, :fvec_local_hfc, [FvecT], :float 3216 | 3217 | # (Not documented) 3218 | # 3219 | # @method fvec_alpha_norm(v, p) 3220 | # @param [FvecT] v 3221 | # @param [Float] p 3222 | # @return [Float] 3223 | # @scope class 3224 | attach_function :fvec_alpha_norm, :fvec_alpha_norm, [FvecT, :float], :float 3225 | 3226 | # (Not documented) 3227 | # 3228 | # @method fvec_alpha_normalise(v, p) 3229 | # @param [FvecT] v 3230 | # @param [Float] p 3231 | # @return [nil] 3232 | # @scope class 3233 | attach_function :fvec_alpha_normalise, :fvec_alpha_normalise, [FvecT, :float], :void 3234 | 3235 | # (Not documented) 3236 | # 3237 | # @method fvec_add(v, c) 3238 | # @param [FvecT] v 3239 | # @param [Float] c 3240 | # @return [nil] 3241 | # @scope class 3242 | attach_function :fvec_add, :fvec_add, [FvecT, :float], :void 3243 | 3244 | # (Not documented) 3245 | # 3246 | # @method fvec_min_removal(v) 3247 | # @param [FvecT] v 3248 | # @return [nil] 3249 | # @scope class 3250 | attach_function :fvec_min_removal, :fvec_min_removal, [FvecT], :void 3251 | 3252 | # (Not documented) 3253 | # 3254 | # @method fvec_moving_thres(v, tmp, post, pre, pos) 3255 | # @param [FvecT] v 3256 | # @param [FvecT] tmp 3257 | # @param [Integer] post 3258 | # @param [Integer] pre 3259 | # @param [Integer] pos 3260 | # @return [Float] 3261 | # @scope class 3262 | attach_function :fvec_moving_thres, :fvec_moving_thres, [FvecT, FvecT, :uint, :uint, :uint], :float 3263 | 3264 | # (Not documented) 3265 | # 3266 | # @method fvec_adapt_thres(v, tmp, post, pre) 3267 | # @param [FvecT] v 3268 | # @param [FvecT] tmp 3269 | # @param [Integer] post 3270 | # @param [Integer] pre 3271 | # @return [nil] 3272 | # @scope class 3273 | attach_function :fvec_adapt_thres, :fvec_adapt_thres, [FvecT, FvecT, :uint, :uint], :void 3274 | 3275 | # (Not documented) 3276 | # 3277 | # @method fvec_median(v) 3278 | # @param [FvecT] v 3279 | # @return [Float] 3280 | # @scope class 3281 | attach_function :fvec_median, :fvec_median, [FvecT], :float 3282 | 3283 | # (Not documented) 3284 | # 3285 | # @method fvec_quadratic_peak_pos(x, p) 3286 | # @param [FvecT] x 3287 | # @param [Integer] p 3288 | # @return [Float] 3289 | # @scope class 3290 | attach_function :fvec_quadratic_peak_pos, :fvec_quadratic_peak_pos, [FvecT, :uint], :float 3291 | 3292 | # (Not documented) 3293 | # 3294 | # @method fvec_quadratic_peak_mag(x, p) 3295 | # @param [FvecT] x 3296 | # @param [Float] p 3297 | # @return [Float] 3298 | # @scope class 3299 | attach_function :fvec_quadratic_peak_mag, :fvec_quadratic_peak_mag, [FvecT, :float], :float 3300 | 3301 | # (Not documented) 3302 | # 3303 | # @method aubio_quadfrac(s0, s1, s2, pf) 3304 | # @param [Float] s0 3305 | # @param [Float] s1 3306 | # @param [Float] s2 3307 | # @param [Float] pf 3308 | # @return [Float] 3309 | # @scope class 3310 | attach_function :aubio_quadfrac, :aubio_quadfrac, %i[float float float float], :float 3311 | 3312 | # (Not documented) 3313 | # 3314 | # @method fvec_peakpick(v, p) 3315 | # @param [FvecT] v 3316 | # @param [Integer] p 3317 | # @return [Integer] 3318 | # @scope class 3319 | attach_function :fvec_peakpick, :fvec_peakpick, [FvecT, :uint], :uint 3320 | 3321 | # (Not documented) 3322 | # 3323 | # @method aubio_is_power_of_two(a) 3324 | # @param [Integer] a 3325 | # @return [Integer] 3326 | # @scope class 3327 | attach_function :aubio_is_power_of_two, :aubio_is_power_of_two, [:uint], :uint 3328 | 3329 | # (Not documented) 3330 | # 3331 | # @method aubio_next_power_of_two(a) 3332 | # @param [Integer] a 3333 | # @return [Integer] 3334 | # @scope class 3335 | attach_function :aubio_next_power_of_two, :aubio_next_power_of_two, [:uint], :uint 3336 | 3337 | # (Not documented) 3338 | # 3339 | # @method aubio_autocorr(input, output) 3340 | # @param [FvecT] input 3341 | # @param [FvecT] output 3342 | # @return [nil] 3343 | # @scope class 3344 | attach_function :aubio_autocorr, :aubio_autocorr, [FvecT, FvecT], :void 3345 | 3346 | # (Not documented) 3347 | class AubioPeakpickerT < FFI::Struct 3348 | layout :dummy, :char 3349 | end 3350 | 3351 | # (Not documented) 3352 | # 3353 | # @method new_aubio_peakpicker() 3354 | # @return [AubioPeakpickerT] 3355 | # @scope class 3356 | attach_function :new_aubio_peakpicker, :new_aubio_peakpicker, [], AubioPeakpickerT 3357 | 3358 | # (Not documented) 3359 | # 3360 | # @method aubio_peakpicker_do(p, in_, out) 3361 | # @param [AubioPeakpickerT] p 3362 | # @param [FvecT] in_ 3363 | # @param [FvecT] out 3364 | # @return [nil] 3365 | # @scope class 3366 | attach_function :aubio_peakpicker_do, :aubio_peakpicker_do, [AubioPeakpickerT, FvecT, FvecT], :void 3367 | 3368 | # (Not documented) 3369 | # 3370 | # @method del_aubio_peakpicker(p) 3371 | # @param [AubioPeakpickerT] p 3372 | # @return [nil] 3373 | # @scope class 3374 | attach_function :del_aubio_peakpicker, :del_aubio_peakpicker, [AubioPeakpickerT], :void 3375 | 3376 | # (Not documented) 3377 | # 3378 | # @method aubio_peakpicker_get_thresholded_input(p) 3379 | # @param [AubioPeakpickerT] p 3380 | # @return [FvecT] 3381 | # @scope class 3382 | attach_function :aubio_peakpicker_get_thresholded_input, :aubio_peakpicker_get_thresholded_input, [AubioPeakpickerT], FvecT 3383 | 3384 | # (Not documented) 3385 | # 3386 | # @method aubio_peakpicker_set_threshold(p, threshold) 3387 | # @param [AubioPeakpickerT] p 3388 | # @param [Float] threshold 3389 | # @return [Integer] 3390 | # @scope class 3391 | attach_function :aubio_peakpicker_set_threshold, :aubio_peakpicker_set_threshold, [AubioPeakpickerT, :float], :uint 3392 | 3393 | # (Not documented) 3394 | # 3395 | # @method aubio_peakpicker_get_threshold(p) 3396 | # @param [AubioPeakpickerT] p 3397 | # @return [Float] 3398 | # @scope class 3399 | attach_function :aubio_peakpicker_get_threshold, :aubio_peakpicker_get_threshold, [AubioPeakpickerT], :float 3400 | 3401 | # (Not documented) 3402 | class AubioPitchfcombT < FFI::Struct 3403 | layout :dummy, :char 3404 | end 3405 | 3406 | # (Not documented) 3407 | # 3408 | # @method aubio_pitchfcomb_do(p, input, output) 3409 | # @param [AubioPitchfcombT] p 3410 | # @param [FvecT] input 3411 | # @param [FvecT] output 3412 | # @return [nil] 3413 | # @scope class 3414 | attach_function :aubio_pitchfcomb_do, :aubio_pitchfcomb_do, [AubioPitchfcombT, FvecT, FvecT], :void 3415 | 3416 | # (Not documented) 3417 | # 3418 | # @method new_aubio_pitchfcomb(buf_size, hop_size) 3419 | # @param [Integer] buf_size 3420 | # @param [Integer] hop_size 3421 | # @return [AubioPitchfcombT] 3422 | # @scope class 3423 | attach_function :new_aubio_pitchfcomb, :new_aubio_pitchfcomb, %i[uint uint], AubioPitchfcombT 3424 | 3425 | # (Not documented) 3426 | # 3427 | # @method del_aubio_pitchfcomb(p) 3428 | # @param [AubioPitchfcombT] p 3429 | # @return [nil] 3430 | # @scope class 3431 | attach_function :del_aubio_pitchfcomb, :del_aubio_pitchfcomb, [AubioPitchfcombT], :void 3432 | 3433 | # (Not documented) 3434 | class AubioPitchmcombT < FFI::Struct 3435 | layout :dummy, :char 3436 | end 3437 | 3438 | # (Not documented) 3439 | # 3440 | # @method aubio_pitchmcomb_do(p, in_fftgrain, out_cands) 3441 | # @param [AubioPitchmcombT] p 3442 | # @param [CvecT] in_fftgrain 3443 | # @param [FvecT] out_cands 3444 | # @return [nil] 3445 | # @scope class 3446 | attach_function :aubio_pitchmcomb_do, :aubio_pitchmcomb_do, [AubioPitchmcombT, CvecT, FvecT], :void 3447 | 3448 | # (Not documented) 3449 | # 3450 | # @method new_aubio_pitchmcomb(buf_size, hop_size) 3451 | # @param [Integer] buf_size 3452 | # @param [Integer] hop_size 3453 | # @return [AubioPitchmcombT] 3454 | # @scope class 3455 | attach_function :new_aubio_pitchmcomb, :new_aubio_pitchmcomb, %i[uint uint], AubioPitchmcombT 3456 | 3457 | # (Not documented) 3458 | # 3459 | # @method del_aubio_pitchmcomb(p) 3460 | # @param [AubioPitchmcombT] p 3461 | # @return [nil] 3462 | # @scope class 3463 | attach_function :del_aubio_pitchmcomb, :del_aubio_pitchmcomb, [AubioPitchmcombT], :void 3464 | 3465 | # (Not documented) 3466 | class AubioPitchschmittT < FFI::Struct 3467 | layout :dummy, :char 3468 | end 3469 | 3470 | # (Not documented) 3471 | # 3472 | # @method aubio_pitchschmitt_do(p, samples_in, cands_out) 3473 | # @param [AubioPitchschmittT] p 3474 | # @param [FvecT] samples_in 3475 | # @param [FvecT] cands_out 3476 | # @return [nil] 3477 | # @scope class 3478 | attach_function :aubio_pitchschmitt_do, :aubio_pitchschmitt_do, [AubioPitchschmittT, FvecT, FvecT], :void 3479 | 3480 | # (Not documented) 3481 | # 3482 | # @method new_aubio_pitchschmitt(buf_size) 3483 | # @param [Integer] buf_size 3484 | # @return [AubioPitchschmittT] 3485 | # @scope class 3486 | attach_function :new_aubio_pitchschmitt, :new_aubio_pitchschmitt, [:uint], AubioPitchschmittT 3487 | 3488 | # (Not documented) 3489 | # 3490 | # @method del_aubio_pitchschmitt(p) 3491 | # @param [AubioPitchschmittT] p 3492 | # @return [nil] 3493 | # @scope class 3494 | attach_function :del_aubio_pitchschmitt, :del_aubio_pitchschmitt, [AubioPitchschmittT], :void 3495 | 3496 | # (Not documented) 3497 | class AubioPitchspecacfT < FFI::Struct 3498 | layout :dummy, :char 3499 | end 3500 | 3501 | # (Not documented) 3502 | # 3503 | # @method aubio_pitchspecacf_do(o, samples_in, cands_out) 3504 | # @param [AubioPitchspecacfT] o 3505 | # @param [FvecT] samples_in 3506 | # @param [FvecT] cands_out 3507 | # @return [nil] 3508 | # @scope class 3509 | attach_function :aubio_pitchspecacf_do, :aubio_pitchspecacf_do, [AubioPitchspecacfT, FvecT, FvecT], :void 3510 | 3511 | # (Not documented) 3512 | # 3513 | # @method new_aubio_pitchspecacf(buf_size) 3514 | # @param [Integer] buf_size 3515 | # @return [AubioPitchspecacfT] 3516 | # @scope class 3517 | attach_function :new_aubio_pitchspecacf, :new_aubio_pitchspecacf, [:uint], AubioPitchspecacfT 3518 | 3519 | # (Not documented) 3520 | # 3521 | # @method del_aubio_pitchspecacf(o) 3522 | # @param [AubioPitchspecacfT] o 3523 | # @return [nil] 3524 | # @scope class 3525 | attach_function :del_aubio_pitchspecacf, :del_aubio_pitchspecacf, [AubioPitchspecacfT], :void 3526 | 3527 | # (Not documented) 3528 | # 3529 | # @method aubio_pitchspecacf_get_tolerance(o) 3530 | # @param [AubioPitchspecacfT] o 3531 | # @return [Float] 3532 | # @scope class 3533 | attach_function :aubio_pitchspecacf_get_tolerance, :aubio_pitchspecacf_get_tolerance, [AubioPitchspecacfT], :float 3534 | 3535 | # (Not documented) 3536 | # 3537 | # @method aubio_pitchspecacf_set_tolerance(o, tol) 3538 | # @param [AubioPitchspecacfT] o 3539 | # @param [Float] tol 3540 | # @return [Integer] 3541 | # @scope class 3542 | attach_function :aubio_pitchspecacf_set_tolerance, :aubio_pitchspecacf_set_tolerance, [AubioPitchspecacfT, :float], :uint 3543 | 3544 | # (Not documented) 3545 | # 3546 | # @method aubio_pitchspecacf_get_confidence(o) 3547 | # @param [AubioPitchspecacfT] o 3548 | # @return [Float] 3549 | # @scope class 3550 | attach_function :aubio_pitchspecacf_get_confidence, :aubio_pitchspecacf_get_confidence, [AubioPitchspecacfT], :float 3551 | 3552 | # (Not documented) 3553 | class AubioPitchyinT < FFI::Struct 3554 | layout :dummy, :char 3555 | end 3556 | 3557 | # (Not documented) 3558 | # 3559 | # @method new_aubio_pitchyin(buf_size) 3560 | # @param [Integer] buf_size 3561 | # @return [AubioPitchyinT] 3562 | # @scope class 3563 | attach_function :new_aubio_pitchyin, :new_aubio_pitchyin, [:uint], AubioPitchyinT 3564 | 3565 | # (Not documented) 3566 | # 3567 | # @method del_aubio_pitchyin(o) 3568 | # @param [AubioPitchyinT] o 3569 | # @return [nil] 3570 | # @scope class 3571 | attach_function :del_aubio_pitchyin, :del_aubio_pitchyin, [AubioPitchyinT], :void 3572 | 3573 | # (Not documented) 3574 | # 3575 | # @method aubio_pitchyin_do(o, samples_in, cands_out) 3576 | # @param [AubioPitchyinT] o 3577 | # @param [FvecT] samples_in 3578 | # @param [FvecT] cands_out 3579 | # @return [nil] 3580 | # @scope class 3581 | attach_function :aubio_pitchyin_do, :aubio_pitchyin_do, [AubioPitchyinT, FvecT, FvecT], :void 3582 | 3583 | # (Not documented) 3584 | # 3585 | # @method aubio_pitchyin_set_tolerance(o, tol) 3586 | # @param [AubioPitchyinT] o 3587 | # @param [Float] tol 3588 | # @return [Integer] 3589 | # @scope class 3590 | attach_function :aubio_pitchyin_set_tolerance, :aubio_pitchyin_set_tolerance, [AubioPitchyinT, :float], :uint 3591 | 3592 | # (Not documented) 3593 | # 3594 | # @method aubio_pitchyin_get_tolerance(o) 3595 | # @param [AubioPitchyinT] o 3596 | # @return [Float] 3597 | # @scope class 3598 | attach_function :aubio_pitchyin_get_tolerance, :aubio_pitchyin_get_tolerance, [AubioPitchyinT], :float 3599 | 3600 | # (Not documented) 3601 | # 3602 | # @method aubio_pitchyin_get_confidence(o) 3603 | # @param [AubioPitchyinT] o 3604 | # @return [Float] 3605 | # @scope class 3606 | attach_function :aubio_pitchyin_get_confidence, :aubio_pitchyin_get_confidence, [AubioPitchyinT], :float 3607 | 3608 | # (Not documented) 3609 | class AubioPitchyinfftT < FFI::Struct 3610 | layout :dummy, :char 3611 | end 3612 | 3613 | # (Not documented) 3614 | # 3615 | # @method aubio_pitchyinfft_do(o, samples_in, cands_out) 3616 | # @param [AubioPitchyinfftT] o 3617 | # @param [FvecT] samples_in 3618 | # @param [FvecT] cands_out 3619 | # @return [nil] 3620 | # @scope class 3621 | attach_function :aubio_pitchyinfft_do, :aubio_pitchyinfft_do, [AubioPitchyinfftT, FvecT, FvecT], :void 3622 | 3623 | # (Not documented) 3624 | # 3625 | # @method new_aubio_pitchyinfft(samplerate, buf_size) 3626 | # @param [Integer] samplerate 3627 | # @param [Integer] buf_size 3628 | # @return [AubioPitchyinfftT] 3629 | # @scope class 3630 | attach_function :new_aubio_pitchyinfft, :new_aubio_pitchyinfft, %i[uint uint], AubioPitchyinfftT 3631 | 3632 | # (Not documented) 3633 | # 3634 | # @method del_aubio_pitchyinfft(o) 3635 | # @param [AubioPitchyinfftT] o 3636 | # @return [nil] 3637 | # @scope class 3638 | attach_function :del_aubio_pitchyinfft, :del_aubio_pitchyinfft, [AubioPitchyinfftT], :void 3639 | 3640 | # (Not documented) 3641 | # 3642 | # @method aubio_pitchyinfft_get_tolerance(o) 3643 | # @param [AubioPitchyinfftT] o 3644 | # @return [Float] 3645 | # @scope class 3646 | attach_function :aubio_pitchyinfft_get_tolerance, :aubio_pitchyinfft_get_tolerance, [AubioPitchyinfftT], :float 3647 | 3648 | # (Not documented) 3649 | # 3650 | # @method aubio_pitchyinfft_set_tolerance(o, tol) 3651 | # @param [AubioPitchyinfftT] o 3652 | # @param [Float] tol 3653 | # @return [Integer] 3654 | # @scope class 3655 | attach_function :aubio_pitchyinfft_set_tolerance, :aubio_pitchyinfft_set_tolerance, [AubioPitchyinfftT, :float], :uint 3656 | 3657 | # (Not documented) 3658 | # 3659 | # @method aubio_pitchyinfft_get_confidence(o) 3660 | # @param [AubioPitchyinfftT] o 3661 | # @return [Float] 3662 | # @scope class 3663 | attach_function :aubio_pitchyinfft_get_confidence, :aubio_pitchyinfft_get_confidence, [AubioPitchyinfftT], :float 3664 | 3665 | # (Not documented) 3666 | class AubioBeattrackingT < FFI::Struct 3667 | layout :dummy, :char 3668 | end 3669 | 3670 | # (Not documented) 3671 | # 3672 | # @method new_aubio_beattracking(winlen, hop_size, samplerate) 3673 | # @param [Integer] winlen 3674 | # @param [Integer] hop_size 3675 | # @param [Integer] samplerate 3676 | # @return [AubioBeattrackingT] 3677 | # @scope class 3678 | attach_function :new_aubio_beattracking, :new_aubio_beattracking, %i[uint uint uint], AubioBeattrackingT 3679 | 3680 | # (Not documented) 3681 | # 3682 | # @method aubio_beattracking_do(bt, dfframes, out) 3683 | # @param [AubioBeattrackingT] bt 3684 | # @param [FvecT] dfframes 3685 | # @param [FvecT] out 3686 | # @return [nil] 3687 | # @scope class 3688 | attach_function :aubio_beattracking_do, :aubio_beattracking_do, [AubioBeattrackingT, FvecT, FvecT], :void 3689 | 3690 | # (Not documented) 3691 | # 3692 | # @method aubio_beattracking_get_period(bt) 3693 | # @param [AubioBeattrackingT] bt 3694 | # @return [Float] 3695 | # @scope class 3696 | attach_function :aubio_beattracking_get_period, :aubio_beattracking_get_period, [AubioBeattrackingT], :float 3697 | 3698 | # (Not documented) 3699 | # 3700 | # @method aubio_beattracking_get_period_s(bt) 3701 | # @param [AubioBeattrackingT] bt 3702 | # @return [Float] 3703 | # @scope class 3704 | attach_function :aubio_beattracking_get_period_s, :aubio_beattracking_get_period_s, [AubioBeattrackingT], :float 3705 | 3706 | # (Not documented) 3707 | # 3708 | # @method aubio_beattracking_get_bpm(bt) 3709 | # @param [AubioBeattrackingT] bt 3710 | # @return [Float] 3711 | # @scope class 3712 | attach_function :aubio_beattracking_get_bpm, :aubio_beattracking_get_bpm, [AubioBeattrackingT], :float 3713 | 3714 | # (Not documented) 3715 | # 3716 | # @method aubio_beattracking_get_confidence(bt) 3717 | # @param [AubioBeattrackingT] bt 3718 | # @return [Float] 3719 | # @scope class 3720 | attach_function :aubio_beattracking_get_confidence, :aubio_beattracking_get_confidence, [AubioBeattrackingT], :float 3721 | 3722 | # (Not documented) 3723 | # 3724 | # @method del_aubio_beattracking(p) 3725 | # @param [AubioBeattrackingT] p 3726 | # @return [nil] 3727 | # @scope class 3728 | attach_function :del_aubio_beattracking, :del_aubio_beattracking, [AubioBeattrackingT], :void 3729 | 3730 | # (Not documented) 3731 | class AubioHistT < FFI::Struct 3732 | layout :dummy, :char 3733 | end 3734 | 3735 | # (Not documented) 3736 | # 3737 | # @method new_aubio_hist(flow, fhig, nelems) 3738 | # @param [Float] flow 3739 | # @param [Float] fhig 3740 | # @param [Integer] nelems 3741 | # @return [AubioHistT] 3742 | # @scope class 3743 | attach_function :new_aubio_hist, :new_aubio_hist, %i[float float uint], AubioHistT 3744 | 3745 | # (Not documented) 3746 | # 3747 | # @method del_aubio_hist(s) 3748 | # @param [AubioHistT] s 3749 | # @return [nil] 3750 | # @scope class 3751 | attach_function :del_aubio_hist, :del_aubio_hist, [AubioHistT], :void 3752 | 3753 | # (Not documented) 3754 | # 3755 | # @method aubio_hist_do(s, input) 3756 | # @param [AubioHistT] s 3757 | # @param [FvecT] input 3758 | # @return [nil] 3759 | # @scope class 3760 | attach_function :aubio_hist_do, :aubio_hist_do, [AubioHistT, FvecT], :void 3761 | 3762 | # (Not documented) 3763 | # 3764 | # @method aubio_hist_do_notnull(s, input) 3765 | # @param [AubioHistT] s 3766 | # @param [FvecT] input 3767 | # @return [nil] 3768 | # @scope class 3769 | attach_function :aubio_hist_do_notnull, :aubio_hist_do_notnull, [AubioHistT, FvecT], :void 3770 | 3771 | # (Not documented) 3772 | # 3773 | # @method aubio_hist_mean(s) 3774 | # @param [AubioHistT] s 3775 | # @return [Float] 3776 | # @scope class 3777 | attach_function :aubio_hist_mean, :aubio_hist_mean, [AubioHistT], :float 3778 | 3779 | # (Not documented) 3780 | # 3781 | # @method aubio_hist_weight(s) 3782 | # @param [AubioHistT] s 3783 | # @return [nil] 3784 | # @scope class 3785 | attach_function :aubio_hist_weight, :aubio_hist_weight, [AubioHistT], :void 3786 | 3787 | # (Not documented) 3788 | # 3789 | # @method aubio_hist_dyn_notnull(s, input) 3790 | # @param [AubioHistT] s 3791 | # @param [FvecT] input 3792 | # @return [nil] 3793 | # @scope class 3794 | attach_function :aubio_hist_dyn_notnull, :aubio_hist_dyn_notnull, [AubioHistT, FvecT], :void 3795 | 3796 | # (Not documented) 3797 | class AubioScaleT < FFI::Struct 3798 | layout :dummy, :char 3799 | end 3800 | 3801 | # create a scale object 3802 | # 3803 | # @method new_aubio_scale(flow, fhig, ilow, ihig) 3804 | # @param [Float] flow lower value of output function 3805 | # @param [Float] fhig higher value of output function 3806 | # @param [Float] ilow lower value of input function 3807 | # @param [Float] ihig higher value of output function 3808 | # @return [AubioScaleT] 3809 | # @scope class 3810 | attach_function :new_aubio_scale, :new_aubio_scale, %i[float float float float], AubioScaleT 3811 | 3812 | # delete a scale object 3813 | # 3814 | # @method del_aubio_scale(s) 3815 | # @param [AubioScaleT] s scale object as returned by new_aubio_scale 3816 | # @return [nil] 3817 | # @scope class 3818 | attach_function :del_aubio_scale, :del_aubio_scale, [AubioScaleT], :void 3819 | 3820 | # scale input vector 3821 | # 3822 | # @method aubio_scale_do(s, input) 3823 | # @param [AubioScaleT] s scale object as returned by new_aubio_scale 3824 | # @param [FvecT] input vector to scale 3825 | # @return [nil] 3826 | # @scope class 3827 | attach_function :aubio_scale_do, :aubio_scale_do, [AubioScaleT, FvecT], :void 3828 | 3829 | # modify scale parameters after object creation 3830 | # 3831 | # @method aubio_scale_set_limits(s, ilow, ihig, olow, ohig) 3832 | # @param [AubioScaleT] s scale object as returned by new_aubio_scale 3833 | # @param [Float] ilow lower value of input function 3834 | # @param [Float] ihig higher value of output function 3835 | # @param [Float] olow lower value of output function 3836 | # @param [Float] ohig higher value of output function 3837 | # @return [Integer] 3838 | # @scope class 3839 | attach_function :aubio_scale_set_limits, :aubio_scale_set_limits, [AubioScaleT, :float, :float, :float, :float], :uint 3840 | end 3841 | -------------------------------------------------------------------------------- /lib/aubio/beats.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Aubio 4 | class Beats 5 | def initialize(aubio_source, params) 6 | # TODO: cleanup param dups 7 | @sample_rate = params[:sample_rate] || 44_100 8 | @window_size = params[:window_size] || 1024 9 | @hop_size = params[:hop_size] || 512 10 | 11 | @source = aubio_source 12 | @tempo = Api.new_aubio_tempo('specdiff', @window_size, @hop_size, @sample_rate) 13 | 14 | # create output for source 15 | @sample_buffer = Api.new_fvec(@hop_size) 16 | # create output for beat 17 | @out_fvec = Api.new_fvec(1) 18 | end 19 | 20 | def each 21 | return enum_for(:each) unless block_given? 22 | 23 | total_frames_counter = 0 24 | read_buffer = FFI::MemoryPointer.new(:int) 25 | total_samples = Api.aubio_source_get_duration(@source).to_f 26 | 27 | loop do 28 | # Perform tempo calculation 29 | Api.aubio_source_do(@source, @sample_buffer, read_buffer) 30 | Api.aubio_tempo_do(@tempo, @sample_buffer, @out_fvec) 31 | 32 | # Retrieve result 33 | is_beat = Api.fvec_get_sample(@out_fvec, 0) 34 | no_of_bytes_read = read_buffer.read_int 35 | total_frames_counter += no_of_bytes_read 36 | 37 | if is_beat > 0.0 38 | tempo_samples = Api.aubio_tempo_get_last(@tempo) 39 | tempo_seconds = Api.aubio_tempo_get_last_s(@tempo) 40 | tempo_milliseconds = Api.aubio_tempo_get_last_ms(@tempo) 41 | tempo_confidence = Api.aubio_tempo_get_confidence(@tempo) 42 | 43 | output = { 44 | confidence: tempo_confidence, 45 | s: tempo_seconds, 46 | ms: tempo_milliseconds, 47 | sample_no: tempo_samples, 48 | total_samples: total_samples, 49 | rel_start: tempo_samples / total_samples 50 | } 51 | yield output 52 | end 53 | 54 | next unless no_of_bytes_read != @hop_size 55 | 56 | # there's no more audio to look at 57 | 58 | # Let's output one last tempo to mark the end of the file 59 | total_time = total_frames_counter.to_f / @sample_rate.to_f 60 | output = { 61 | confidence: 1.0, 62 | s: total_time, 63 | ms: total_time / 1000.0, 64 | sample_no: total_samples, 65 | total_samples: total_samples 66 | } 67 | yield output 68 | 69 | # clean up 70 | Api.del_aubio_tempo(@tempo) 71 | Api.del_fvec(@sample_buffer) 72 | Api.del_fvec(@out_fvec) 73 | 74 | break 75 | end 76 | end 77 | end 78 | end 79 | -------------------------------------------------------------------------------- /lib/aubio/legacy_api.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'ffi' 4 | 5 | module Aubio 6 | module LegacyApi #:nodoc 7 | extend FFI::Library 8 | # idea inspired by https://github.com/qoobaa/magic/blob/master/lib/magic/api.rb 9 | lib_paths = Array(ENV['AUBIO_LIB'] || Dir['/{opt,usr}/{,local/}{lib,lib64,Cellar/aubio**,lib/arm-linux-gnueabihf}/libaubio.{*.dylib,so.*}']) 10 | fallback_names = %w[libaubio.4.2.2.dylib libaubio.so.1 aubio1.dll] 11 | ffi_lib(lib_paths + fallback_names) 12 | 13 | # tempo 14 | attach_function :new_aubio_tempo, %i[string int int int], :pointer 15 | attach_function :aubio_tempo_do, %i[pointer pointer pointer], :void 16 | attach_function :aubio_tempo_get_last, [:pointer], :int 17 | attach_function :aubio_tempo_get_last_s, [:pointer], :float 18 | attach_function :aubio_tempo_get_last_ms, [:pointer], :float 19 | attach_function :aubio_tempo_set_silence, %i[pointer float], :int 20 | attach_function :aubio_tempo_get_silence, [:pointer], :float 21 | attach_function :aubio_tempo_set_threshold, %i[pointer float], :int 22 | attach_function :aubio_tempo_get_threshold, [:pointer], :float 23 | attach_function :aubio_tempo_get_bpm, [:pointer], :float 24 | attach_function :aubio_tempo_get_confidence, [:pointer], :float 25 | attach_function :del_aubio_tempo, [:pointer], :void 26 | 27 | # beattracking / misc 28 | attach_function :new_aubio_beattracking, %i[int int int], :pointer 29 | attach_function :aubio_beattracking_do, %i[pointer pointer pointer], :void 30 | attach_function :aubio_beattracking_get_bpm, [:pointer], :float 31 | attach_function :aubio_filter_do, %i[pointer pointer], :void 32 | attach_function :new_aubio_filter_a_weighting, [:int], :pointer 33 | 34 | # source 35 | attach_function :new_aubio_source, %i[string int int], :pointer 36 | attach_function :aubio_source_do, %i[pointer pointer pointer], :void 37 | attach_function :aubio_source_do_multi, %i[pointer pointer pointer], :void 38 | attach_function :aubio_source_get_samplerate, [:pointer], :int 39 | attach_function :aubio_source_get_channels, [:pointer], :int 40 | attach_function :aubio_source_seek, %i[pointer int], :int 41 | attach_function :aubio_source_close, [:pointer], :int 42 | attach_function :del_aubio_source, [:pointer], :void 43 | 44 | # sink 45 | attach_function :new_aubio_sink, %i[string int], :pointer 46 | attach_function :aubio_sink_preset_samplerate, %i[pointer int], :void 47 | attach_function :aubio_sink_preset_channels, %i[pointer int], :void 48 | attach_function :aubio_sink_get_samplerate, [:pointer], :int 49 | attach_function :aubio_sink_get_channels, [:pointer], :int 50 | attach_function :aubio_sink_do, %i[pointer pointer int], :void 51 | attach_function :aubio_sink_do_multi, %i[pointer pointer int], :void 52 | attach_function :aubio_sink_close, [:pointer], :int 53 | attach_function :del_aubio_sink, [:pointer], :void 54 | 55 | # onset 56 | attach_function :new_aubio_onset, %i[string int int int], :pointer 57 | attach_function :aubio_onset_do, %i[pointer pointer pointer], :void 58 | attach_function :aubio_onset_get_last, [:pointer], :int 59 | attach_function :aubio_onset_get_last_s, [:pointer], :float 60 | attach_function :aubio_onset_get_last_ms, [:pointer], :float 61 | attach_function :aubio_onset_set_silence, %i[pointer float], :int 62 | attach_function :aubio_onset_get_silence, [:pointer], :float 63 | attach_function :aubio_onset_get_descriptor, [:pointer], :float 64 | attach_function :aubio_onset_get_thresholded_descriptor, [:pointer], :float 65 | attach_function :aubio_onset_set_threshold, %i[pointer float], :int 66 | attach_function :aubio_onset_set_minioi, %i[pointer int], :int 67 | attach_function :aubio_onset_set_minioi_s, %i[pointer int], :int 68 | attach_function :aubio_onset_set_minioi_ms, %i[pointer float], :int 69 | attach_function :aubio_onset_set_delay, %i[pointer int], :int 70 | attach_function :aubio_onset_set_delay_s, %i[pointer int], :int 71 | attach_function :aubio_onset_set_delay_ms, %i[pointer float], :int 72 | attach_function :aubio_onset_get_minioi, [:pointer], :int 73 | attach_function :aubio_onset_get_minioi_s, [:pointer], :float 74 | attach_function :aubio_onset_get_minioi_ms, [:pointer], :float 75 | attach_function :aubio_onset_get_delay, [:pointer], :int 76 | attach_function :aubio_onset_get_delay_s, [:pointer], :float 77 | attach_function :aubio_onset_get_delay_ms, [:pointer], :float 78 | attach_function :aubio_onset_get_threshold, [:pointer], :float 79 | attach_function :del_aubio_onset, [:pointer], :void 80 | 81 | # pitch 82 | attach_function :new_aubio_pitch, %i[string int int int], :pointer 83 | attach_function :aubio_pitch_do, %i[pointer pointer pointer], :void 84 | attach_function :aubio_pitch_set_tolerance, %i[pointer int], :int 85 | attach_function :aubio_pitch_set_unit, %i[pointer string], :int 86 | attach_function :aubio_pitch_set_silence, %i[pointer float], :int 87 | attach_function :aubio_pitch_get_silence, [:pointer], :float 88 | attach_function :aubio_pitch_get_confidence, [:pointer], :float 89 | attach_function :del_aubio_pitch, [:pointer], :void 90 | 91 | # new fvec 92 | attach_function :new_fvec, [:int], :pointer 93 | attach_function :del_fvec, [:pointer], :void 94 | attach_function :fvec_get_sample, %i[pointer int], :float 95 | attach_function :fvec_set_sample, %i[pointer float int], :void 96 | attach_function :fvec_get_data, [:pointer], :float 97 | attach_function :fvec_print, [:pointer], :void 98 | attach_function :fvec_set_all, %i[pointer float], :void 99 | attach_function :fvec_zeros, [:pointer], :void 100 | attach_function :fvec_rev, [:pointer], :void 101 | attach_function :fvec_weight, %i[pointer pointer], :void 102 | attach_function :fvec_copy, %i[pointer pointer], :void 103 | attach_function :fvec_ones, [:pointer], :void 104 | end 105 | end 106 | -------------------------------------------------------------------------------- /lib/aubio/onsets.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Aubio 4 | class Onsets 5 | def initialize(aubio_source, params) 6 | # TODO: cleanup param dups 7 | @sample_rate = params[:sample_rate] || 44_100 8 | @window_size = params[:window_size] || 1024 9 | @hop_size = params[:hop_size] || 512 10 | 11 | @source = aubio_source 12 | @onset = Api.new_aubio_onset('default', @window_size, @hop_size, @sample_rate) 13 | Api.aubio_onset_set_minioi_ms(@onset, 12.0) 14 | Api.aubio_onset_set_threshold(@onset, 0.3) 15 | 16 | # create output for source 17 | @sample_buffer = Api.new_fvec(@hop_size) 18 | # create output for pitch and beat 19 | @out_fvec = Api.new_fvec(1) 20 | end 21 | 22 | def each 23 | return enum_for(:each) unless block_given? 24 | 25 | total_frames_counter = 0 26 | read_buffer = FFI::MemoryPointer.new(:int) 27 | 28 | loop do 29 | # Perform onset calculation 30 | Api.aubio_source_do(@source, @sample_buffer, read_buffer) 31 | Api.aubio_onset_do(@onset, @sample_buffer, @out_fvec) 32 | 33 | # Retrieve result 34 | onset_new_peak = Api.fvec_get_sample(@out_fvec, 0) 35 | no_of_bytes_read = read_buffer.read_int 36 | total_frames_counter += no_of_bytes_read 37 | 38 | if onset_new_peak > 0.0 39 | onset_seconds = Api.aubio_onset_get_last_s(@onset) 40 | onset_milliseconds = Api.aubio_onset_get_last_ms(@onset) 41 | output = { 42 | s: onset_seconds, 43 | ms: onset_milliseconds, 44 | start: (onset_seconds == 0.0 ? 1 : 0), 45 | end: 0 46 | } 47 | yield output 48 | end 49 | 50 | next unless no_of_bytes_read != @hop_size 51 | 52 | # there's no more audio to look at 53 | 54 | # Let's output one last onset to mark the end of the file 55 | total_time = total_frames_counter.to_f / @sample_rate.to_f 56 | output = { 57 | s: total_time, 58 | ms: total_time / 1000.0, 59 | start: 0, 60 | end: 1 61 | } 62 | yield output 63 | 64 | # clean up 65 | Api.del_aubio_onset(@onset) 66 | Api.del_fvec(@sample_buffer) 67 | Api.del_fvec(@out_fvec) 68 | 69 | break 70 | end 71 | end 72 | end 73 | end 74 | -------------------------------------------------------------------------------- /lib/aubio/pitches.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Aubio 4 | class Pitches 5 | def initialize(aubio_source, params) 6 | # TODO: cleanup param dups 7 | @sample_rate = params[:sample_rate] || 44_100 8 | @window_size = params[:window_size] || 1024 9 | @hop_size = params[:hop_size] || 512 10 | 11 | # Set the tolerance for the pitch detection algorithm. 12 | # Typical values range between 0.2 and 0.9. 13 | # Pitch candidates found with a confidence less than this threshold will not be selected. 14 | # The higher the threshold, the more confidence in the candidates. 15 | @confidence_thresh = params[:confidence_thresh] || 0.9 16 | 17 | @pitch_method = params[:pitch_method] || 'yinfast' 18 | 19 | @source = aubio_source 20 | @pitch = Api.new_aubio_pitch(@pitch_method, @window_size, @hop_size, @sample_rate) 21 | Api.aubio_pitch_set_unit(@pitch, 'midi') 22 | Api.aubio_pitch_set_tolerance(@pitch, @confidence_thresh) 23 | 24 | # create output for source 25 | @sample_buffer = Api.new_fvec(@hop_size) 26 | # create output for pitch and beat 27 | @out_fvec = Api.new_fvec(1) 28 | end 29 | 30 | def each 31 | return enum_for(:each) unless block_given? 32 | 33 | total_frames_counter = 0 34 | read_buffer = FFI::MemoryPointer.new(:int) 35 | last_pitch = 0 36 | 37 | loop do 38 | # Perform pitch calculation 39 | Api.aubio_source_do(@source, @sample_buffer, read_buffer) 40 | Api.aubio_pitch_do(@pitch, @sample_buffer, @out_fvec) 41 | 42 | # Retrieve result 43 | pitch = Api.fvec_get_sample(@out_fvec, 0) 44 | confidence = Api.aubio_pitch_get_confidence(@pitch) 45 | no_of_bytes_read = read_buffer.read_int 46 | total_frames_counter += no_of_bytes_read 47 | 48 | if ((last_pitch - pitch).abs >= 1) && (confidence > @confidence_thresh) 49 | output = { 50 | pitch: pitch, 51 | confidence: confidence, 52 | start: (total_frames_counter == 0 ? 1 : 0), 53 | end: 0 54 | } 55 | yield output 56 | end 57 | 58 | last_pitch = pitch 59 | 60 | next unless no_of_bytes_read != @hop_size 61 | 62 | # there's no more audio to look at 63 | 64 | # Let's output one last pitch to mark the end of the file 65 | total_time = total_frames_counter.to_f / @sample_rate.to_f 66 | output = { 67 | pitch: pitch, 68 | confidence: confidence, 69 | start: 0, 70 | end: 1 71 | } 72 | yield output 73 | 74 | # clean up 75 | Api.del_aubio_pitch(@pitch) 76 | Api.del_fvec(@sample_buffer) 77 | Api.del_fvec(@out_fvec) 78 | 79 | break 80 | end 81 | end 82 | end 83 | end 84 | -------------------------------------------------------------------------------- /lib/aubio/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Aubio 4 | VERSION = '0.3.6' 5 | end 6 | -------------------------------------------------------------------------------- /test/aubio_test.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'test_helper' 4 | 5 | class AubioTest < Minitest::Test 6 | def setup 7 | @not_audio_file_path = File.expand_path('sounds/not_an_audio_file.txt', __dir__) 8 | @loop_amen_path = File.expand_path('sounds/loop_amen.wav', __dir__) 9 | @loop_amen_full_path = File.expand_path('sounds/loop_amen_full.wav', __dir__) 10 | @french_house_path = File.expand_path('sounds/french_house_thing.wav', __dir__) 11 | @acappella_path = File.expand_path('sounds/acappella.mp3', __dir__) 12 | end 13 | 14 | def test_that_it_has_a_version_number 15 | refute_nil ::Aubio::VERSION 16 | end 17 | 18 | def test_it_checks_file_existence 19 | assert_raises Aubio::FileNotFound do 20 | result = Aubio.open(@loop_amen_path + 'e') 21 | end 22 | end 23 | 24 | def test_it_checks_file_is_readable_audio 25 | assert_raises Aubio::InvalidAudioInput do 26 | Aubio.open(@not_audio_file_path) 27 | end 28 | end 29 | 30 | def test_it_checks_if_file_has_been_closed 31 | source = Aubio.open(@loop_amen_path) 32 | source.close 33 | assert_raises Aubio::AlreadyClosed do 34 | source.onsets 35 | end 36 | end 37 | 38 | def test_it_calculates_onsets 39 | result = Aubio.open(@loop_amen_path).onsets.to_a 40 | pairs = result.take(3).zip([ 41 | { s: 0.0, ms: 0.0, start: 1, end: 0 }, 42 | { s: 0.21174603700637817, ms: 211.74603271484375, start: 0, end: 0 }, 43 | { s: 0.4404761791229248, ms: 440.4761657714844, start: 0, end: 0 } 44 | ]) 45 | 46 | pairs.each do |expected, actual| 47 | assert_in_delta expected[:s], actual[:s], 0.25 48 | end 49 | end 50 | 51 | def test_it_calculates_pitches 52 | result = Aubio.open(@acappella_path, pitch_method: 'yinfast', confidence_thresh: 0.9).pitches.to_a 53 | assert_in_delta 62.0, result[0][:pitch], 1.0 54 | end 55 | 56 | def test_it_calculates_beats 57 | result = Aubio.open(@loop_amen_full_path).beats 58 | assert_in_delta 0.2202, result[0][:rel_end], 0.0001 59 | 60 | assert_equal 13, result.length 61 | end 62 | 63 | def test_it_filters_beats_based_on_minimum_interval 64 | result = Aubio.open(@loop_amen_full_path, minioi: 0.5).beats 65 | assert_equal 8, result.length 66 | end 67 | 68 | def test_it_calculates_bpm 69 | # TODO: see if this can be improved 70 | # the actual bpm of that sample is 125 71 | 72 | result = Aubio.open(@french_house_path).bpm 73 | assert_in_delta 126.6635, result, 0.01 74 | end 75 | 76 | def test_it_provides_default_bpm_as_fallback 77 | result = Aubio.open(@loop_amen_path).bpm 78 | assert_equal 60, result 79 | end 80 | end 81 | -------------------------------------------------------------------------------- /test/sounds/README.md: -------------------------------------------------------------------------------- 1 | # Licenses for sound samples used in tests 2 | 3 | loop_amen_full.wav 4 | source: https://freesound.org/people/gowers/sounds/202537/ 5 | license: https://creativecommons.org/publicdomain/zero/1.0/ 6 | 7 | loop_amen.wav 8 | source: https://freesound.org/people/Dolfeus/sounds/43389/ 9 | license: https://creativecommons.org/publicdomain/zero/1.0/ 10 | 11 | french_house_thing.wav 12 | source: Xavier Riley (original composition) 13 | license: https://creativecommons.org/publicdomain/zero/1.0/ 14 | 15 | acappella.mp3 16 | source: https://freesound.org/people/juskiddink/sounds/121769/ 17 | license: https://creativecommons.org/publicdomain/zero/1.0/ 18 | -------------------------------------------------------------------------------- /test/sounds/acappella.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavriley/ruby-aubio/956efb5d0fd5618ac76f337ffa2d73aef2a85485/test/sounds/acappella.mp3 -------------------------------------------------------------------------------- /test/sounds/french_house_thing.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavriley/ruby-aubio/956efb5d0fd5618ac76f337ffa2d73aef2a85485/test/sounds/french_house_thing.wav -------------------------------------------------------------------------------- /test/sounds/loop_amen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavriley/ruby-aubio/956efb5d0fd5618ac76f337ffa2d73aef2a85485/test/sounds/loop_amen.wav -------------------------------------------------------------------------------- /test/sounds/loop_amen_full.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavriley/ruby-aubio/956efb5d0fd5618ac76f337ffa2d73aef2a85485/test/sounds/loop_amen_full.wav -------------------------------------------------------------------------------- /test/sounds/not_an_audio_file.txt: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | $LOAD_PATH.unshift File.expand_path('../lib', __dir__) 4 | require 'aubio' 5 | 6 | require 'minitest/autorun' 7 | --------------------------------------------------------------------------------