kandi background
Explore Kits

r8brain-free-src | quality pro audio resampler / sample rate converter C | Audio Utils library

 by   avaneev C++ Version: Current License: MIT

 by   avaneev C++ Version: Current License: MIT

Download this library from

kandi X-RAY | r8brain-free-src Summary

r8brain-free-src is a C++ library typically used in Audio, Audio Utils applications. r8brain-free-src has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.
Open source (under the MIT license) high-quality professional audio sample rate converter (SRC) / resampler C++ library. Features routines for SRC, both up- and downsampling, to/from any sample rate, including non-integer sample rates: it can be also used for conversion to/from SACD/DSD sample rates, and even go beyond that. SRC routines were implemented in a multi-platform C++ code, and have a high level of optimality. Also suitable for fast general-purpose 1D time-series resampling / interpolation (with relaxed filter parameters). The structure of this library's objects is such that they can be frequently created and destroyed in large applications with a minimal performance impact due to a high level of reusability of its most "initialization-expensive" objects: the fast Fourier transform and FIR filter objects. The SRC algorithm at first produces 2X oversampled (relative to the source sample rate, or the destination sample rate if the downsampling is performed) signal, then performs interpolation using a bank of short (8 to 30 taps, depending on the required precision) polynomial-interpolated sinc function-based fractional delay filters. This puts the algorithm into the league of the fastest among the most precise SRC algorithms. The more precise alternative being only the whole number-factored SRC, which can be slower. P.S. Please credit the creator of this library in your documentation in the following way: "Sample rate converter designed by Aleksey Vaneev of Voxengo".
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • r8brain-free-src has a low active ecosystem.
  • It has 305 star(s) with 36 fork(s). There are 28 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 0 open issues and 14 have been closed. On average issues are closed in 4 days. There are no pull requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of r8brain-free-src is current.
r8brain-free-src Support
Best in #Audio Utils
Average in #Audio Utils
r8brain-free-src Support
Best in #Audio Utils
Average in #Audio Utils

quality kandi Quality

  • r8brain-free-src has 0 bugs and 0 code smells.
r8brain-free-src Quality
Best in #Audio Utils
Average in #Audio Utils
r8brain-free-src Quality
Best in #Audio Utils
Average in #Audio Utils

securitySecurity

  • r8brain-free-src has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • r8brain-free-src code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
r8brain-free-src Security
Best in #Audio Utils
Average in #Audio Utils
r8brain-free-src Security
Best in #Audio Utils
Average in #Audio Utils

license License

  • r8brain-free-src is licensed under the MIT License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.
r8brain-free-src License
Best in #Audio Utils
Average in #Audio Utils
r8brain-free-src License
Best in #Audio Utils
Average in #Audio Utils

buildReuse

  • r8brain-free-src releases are not available. You will need to build from source code and install.
  • Installation instructions are not available. Examples and code snippets are available.
r8brain-free-src Reuse
Best in #Audio Utils
Average in #Audio Utils
r8brain-free-src Reuse
Best in #Audio Utils
Average in #Audio Utils
Top functions reviewed by kandi - BETA

kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here

Get all kandi verified functions for this library.

Get all kandi verified functions for this library.

r8brain-free-src Key Features

High-quality pro audio resampler / sample rate converter C++ library. Very fast, for both audio resampling and time-series interpolation.

r8brain-free-src Examples and Code Snippets

See all related Code Snippets

Usage Information

copy iconCopydownload iconDownload
#define R8B_IPP 1

See all related Code Snippets

Community Discussions

Trending Discussions on Audio
  • How to get a smaller piece of audio from larger audio captured with browser's Web Audio Api
  • Audio widget within Jupyter notebook is **not** playing. How can I get the widget to play the audio?
  • FIXED Trying to Pause/Play MP3 file in HTML
  • Download audio file from html with javascript function
  • Result from audio FFT function makes it near impossible to inspect low/mid frequencies
  • Play multiple tracks <audio>
  • A problem with sound producing: How to make sound with Fourier coefficients
  • Get Latency of Bluetooth Headphoners UWP C++
  • Loading Wave File but there is random nonsense at the end of the data rather than the expected samples
  • How do i get the audio frequency from my mic using javascript?
Trending Discussions on Audio

QUESTION

How to get a smaller piece of audio from larger audio captured with browser's Web Audio Api

Asked 2022-Mar-22 at 12:33

I'm making a speech-to-text tool. I'm capturing audio in real time (using Web audio api from Chrome) and sending it to a server to convert the audio to text.

I'd like to extract pieces of the whole audio cause I only want to send sentences, avoiding silences. (cause the api I use has a cost). The problem is that I don't know how to convert the whole audio into pieces.

I was using MediaRecorder to capture the audio

    // recording 

    this.recorder = new MediaRecorder(stream)
    this.recorder.ondataavailable = async (e) => {
      const buffer = await e.data.arrayBuffer()
      this.chunks.add(new Uint8Array(buffer))
    }
    this.recorder.start(1000)

Now I have in this.chunks I have an array of buffers indexed by second.
If I try to reproduce the whole audio file by passing all captured buffer, it is able to decode it and reproduce it correctly:

    // reproduce the whole audio: <- this works
    const combinedChunks = this.chunks.reduce((prev, chunk) => [...prev,...chunk], [])
    const arrChunks = new Uint8Array(combinedChunks)
    this.repAudioContext = new AudioContext()
    this.repAudioBuffer = await this.repAudioContext.decodeAudioData(
      arrChunks.buffer
    )

    this.repSourceNode = this.repAudioContext.createBufferSource()
    this.repSourceNode.buffer = this.repAudioBuffer

    this.repSourceNode.connect(this.repAudioContext.destination)
    this.repSourceNode.start()

That works ^, because I'm using all of the pieces. But since I want to extract pieces of the audio, I want to be able to select only the buffer pieces I want to reproduce. And I can't do that. If I extract the first piece of audio, it stops working and I get: decodeAudioData - Unable to decode audio data.

    // reproduce a part of the audio captured: <- this won't work
    const combinedChunks = this.chunks.slice(1).reduce((prev, chunk) => [...prev,...chunk], []) // <- skipping first chunk
    const arrChunks = new Uint8Array(combinedChunks)
    this.repAudioContext = new AudioContext()
    this.repAudioBuffer = await this.repAudioContext.decodeAudioData(
      arrChunks.buffer
    )

    this.repSourceNode = this.repAudioContext.createBufferSource()
    this.repSourceNode.buffer = this.repAudioBuffer

    this.repSourceNode.connect(this.repAudioContext.destination)
    this.repSourceNode.start()

I understand this might be because in the first chunk there are headers or other metadata of the captured audio. But can't find a way of doing this.

Can anyone give me some advice? is there a different api I should be using? What's the proper way of extracting a smaller piece of audio from a larger one that I can reproduce and save as a file?

ANSWER

Answered 2022-Mar-22 at 12:33

I've found the answer to my own question, I was using the wrong approach.

What I need to use to get the raw audio inputs and be able to manipulate them is the AudioWorkletProcessor.

This video helped me to understand the theory behind:

https://www.youtube.com/watch?v=g1L4O1smMC0

And this article helped me understand how to make use of it: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Using_AudioWorklet

Source https://stackoverflow.com/questions/71470785

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install r8brain-free-src

You can download it from GitHub.

Support

DocumentationDiscussion

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases
Explore Kits

Save this library and start creating your kit

Explore Related Topics

Share this Page

share link
Reuse Pre-built Kits with r8brain-free-src
Consider Popular Audio Utils Libraries
Try Top Libraries by avaneev
Compare Audio Utils Libraries with Highest Support
Compare Audio Utils Libraries with Highest Quality
Compare Audio Utils Libraries with Highest Security
Compare Audio Utils Libraries with Permissive License
Compare Audio Utils Libraries with Highest Reuse
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases
Explore Kits

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.