BlackHole | modern macOS virtual audio driver that allows applications | Audio Utils library

 by   ExistentialAudio C Version: v0.5.0 License: GPL-3.0

kandi X-RAY | BlackHole Summary

kandi X-RAY | BlackHole Summary

BlackHole is a C library typically used in Audio, Audio Utils, Arduino applications. BlackHole has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has medium support. You can download it from GitHub.

BlackHole is a modern MacOS virtual audio driver that allows applications to pass audio to other applications with zero additional latency.

            kandi-support Support

              BlackHole has a medium active ecosystem.
              It has 11284 star(s) with 476 fork(s). There are 113 watchers for this library.
              There were 1 major release(s) in the last 12 months.
              There are 3 open issues and 378 have been closed. On average issues are closed in 57 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of BlackHole is v0.5.0

            kandi-Quality Quality

              BlackHole has 0 bugs and 0 code smells.

            kandi-Security Security

              BlackHole has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              BlackHole code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              BlackHole is licensed under the GPL-3.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              BlackHole releases are available to install and integrate.
              Installation instructions are available. Examples and code snippets are not available.

            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 of BlackHole
            Get all kandi verified functions for this library.

            BlackHole Key Features

            No Key Features are available at this moment for BlackHole.

            BlackHole Examples and Code Snippets

            Perform a blackhole operation .
            javadot img1Lines of Code : 6dot img1License : Permissive (MIT License)
            copy iconCopy
                public void blackHole(Blackhole blackhole) {
                    blackhole.consume(new Object());

            Community Discussions


            NLog "Input string was not in a correct format." using windows-identity
            Asked 2022-Feb-26 at 13:17

            I am trying to log some information to database, but being kind of new to nlog config ( until now the default config from Tutorials worked fine) I am not sure what I am missing from my config to work.

            I get this error when I app starts



            Answered 2022-Feb-26 at 13:17

            The NLog Database-Target doesn't have a Layout-property, that can be assigned. Instead use input parameter-collection.

            WindowsIdentity-nuget-package is required for ${windows-identity} on NetCore, and must be included:



            looping over array, performance difference between indexed and enhanced for loop
            Asked 2022-Jan-05 at 19:41

            The JLS states, that for arrays, "The enhanced for statement is equivalent to a basic for statement of the form". However if I check the generated bytecode for JDK8, for both variants different bytecode is generated, and if I try to measure the performance, surprisingly, the enhanced one seems to be giving better results(on jdk8)... Can someone advise why it's that? I'd guess it's because of incorrect jmh testing, so if it's that, please suggest how to fix that. (I know that JMH states not to test using loops, but I don't think this applies here, as I'm actually trying to measure the loops here)

            My JMH testing was rather simple (probably too simple), but I cannot explain the results. Testing JMH code is below, typical results are:



            Answered 2022-Jan-05 at 19:41

            TL;DR: You are observing what happens when JIT compiler cannot trust that values are not changing inside the loop. Additionally, in the tiny benchmark like this, Blackhole.consume costs dominate, obscuring the results.

            Simplifying the test:



            JMH - How to correctly benchmark Thread Pools?
            Asked 2021-Nov-10 at 10:00

            Please, read the newest EDIT of this question.

            Issue: I need to write a correct benchmark to compare a different work using different Thread Pool realizations (also from external libraries) using different methods of execution to other work using other Thread Pool realizations and to a work without any threading.

            For example I have 24 tasks to complete and 10000 random Strings in benchmark state:



            Answered 2021-Oct-29 at 14:03

            See answers to this question to learn how to write benchmarks in java.

            ... executorService maybe correct (but i am still unsure) ...



            OutOfMemoryError when benchmarking ArrayList.add() in JMH
            Asked 2021-Nov-09 at 20:32

            I've been attempting to run benchmarks to compare how many ops/ms for the add method of ArrayLists and LinkedLists in Java. My benchmarks are set up as follows but I can't pinpoint what is causing the out of memory error. Possibly the initialisation of the lists in the setup method?



            Answered 2021-Nov-09 at 19:58

            Disclaimer: it's not a answer to the question. But I wanted to share with OP my findings, which would not fit so well in a comment.

            I encountered on my system a different exception:



            MySQL vs MSSQL INSERTs speed test
            Asked 2021-Nov-09 at 05:59

            Trying to see if there is any way I can improve the INSERT speed in MySQL. I am running on Windows 10. This is the result I got after doing the exact same INSERTs 10000 times in a loop:



            Answered 2021-Nov-09 at 03:22

            For starters avoid loops when and where possible

            For example you LOOP takes 0.839 seconds while a set approach took 0.027 seconds



            Audio recording in Python with Pyaudio, error ||PaMacCore (AUHAL)|| ... msg=Audio Unit: cannot do in current context
            Asked 2021-Nov-09 at 04:30

            I am using pyaudio to record sounds on my Mac BigSur 11.6 (20G165). Specifically, I'm redirecting sound from an application to the input using BlackHole, which works fine.

            It usually works fine but, sometimes, I get this error in the Terminal:

            ||PaMacCore (AUHAL)|| Error on line 2500: err='-10863', msg=Audio Unit: cannot do in current context

            Any idea why or how I could prevent it from happening (like, waiting until PaMacCore is ready to record again or something)?

            I already tried reinstalling but it doesn't help



            Answered 2021-Nov-03 at 16:29

            Apparently the problem were mismatched bitrates in BlackHole's aggregated output device. I was aggregating Blackhole's output (44,1kHz) and the Mac Speakers (48kHz). This did not cause any consistent bad behaviour but sometimes led to these errors.



            How to emulate/capture unusual PHP operands from Kint
            Asked 2021-Nov-08 at 21:44

            Background (Intro)
            Kint is a PHP debugging tool that works as a more powerful replacement to PHP's var_dump(), print_r(), and debug_backtrace(). One unusual -- for PHP at least -- feature of Kint is the ability to use real-time modifiers in the form of operands. Here is what the manual states about that feature:

            There are a couple of real-time modifiers you can use:

            • ~d($var) this call will output in plain text format.
            • +d($var) will disregard depth level limits and output everything. Careful, this can hang your browser on large objects!
            • !d($var) will expand the output automatically.
            • -d($var) will attempt to ob_clean the previous output and flush after printing.
            • You can combine modifiers too: ~+d($var)

            There is an older exiting SO question that is similar to this question if you need more information.


            1. How does Kint add these operands without triggering a PHP error?
            2. How can I emulate/capture any calls that use these operands?

            Without loading Kint if you attempt to use these operands or create your own functions to capture Kint operand calls you get Fatal error: Uncaught Error: Unsupported operand types.

            Important: I am using the kint.phar file and I'm not using composer or any kind of CLI usage.

            My Use Case (Please don't get distracted from the Questions)
            I'm adding this information for those that are curious and to further clarify my questions. I sincerely want to learn and understand HOW they are doing this and would appreciate answers to that end. This question is not about defending / critiquing / disagreeing with my use case:

            For security and optimization I am creating a fake (empty) Kint class that loads when my site is in production mode. This ensures that any Kint calls left in the code on accident do not trigger fatal errors, can never print anything out, and uses less resources compared to loading the real Kint class.

            I know you can disable Kint with Kint::$enabled_mode = false; but lets not focus on that. Here is the code I use to fake the Kint class. All that is missing is capturing calls that use these non-standard operands:



            Answered 2021-Nov-04 at 22:07

            The "real-time modifiers" are all valid PHP unary operators:

            Thus, it is perfectly allowable to prefix function calls with these operators, as long as the function returns a type of value that the operator would normally work on:



            Force tests to fail if migrations aren't run
            Asked 2021-Nov-05 at 23:08

            I'm blatantly oblivious sometimes, and it led me down a 30 minute blackhole trying to figure out why my constraints weren't being applied in my tests. Turns out I forgot to run makemigrations. Is there a way to configure pytest or django to fail without makemigrations?

            I know if very clearly warns me



            Answered 2021-Nov-05 at 23:08

            These two commands will return an error if you have model changes not in migration files and if you have unapplied migrations respectively. You can run them as part of your test scripts



            tds_fdw PostgreSQL Foreign Table Truncates Large Text to 2048 Characters
            Asked 2021-Oct-24 at 21:36

            I have created several foreign tables already, and they all work fine, but now I have to deal with a table that has a column containing 20-30 KB of text in some rows. If that text is small, it is rendered in full, but if it happens to be longer than 2048 characters, the rest is cut off.

            My tds_fdw setup:



            Answered 2021-Oct-24 at 19:29

            Thanks to @FlipperPA. In short, the solution I take is to set the "text size" parameter of /etc/freetds/freetds.conf or /var/lib/postgresql/.freetds.conf to the maximum value (4294967295):



            Running F-stack DPDK executable - Unsupported Rx multi queue mode 1
            Asked 2021-Oct-16 at 19:38

            I have a C++ program which does lots of stuff, but most importantly it is setup to use F-Stack, which is built on DPDK:



            Answered 2021-Sep-09 at 13:08

            The reason for the error is because of the check for virtio PMD in function virtio_dev_configure file [dpdk root folder]drivers/net/virtio/virtio_ethdev.c. This can be due to the current Fstack enables RSS for better flow distribution over its port-queue pair.

            There 2 possible solution to fix the problem is to

            1. find the configuration parameter in f-stack.conf to disable RSS or
            2. change the FSTACK port configuration logic not to use RSS (by editing code).

            File: lib/ff_dpdk_if.c edit: line 627 from port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS; to port_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; and rebuild the fstack

            Note: if you use physical NIC RSS is supported in most of cases. hence there will be no error there.


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


            No vulnerabilities reported

            Install BlackHole

            Download Installer
            Close all running audio applications
            Open and install package
            2ch: brew install blackhole-2ch
            16ch: brew install blackhole-16ch


            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 .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone ExistentialAudio/BlackHole

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Audio Utils Libraries


            by goldfire


            by fingerprintjs


            by Tonejs


            by AudioKit


            by sonic-pi-net

            Try Top Libraries by ExistentialAudio


            by ExistentialAudioSwift


            by ExistentialAudioSwift