Happy | 31 Oct 16:28 2014
Picon

cross compiling jack2 library for ARMv6

I use a BMC2708 GNU compiler under Ubuntu 14.04 64 bit on a x64 based
system. I have successfully cross compiled the alsa-lib for the
Raspberry PI (with arm-linux-gnueabi-gcc) on this system and and
compiled a program which runs fine on the RPI using ALSA with the
provided tools (https://github.com/raspberrypi/tools.git). 

Now I wish to do the same and compile an application using Jack against
the Jack library (and thereafter run this on the PI with JACK2
installed). Any guidance how to cross-compile a jack2 library for ARMv6
on the x64 system so that I can link the application to the resulting
Jack ARMv6 library? 
Tim E. Real | 30 Oct 01:44 2014

Question about port IDs

Hello again.

Are port IDs ever reused after they have been released, say by 
 unregistering a port, within the lifetime of a running Jack server?
Or are IDs a static linearly increasing number sort of thing?

Thanks.
Tim.
Nicola Di Vito | 27 Oct 20:00 2014
Picon

(no subject)

I am trying to use jack in the MIDI protocol under Windows 8.1. Before all
following the tutorial in <http://jackaudio.org/faq/jack_on_windows.html
I added: <"-X winmme"> in the "Server Path" in QJackCtl setup The tutorial
doesn't explain well (I am really a beginner) where to insert this expressi
on; I inserted it in the last row of setup menù in the server suffix field (betwen quotation marks or no ?) It's proper ? But none MIDI application appear as client in jack. Could you help me ?
thanks drugo

_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
DivParts | 27 Oct 11:04 2014
Picon

problem with libjack-dev

Hi guys and dols,

I don't know if this problem is your concern but I'm gone try it any way.

I run Ubuntu 14.04.1 LTS studio trusty on a 64bit system.
In the beginning I had lots of problems with my sound card (focusrite 
saffirepro24 firewire) and with you guys and the guys from 
QjackCtl-devel I managed that it works lovely.
But now I try to install IDJC 0.8.14 on my system and when I configure I 
get the error unmet dependencies with libjack-dev.

Now my question sold it not be libjack2-dev? and if so how do I fix this?

Tanks in advance,
Feiko
Athanasios Silis | 25 Oct 17:35 2014
Picon

a command line midi controller mixer for jack?

hello everyone,
I am setting up a headless master audio workstation.
what I want is upon boot to start the jack server (and netmanger) , some applications and do a few connections between them.
now the connections are easy to do with jack_connect , but I would like to insert a mixer in the middle of all these connections and control sound levels and routing from a midi controller, in fact the controller will be the BEHRINGER BCR2000.

It is possible to use jack_mixer as a mixer but it does not offer command line operation and I would have to have a vnc server running in order to fire it up. Is there another application suited for this specific situation?

thank you for your help
_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Athanasios Silis | 25 Oct 16:30 2014
Picon

starting jack from within a bash script

hi all,
I want to start jack from a bash script and I am not sure how can I wait to make sure that jack has started to do all the next operations.
right now and on any jack related script I came across on the internet, I see "sleep" statements after execution of jackd. so smth like

#!/bin/bash
/usr/bin/jackd ... &
sleep 3
#init other apps and do connections

This is quick and easy but not a "safe" way to start everything else after jack for obvious reasons.
Is there a way to wait for jack to start and then continue with the execution of the script?

thank you
_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Hans Petter Selasky | 23 Oct 09:46 2014

System signals and JACK

Hi,

Some applications are using signals() and the jack client needs to 
ignore these. Consequently read/write calls should be wrapped. See 
attached patch. Can this be put upstream? Probably same issue with jack2.

Thank you!

--HPS
Attachment (patch-libjack-client.c): text/x-csrc, 6840 bytes
_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
tom | 20 Oct 05:08 2014
Picon

Fwd: Re: jack_connect with many channels


btw this is the backtrace of the client having that issue:
http://pastebin.com/0RdDNcR9
i've tried to strip it down so it does practically the same as the test 
program http://pastebin.com/B34ENL4y which hasn't the issue. also why 
the bogus client can work with jack2 is a riddle for me. I'll look 
further

-------- Original Message --------
Subject: Re: [Jack-Devel] jack_connect with many channels
Date: 2014-10-20 04:47
 From: tom <at> trellis.ch
To: jack-devel <at> lists.jackaudio.org

Hello Robin

a small test program one seems to work. Hm. I guess i have to look 
further why practically the same code doesn't work in another client. 
Thanks,

Tom

http://pastebin.com/B34ENL4y

On 2014-10-20 01:20, Robin Gareus wrote:
>> On Oct 19, 2014, at 8:17 PM, tom <at> trellis.ch wrote:
>> 
>> 
>> Hi
>> 
>> i use the following code snippet to connect all available 
>> hardware/system
>> capture ports to a client:
>> 
>> --
>> 
>>  if(autoconnect==1)
>>  {
>>    int j=0;
>>    int i=0;
>>    for(i=0;i<input_port_count;i++)
>>    {
>>      if (ports[i]!=NULL)
>>      {
>>        if(!jack_connect (client, 
>> ports[i],jack_port_name(ioPortArray[j])))
> 
> // what is ioPortArray[],  ports[] and how do you query 
> input_port_count?
> // more context is needed
> 
>>        {
>>          fprintf (stderr, "autoconnect: %s -> %s\n",
>>            ports[i],jack_port_name(ioPortArray[j])
>>          );
>>          j++;
>>        }
>>        else
>>        {
> 
> // if you get here ports[i] == NULL
> 
>>          fprintf (stderr, "autoconnect: failed: %s -> %s\n",
>>            ports[i],jack_port_name(ioPortArray[j])
>>          );
> 
> // ..and hence you pass a null pointer to printf. not nice.
> // (some printf implementation can handle it but don’t count on it).
> // This would certainly explain the segfault that you’ve pasted below.
> 
>>        }
>>      }
>>    }
>>    fprintf (stderr, "\n");
>>  }
>> 
>>  free (ports);
>> —
>> 
> 
> [..]
> 
>> Maybe the client code is buggy. When the client in question is run in 
>> gdb,
>> this is the output:
>> 
>> [New Thread 0x7ffff7fa0700 (LWP 6321)]
>> autoconnect: system:capture_1 -> send:input_1
>> autoconnect: system:capture_2 -> send:input_2
>> 
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x00007ffff73278f3 in _IO_vfprintf_internal (s=s <at> entry=0x7fffffffc840,
>>    format=<optimized out>, format <at> entry=0x7ffff7bccdbc "%s",
>>    ap=ap <at> entry=0x7fffffffc9a8) at vfprintf.c:1661
>> 1661	vfprintf.c: No such file or directory.
> 
> get a backtrace here.
> 
> best,
> robin
> _______________________________________________
> Jack-Devel mailing list
> Jack-Devel <at> lists.jackaudio.org
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
_______________________________________________
Jack-Devel mailing list
Jack-Devel <at> lists.jackaudio.org
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
tom | 19 Oct 20:17 2014
Picon

jack_connect with many channels


Hi

i use the following code snippet to connect all available hardware/system
capture ports to a client:

--

  if(autoconnect==1)
  {
    int j=0;
    int i=0;
    for(i=0;i<input_port_count;i++)
    {
      if (ports[i]!=NULL)
      {
        if(!jack_connect (client, ports[i],jack_port_name(ioPortArray[j])))
        {
          fprintf (stderr, "autoconnect: %s -> %s\n",
            ports[i],jack_port_name(ioPortArray[j])
          );
          j++;
        }
        else
        {
          fprintf (stderr, "autoconnect: failed: %s -> %s\n",
            ports[i],jack_port_name(ioPortArray[j])
          );
        }
      }
    }
    fprintf (stderr, "\n");
  }

  free (ports);
--

When there are only few system:capture ports and the client has many input
ports it fails with a segmentation fault, jack log shows

subgraph starting at send timed out (subgraph_wait_fd=8, status = 0, state
= Triggered, pollret = 0 revents = 0x0)

Since connections can only be made after the client was activated, the
first thought was that it simply takes too long (this is done outside the
process() call).

Maybe the client code is buggy. When the client in question is run in gdb,
this is the output:

[New Thread 0x7ffff7fa0700 (LWP 6321)]
autoconnect: system:capture_1 -> send:input_1
autoconnect: system:capture_2 -> send:input_2

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff73278f3 in _IO_vfprintf_internal (s=s <at> entry=0x7fffffffc840,
    format=<optimized out>, format <at> entry=0x7ffff7bccdbc "%s",
    ap=ap <at> entry=0x7fffffffc9a8) at vfprintf.c:1661
1661	vfprintf.c: No such file or directory.

Search on the internet didn't reveal anything other than this might be
related to vprintf / datatypes / output things.

Some further observations:
-This happens only with a large number of involved client input ports
(i.e. 100)
-This happens only for a connection direction of hw->client. client->hw
hasn't that issue.
-This happens only with jack1 !

So i wondered possible differences that could make it work / not work or
how the code could be adapted to work with both jacks.

Any help is appreciated,
Regards
Thomas
Rui Nuno Capela | 19 Oct 22:48 2014

[ANN] QjackCtl 0.3.12 released, feat. JACK Pretty-names aliasing

Again, a classic needs no introduction...

   QjackCtl 0.3.12 is now released!

Change-log:
- JACK client/port pretty-name (metadata) support is being introduced 
and seamlessly integrated with old Connections client/port aliases 
editing (rename) (refactored from an original patch by Paul Davis, 
thanks). (EXPERIMENTAL)
- Application close confirm warning is now raising the main window as 
visible and active for due top level display, especially applicable when 
minimized to the system tray.
- Messages standard output capture has been slightly improved as for 
non-blocking i/o, whenever available.
- Translations install directory change.
- Allow the build system to include an user specified LDFLAGS.
- Missing input/output-latency parameter settings now settled for the 
D-BUS controlled JACK server and firewire back-end driver.

Website:
   http://qjackctl.sourceforge.net

Project page:
   http://sourceforge.net/projects/qjackctl

Downloads:
- source tarball:
   http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.12.tar.gz
- source package (openSUSE 13.1):

http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.12-21.rncbc.suse131.src.rpm
- binary packages (openSUSE 13.1):

http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.12-21.rncbc.suse131.i586.rpm

http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.12-21.rncbc.suse131.x86_64.rpm

Weblog (upstream support):
   http://www.rncbc.org

License:
   QjackCtl is free, open-source software, distributed under the terms 
of the GNU General Public License (GPL) version 2 or later.

See also:
   http://www.rncbc.org/drupal/node/826

Enjoy && Have fun!
--
rncbc aka Rui Nuno Capela
rncbc <at> rncbc.org
Daniel Hams | 16 Oct 22:28 2014
Picon

Jack1 Questions

Hi jack-devel,

I'm embarking on a journey to learn the jack server internals and how it works. As part of that I'm doing a
little C++'ifying of the jack1 source.

Why didn't I look at jack2 which is already C++? It’s easier for me to learn by doing some coding and jack1
seems to be less of a moving target for that.

As such, I have a couple of questions about the jack1 source that perhaps some of the esteemed people on this
list could help me with.

If this isn't the place for this and you'd rather not have it on the list, just let me know.

* jack_load_internal_clients (jackd.c:95)

I've tested the formats from the comments and see the following

client-name:client-type/args - parses as "(client-name)(client-type)(args)"
client-type/args             - fails due to client-name being NULL
client-name:client-type      - parses as "(client-name)(client-type)(NULL)"
client-type                  - parses as "(client-type)(client-type)(NULL)"

The second one seems to contradict the comments in the code (not outrageous, we've all done it).
I’ve copied the behaviour for now. Perhaps it should mirror the fourth one in copying the client-type
into the client-name?

* Unblocking of signals

controlapi.c:841 uses SIG_SETMASK to pthread_sigmask to unblock signals
jackd.c:382 uses SIG_UNBLOCK to sigprocmask to unblock signals

Any idea why the difference between these two? I've checked the man pages and it seems that sigprocmask
should be used in a single threaded process.

* Rechain graph - loop exit condition (engine.c:3205)

I'm having trouble understanding how the while(next) is being exited as the if() seems to happen on an
invariant. Am I thinking too single threadedly?

* seq_number atomic in the client control packed structure (internal.h:168)

The existing atomics don’t play nice when included with C++ and I’ve had to move it out into a process
global atomic (attempting to put the std::atomic_uint into the structure causes warnings about packing).

I can’t see the problems this has caused (moving it out of the struct) - any ideas? It doesn't seem to _need_
to be in that structure.

Thanks for any pointers and help that can be given.

Cheers,

Dan

For anyone interested in the repository for this it's here: 

https://github.com/danielhams/jack1

on the "c++changes" branch. You'll need at least a C++14 compliant compiler (>= G++ 4.9) and boost 1.56.

What it isn't:

* It's not for end users. You don't get any benefits from this, but you definitely get bugs and stability issues.
* No testing for anything other than Linux + alsa. I'm testing the linux alsa bits (alsa driver + midi bits)
for a simple routing scenario, but nothing more. There probably are things I've broken. Platforms other
than Linux are bound to be broken, I'm afraid.
* Not intended to be merged upstream. This is an educational endevour and I've gone a bit gung ho and slapped
things around e.g. my preferences for formatting. If there is interest in taking jack1 in this direction
we would have to discuss the correct incremental steps to submit patches along those lines.
* Not to be taken as good C++. I'm a mediocre C++ programmer at best, so there are probably better ways to do
some of the things I've done.
* It's not a full transliteration. It's more or less the C sources renamed to .[c|h]pp and using a C++
compiler modulo the bits I've started to look at.

What it is:

* Lots of build warnings. C++ is a little more strict about warnings, and there's quite a few things I haven't
got around to resolving.
* Updated build script to look for a conforming C++14 compiler and boost 1.56 libraries and setup the
appropriate flags
* Mirrored C++ code directories with some C++'ified code and makefiles
* Updated install targets that will install sibling jackdpp, libjackpp, libjackserverpp and jackpp drivers
* Refactored command line options handling to use boost::program_options - still not tackled the drivers parameters.
* Started refactoring some of the code to use C++ idioms (engine.clients change to a std::vector instead of
JSList, for example)
* Will happily launch from within qjackctl / command line using the same arguments
* Lots more to be done - i've not even got as far as namespaces or proper constructor/destructors for things....

Gmane