Skip to content
Branch: master
Go to file
Code

Latest commit

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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.NoStartServer)
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)
  • int jack_port_unregister(client, port)
  • void* jack_port_get_buffer(port, nframes)
  • int jack_midi_event_get(event, port_buffer, event_index)
  • void jack_midi_clear_buffer(port_buffer)
  • int jack_midi_event_write(port_buffer, time, data, data_size)
  • void jack_set_error_function(callback)
  • void jack_set_info_function(callback)

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

About

Go bindings for Jack Audio Connection Kit

Resources

License

Releases

No releases published
You can’t perform that action at this time.