Skip to content

padster/go-jack

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-jack GoDoc

Go bindings for Jack Audio Connection Kit

Usage

For a working passthrough example see example/passthrough.go

Import the package:

import "github.com/xthexder/go-jack"

Connect to an existing jack server:

client, _ := jack.ClientOpen("Example Client", jack.JackNoStartServer)
if client == nil {
	fmt.Println("Could not connect to jack server.")
	return
}
defer client.Close()

Add a processing callback:

func process(nframes uint32) int {
	// Do processing here
	return 0
}

/* ... */

if code := client.SetProcessCallback(process); code != 0 {
	fmt.Println("Failed to set process callback.")
	return
}

Activate the client:

if code := client.Activate(); code != 0 {
	fmt.Println("Failed to activate client.")
	return
}

Add an output port:

port := client.PortRegister("out_1", jack.DEFAULT_AUDIO_TYPE, jack.PortIsOutput, 0)

Output a sine wave:

var Port *jack.Port

func process(nframes uint32) int {
	samples := Port.GetBuffer(nframes)
	nsamples := float64(len(samples))
	for i := range samples {
		samples[i] = jack.AudioSample(math.Sin(float64(i)*math.Pi*20/nsamples) / 2)
	}
	return 0
}

Implemented Bindings

  • jack_client_t jack_client_open(client_name, options, *status)
  • int jack_client_close()
  • int jack_client_name_size()
  • char* jack_get_client_name(client)
  • jack_nframes_t jack_get_sample_rate(client)
  • void jack_on_shutdown(client, callback, arg)
  • int jack_set_process_callback(client, callback, arg)
  • jack_port_t jack_port_register(client, name, type, flags, buffer_size)
  • void* jack_port_get_buffer(port, nframes)

See Official Jack API for detailed documentation on each of these functions.

About

Go bindings for Jack Audio Connection Kit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.6%
  • Makefile 0.4%