JImpulse

A Java port of the impulse library https://launchpad.net/impulse.bzr. For Linux only, requires libpulse and libfftw-3. Captures output from PulseAudio system and delivers transformed snapshots optionally using Fast Fourier Transforms. The data collected may then be used to create visual effects based on sound levels of various frequencies.

License

License

GroupId

GroupId

uk.co.bithatch
ArtifactId

ArtifactId

jimpulse
Last Version

Last Version

1.2
Release Date

Release Date

Type

Type

jar
Description

Description

JImpulse
A Java port of the impulse library https://launchpad.net/impulse.bzr. For Linux only, requires libpulse and libfftw-3. Captures output from PulseAudio system and delivers transformed snapshots optionally using Fast Fourier Transforms. The data collected may then be used to create visual effects based on sound levels of various frequencies.
Project URL

Project URL

https://github.com/bithatch/jimpulse
Project Organization

Project Organization

Bithatch
Source Code Management

Source Code Management

https://github.com/bithatch/jimpulse

Download jimpulse

How to add to project

<!-- https://jarcasting.com/artifacts/uk.co.bithatch/jimpulse/ -->
<dependency>
    <groupId>uk.co.bithatch</groupId>
    <artifactId>jimpulse</artifactId>
    <version>1.2</version>
</dependency>
// https://jarcasting.com/artifacts/uk.co.bithatch/jimpulse/
implementation 'uk.co.bithatch:jimpulse:1.2'
// https://jarcasting.com/artifacts/uk.co.bithatch/jimpulse/
implementation ("uk.co.bithatch:jimpulse:1.2")
'uk.co.bithatch:jimpulse:jar:1.2'
<dependency org="uk.co.bithatch" name="jimpulse" rev="1.2">
  <artifact name="jimpulse" type="jar" />
</dependency>
@Grapes(
@Grab(group='uk.co.bithatch', module='jimpulse', version='1.2')
)
libraryDependencies += "uk.co.bithatch" % "jimpulse" % "1.2"
[uk.co.bithatch/jimpulse "1.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

JImpulse

Java port of impulse, a small library for analysing sound output captured from Pulse Audio on Linux.

Dependencies

You will need a couple of libraries, but both should be available on your Linux system.

  • libpulse0
  • libfftw-3

If you are building this project from source, you will also need the -dev packages for these too.

Configuring your project

The Java Bit

The library is available in Maven Central.

Maven

	<dependency>
		<groupId>uk.co.bithatch</groupId>
		<artifactId>jimpulse</artifactId>
		<version>1.0</version>
	</dependency>

Development versions (when available), will be the next version number, suffixed with -SNAPSHOT).

	<dependency>
		<groupId>uk.co.bithatch</groupId>
		<artifactId>jimpulse</artifactId>
		<version>1.1-SNAPSHOT</version>
	</dependency>

The Native Bit

The native part of JImpulse is written using C and JNI, which itself uses the https://launchpad.net/impulse.bzr library by Ian Halpern.

The jars distributed by Bithatch only currently contain x86_64 binaries. These are automatically extracted when needed.

For other platforms you will need build yourself. The native components are built using [http://maven-nar.github.io/index.html](Maven NAR plugin). If you want to add support for other platforms, you'll need to edit the POM and build on appropriate hardware. NOTE: I do not use NAR Native ARchives, due to some problems with modularity.

Try It

You can run the test application from the command line (requires Maven).

mvn compile exec:java

If all is well, it will simple dump out a never ending stream of floating point numbers.

Usage

Integration with your own project is very simple.

The Monitor test application does the following :-

	Impulse lib = new Impulse();
	
	lib.initImpulse();
	
	// You can set a different pulse device by it's index
	//	lib.setSourceIndex(0);
	
	// Set to true to turn on fast fourier transform
	boolean fft = false;
	
	while(true) {
		/* This is 256 bytes */
		double[] data = lib.getSnapshot(fft);
		
		for(double d : data) {
			System.out.print(d + " ");
		}
		System.out.println();
	}
uk.co.bithatch

Bithatch

Open source libraries and applications

Versions

Version
1.2
1.1
1.0