kandi background
Explore Kits

musikcube | a crossplatform, terminalbased music player, audio engine, metadata indexer, and server in c | Audio Utils library

 by   clangen C++ Version: 0.97.0 License: BSD-3-Clause

 by   clangen C++ Version: 0.97.0 License: BSD-3-Clause

Download this library from

kandi X-RAY | musikcube Summary

musikcube is a C++ library typically used in Audio, Audio Utils, Raspberry Pi applications. musikcube has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.
a cross-platform, terminal-based audio engine, library, player and server written in c++. musikcube compiles and runs easily on windows, macos and linux. it also runs well on a raspberry pi with raspbian, and can be setup as a streaming audio server. check out the installation guide to get up and running. be sure to also read through a the user guide, which describes app's navigation paradigm and lists all the default keyboard shortcuts.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • musikcube has a medium active ecosystem.
  • It has 2765 star(s) with 232 fork(s). There are 60 watchers for this library.
  • There were 1 major release(s) in the last 6 months.
  • There are 61 open issues and 337 have been closed. On average issues are closed in 125 days. There are 1 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of musikcube is 0.97.0
musikcube Support
Best in #Audio Utils
Average in #Audio Utils
musikcube Support
Best in #Audio Utils
Average in #Audio Utils

quality kandi Quality

  • musikcube has no bugs reported.
musikcube Quality
Best in #Audio Utils
Average in #Audio Utils
musikcube Quality
Best in #Audio Utils
Average in #Audio Utils

securitySecurity

  • musikcube has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
musikcube Security
Best in #Audio Utils
Average in #Audio Utils
musikcube Security
Best in #Audio Utils
Average in #Audio Utils

license License

  • musikcube is licensed under the BSD-3-Clause License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.
musikcube License
Best in #Audio Utils
Average in #Audio Utils
musikcube License
Best in #Audio Utils
Average in #Audio Utils

buildReuse

  • musikcube releases are available to install and integrate.
  • Installation instructions, examples and code snippets are available.
musikcube Reuse
Best in #Audio Utils
Average in #Audio Utils
musikcube Reuse
Best in #Audio Utils
Average in #Audio Utils
Top functions reviewed by kandi - BETA

Coming Soon for all Libraries!

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

musikcube Key Features

a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++

license

copy iconCopydownload iconDownload
Copyright (c) 2004-2021 musikcube team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

 * Neither the name of the author nor the names of other contributors may
   be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

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 musikcube

binaries are available in the releases page.
brew tap clangen/musikcube
brew install musikcube
musikcube
pkg install musikcube
choco install musikcube

Support

For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

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

Save this library and start creating your kit

Explore Related Topics

Share this Page

share link
Reuse Pre-built Kits with musikcube
Compare Audio Utils Libraries with Highest Support
Compare Audio Utils Libraries with Highest Quality
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

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.