Hello all,
I have written a small oscillator application in C++
Fiddling with errors and producing output to see where I am brougt me to a question:
I had only ``printf( "Processing ...\n" ); in my process callback.
My program started to produce output the moment when ``jack_activate( client );'' is called.
Isn't this a bit waste of CPU due to the fact that the process_audio callback copies plenty of data to a port which is not used yet?
I'd expect to get output from this (nothing sounding yet) program at the moment when it calls ``jack_connect''
for now I have this in my oscillator constructor:
... code snippet
...
make_wave();
jack_activate( client );
//FIXME: throw exception if an error with client activation
//FIXME: this should be placed elsewhwere and replaced by:
// jack_activate -> jack_connect for port connections
// jack_deactivate for port disconnections
// the process callback will be called for every activated client
// even no port is connected consuming unnecesary CPU power
}
...
Is this intended behavior? I'll leave the workaround in the comments in my code snippet in place then.
I am using JACK 1.9.10 on a Linux x86_64 machine
# uname -a
Linux frankies 3.13.0-79-lowlatency #123-Ubuntu SMP PREEMPT
Cheers
Frank
Hi,
is it possible to help me building jack2, also for not so technical users?
Perhaps, it could then be possible, to help others and complete this page:
http://jackaudio.org/faq/build_info.html
At first, it’s importend to inform the user about necessary libs for
building. In other projects, it's find e.g. in a README. But here, I
cannot find it on the page above and also not in the git repo.
What I know is: build-essential
But what’s are the exact libs for this, not all libs are called like in
the error-messages, or we need the dev-variants:
Checking for program 'doxygen' : not found
Checking for 'alsa' >= 1.0.18 : not found
--alsa requires the package alsa >= 1.0.18, but it cannot be found.
Checking for 'libffado' >= 1.999.17 : not found
--firewire requires the package libffado >= 1.999.17, but it cannot be
found.
Checking for 'libfreebob' >= 1.0.0 : not found
Checking for 'gtkIOStream' >= 1.4.0 : not found
Checking for 'eigen3' >= 3.1.2 : not found
Checking for 'portaudio-2.0' >= 19 : not found
Checking for header windows.h : not found
Checking for header mmsystem.h : no
Checking for 'celt' >= 0.11.0 : not found
Checking for 'celt' >= 0.8.0 : not found
Checking for 'celt' >= 0.7.0 : not found
Checking for 'celt' >= 0.5.0 : not found
Checking for 'opus' >= 0.9.0 : not found
Checking for header opus/opus_custom.h : not found
Checking for 'samplerate' >= 0 : not found
Checking for 'sndfile' >= 0 : not found
Thanks,
Jörg
Just compiled the latest jackd2, and when using Netjack both manager and
driver crash after sending parameters. I traced back to this change from
02f74a659, which modifies the network parameter struct:
--- a/common/JackNetTool.h
+++ b/common/JackNetTool.h
@@ -94,9 +94,9 @@ namespace Jack
- char fName[JACK_CLIENT_NAME_SIZE];
- char fMasterNetName[JACK_SERVER_NAME_SIZE];
- char fSlaveNetName[JACK_SERVER_NAME_SIZE];
+ char fName[JACK_CLIENT_NAME_SIZE+1];
+ char fMasterNetName[JACK_SERVER_NAME_SIZE+1];
+ char fSlaveNetName[JACK_SERVER_NAME_SIZE+1];
That extra byte for the NUL terminator breaks the alignment, and somehow
causes some ints to be sent as little-endian:
Sample rate : 12288000 frames per second
Period size : 131072 frames per period
Reverting the three lines seems to resolve the problem. I don't really
see the use for having the NUL terminator go through the network...
What do you think?
Xavi
There's a new release candidate of JACK1 now available. Because of the
magnitude of a couple of the changes, some wider testing would be
appreciated before 0.125.0 can be released.
http://jackaudio.org/downloads/jack-audio-connection-kit-0.125.0rc1.tar.gz
(tagged in git as 0.125.0.rc1)
Changes since 0.124.1, in rough order of significance:
* use topological sort when ordering clients. Previous sorting
implementation would
generate incorrect ordering of clients in some (unusual, but not
uncommon) conditions.
* in the alsa_midi slave driver, fix hotpug device enumeration. JACK1
will now respond
to MIDI devices being connected and disconnected while running.
* increase maximum size of a single JACK MIDI event to 64 bytes
* in the alsa_midi slave driver, fix thread start/stop handling when
freewheeling
* add support for jack_port_rename()
* drop support for CPU cycle counting clock, use kernel clocksource
instead
* fix a double-fork that left zombie processes around
* improve the validity and usability of the return value of
jack_frame_time()
* fix failing metadata look up by clearing UUID parsing buffer before use
* support unescaped double quotes in $HOME/.jackdrc
* fix memory leaks of metata key/value pairs
* fix crash caused by incorrect jack_error() format string
* remove option help from jackd and point user at documentation
* fix problems with garbage keys in metadata
* fix out-of-tree builds
* update configure.ac to work with current-ish autotools with less errors
* use gcc atomics and CLOCK_REALTIME for generic CPU builds
* a handful of other minor bug fixes
Contributors: Hans-Peter Portner, Fons Adriaensen, Erik de Castro Lopo,
Filipe Coehlo, David Robillard, Adrian Knoth, Dominic Sacré, Peter Nelson,
Rui Nuno Capela, Robin Gareus, Peter Nelson, Paul Davis
I have been working on a mixer project using Juce, and wish
to network the audio using Jack. Simple
application would be like a digital snake with the eventual implantation of personal
mixes. Running this on unix I can use
alsa2jack or zita-a2j. But the audioadapter
and netadapter is not part of the windows install package. So I was going to attempt building it myself.
According to the readme on github, to build with Microsoft compiler requires vc6. I have serveral versions
of visual studio but non that old.
The readme also says you can build with gcc, and mingw with sjlj is
required but it appears that is it is no longer available with sljl (never used gcc on windws so this is new to me).
Is there a current “how to” for building jack for windows? And/Or is there a location I could download
the audioadapter and netadapter for the current jack2 version?
Thanks.
Mark Winger
Hello there,
I have just released JackSharp and NAudio.Jack 0.1.0.
JackSharp is a C# wrapper around the Jack API for .NET and Mono.
NAudio.Jack is a pair of implementations of IWavePlayer and IWaveIn to
use JackSharp with the .NET audio framework NAudio.
I have tested it on Windows 8.1 and Debian sid (i386 and amd64).
These are available on NuGet:
https://www.nuget.org/packages/JackSharp/https://www.nuget.org/packages/Naudio.Jack/
Development is done on Github:
https://github.com/residuum/JackSharp
Best regards,
Thomas
--
"Ich komme aus dem Staunen nicht heraus."
"Dann bleib halt drin, du Seppel"
(Dietmar Dath - Die Abschaffung der Arten)
http://www.residuum.org/