├── .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 |
--------------------------------------------------------------------------------