I want to detect INFs and NANs in my DSP graph to avoid having
them spread and cause various trouble.
Here is the straight forward way:
int i;
for (i=0;i<num_samples;i++)
if (!isfinite(samples[i])) break
if(i!=num_samples)
error();
But is this as efficient as we get it?
I'm wondering if comparing samples using for instance SIMD
instructions, for instance, could make it around 4 times faster,
Something like this:
for(i=0;i<num_samples;i++)
if(samples[i]!=samples[i]))
break;
where the samples[i]!=samples[i] test would succeed
if it was a nan or inf, since INFs and NANs don't behave normally.
I don't think this particular example works though (?),
but perhaps something similar could?
Anyone doing something like this?
As falling leaves drift by the window, and without any further ado:
Qtractor 0.5.11 (lima oscar) is now released!
Soon we'll hear a new winter's song. This code-naming series, which
started on a sunny summer day two years ago as TYOQA, is now converging
to an end. It will be no surprise for some that today's release precedes
the very last one on that series. So let's get those autumn leaves
falling and grab them while they're crispy red and gold ;)
Release highlights:
* Extended automation curve editing (NEW)
* Extended clip selection (NEW)
* LV2 UI resize feature support (NEW)
* Aux-sends to audio buses (FIX)
* MIDI editor overlapped event velocity/value (FIX)
* Accidental export muting and/or freezing (FIX)
Website:
http://qtractor.sourceforge.net
Project page:
http://sourceforge.net/projects/qtractor
Downloads:
http://sourceforge.net/projects/qtractor/files
- source tarball:
http://downloads.sourceforge.net/qtractor/qtractor-0.5.11.tar.gz
- source package (openSUSE 12.3):
http://downloads.sourceforge.net/qtractor/qtractor-0.5.11-8.rncbc.suse123.s…
- binary packages (openSUSE 12.3):
http://downloads.sourceforge.net/qtractor/qtractor-0.5.11-8.rncbc.suse123.i…http://downloads.sourceforge.net/qtractor/qtractor-0.5.11-8.rncbc.suse123.x…
- quick start guide & user manual (outdated):
http://downloads.sourceforge.net/qtractor/qtractor-0.5.x-user-manual.pdf
Weblog (upstream support):
http://www.rncbc.org
License:
Qtractor is free, open-source software, distributed under the terms
of the GNU General Public License (GPL) version 2 or later.
Change-log:
- Adding a track now inserts it after the current one, if any; one can
also drag and move a track below the last one in the track list (main
view left pane).
- Extended Edit/Select Mode/Automation: multi-selection mode, cut, copy,
paste and delete of current track's automation curve nodes, now reached
implementation ready status.
- Another old silent bug bites the dust: changing track names were
dropping any track gain/volume and panning automation curves when saving
the session.
- A primeval processing bug has been sorted out: aux-sends to audio
output buses that just appear to be after the input bus where they're
inserted were being left muted and silent (on a ticket follow-up by
Holger Marzen, thanks).
- Fixed a sure crash bug exposed when processing of aux-send plugins
when inserted too early on audio input buses chain (after a ticket
report by Holger Marzen, thanks).
- Allow the build system to include an user specified CFLAGS (patch by
Cristian Morales Vega, thanks).
- Shift/Ctrl keyboard modifiers now set to extend current clip selection
while in main track view's Edit/Select Mode/Range, Rectangle modes.
- Main Edit/Select Mode/Automation icon retouched to look a bit more
obvious and intuitive, hopefully ;)
- Allow to change the velocities/values of the current selected events
which have the exact same onset times and hide beyhond each other on the
MIDI clip editor's pane below the main view piano-roll (ie. the one that
represents MIDI event values as a bar chart).
- Fixed some problematic playback/export muting and annoying cleanup
freezing, due on audio tracks with too many clips eg. more than hundred
clip splits (hopefully fixes an issue reported by Louigi Verona, thanks).
- LV2 UI resize feature support/control added.
- Fixed dedicated MIDI control and MIDI metronome port connection
restore conflict (thanks to jhammen catch & patch:).
- New user preference option added: reverse middle-button role to
Shift/Ctrl keyboard state, in special regard to edit-head/tail vs.
play-head positioning while on the main track and MIDI clip editor (aka.
piano-roll) views.
See also:
http://www.rncbc.org/drupal/node/710
Enjoy && have (a plenty of) fun.
--
rncbc aka Rui Nuno Capela
The current state of
https://github.com/nickbailey/jackmix
represents JackMix 0.5.1. It could probably do with a bit more testing, but
couldn't everything? :/
New in this version: rename inputs and outputs post hoc. Order of the inputs
and outputs on the GUI is preserved across save/load operations.
Nick/.
$cat NEWS
VERSION 0.5.1
-------------
Added File->Rename Inputs... and File->Rename Outputs... which
changes the labels on the GUI, the channel's position and Jack
connection name while preserving volume levels etc.
There is a video describing the use and motivation behind
developing JackMix on Vimeo. See
https://vimeo.com/75655401
...
On 28 September 2013 22:01, Fons Adriaensen <fons(a)linuxaudio.org> wrote:
> If the problem is the same as with the original LP, then
> the ALSA driver can't do anything about it, unless it would
> contain LP-specific code.
>
But isn't the problem a general running-status problem if multiple programs
are receiving from the same device? Is it a problem with the way the ALSA
sequencer works (this seems to ring a bell somehow) as you said in the
older thread that using Jack-MIDI would solve it?
Hi,
Moving this to the LAD list as it seems to be getting to a more technical
and challenging stage now. This may be a simple answer and if so that is
great but suspect it is a bit more complex than that so might require the
brain power of the LAD list rather than just my capabilities.
To recap I am trying to get hard data on the best case latency while
running a combination of JACK + PA. There are various reasons for and
against doing this but discussing them is not the purpose of this thread.
- I am using jack_delay to measure the round trip latency between
jack -> PA -> JACK
- I also have been testing a complete loop including system i/o but for
the purposes of this thread we can ignore those results.
- I have seen some interesting numbers come up today. If I run the
following command:
pactl list sink-inputs
I get numbers similar to this:
Buffer Latency: 8000 usec
Sink Latency: 3166 usec
The combination of the two shows the actual PA Stream Buffer latency
(approx 10 - 11ms). This number stays approximately static while polling
with this command. To be clear there is also the additional latency that
occurs as the data is transferred from PA to the output but I am told it
is negligible although it might turn out to be a key player.
The results from jack_delay are somewhat different. I have included a
snapshot below*.
For reference sake it was also suggested that I open /dev/cpu_dma_latency
and give it a value of 0. /dev/cpu_dma_latency allows to write the latency
you can tolerate (in ms). The kernel will translate this to the deepest
C-state the processor can enter. I have been running my tests with this
value at zero in case it helps. I have checked with powertop and turbostat
but it doesn't appear to make any difference on this machine. Possibly
because it is an older cpu.
Armed with that preliminary information there are a couple of issues that
I am interested in at this juncture.
1: Why PA is reporting 10ms for the stream buffer but jack_delay is giving
the results below.
2: Why PA is reporting 10ms for the stream buffer when I am running jack
at 64 frames/period and ecasound too.
3: Where the fluctuating measurements from jack_delay are coming from in
the graph as PA Stream Buffer is static at 10ms and ecasound is basically
in pass through with a 64/48k buffer same as JACK. A back of the envelop
estimation suggests latency should be stable well under 20ms including the
10ms set aside for the PA Stream buffer.
---------
RESULTS
---------
jack_delay -> pa -> ecasound -> pa -> jack_delay
hda_intel driver
dual core Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz
jack is run at 64/48000/2
ecasound has a period size of 64
PA is configured to run at 48khz too
[*] Here's the snapshot from jack_delay:
62784.000 frames 1308.000 ms total roundtrip latency
extra loopback latency: 62784 frames
use 31392 for the backend arguments -I and -O
62784.000 frames 1308.000 ms total roundtrip latency
extra loopback latency: 62784 frames
use 31392 for the backend arguments -I and -O ?? Inv
63168.000 frames 1316.000 ms total roundtrip latency
extra loopback latency: 63168 frames
use 31584 for the backend arguments -I and -O
63743.999 frames 1328.000 ms total roundtrip latency
extra loopback latency: 63743 frames
use 31871 for the backend arguments -I and -O
64639.999 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64639.999 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64639.999 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
64640.000 frames 1346.667 ms total roundtrip latency
extra loopback latency: 64639 frames
use 32319 for the backend arguments -I and -O
65088.000 frames 1356.000 ms total roundtrip latency
extra loopback latency: 65088 frames
use 32544 for the backend arguments -I and -O
65088.000 frames 1356.000 ms total roundtrip latency
extra loopback latency: 65088 frames
use 32544 for the backend arguments -I and -O
65087.999 frames 1356.000 ms total roundtrip latency
extra loopback latency: 65087 frames
use 32543 for the backend arguments -I and -O
65152.000 frames 1357.333 ms total roundtrip latency
extra loopback latency: 65151 frames
use 32575 for the backend arguments -I and -O
65152.000 frames 1357.333 ms total roundtrip latency
extra loopback latency: 65151 frames
use 32575 for the backend arguments -I and -O
65152.000 frames 1357.333 ms total roundtrip latency
extra loopback latency: 65152 frames
use 32576 for the backend arguments -I and -O
65152.000 frames 1357.333 ms total roundtrip latency
extra loopback latency: 65151 frames
use 32575 for the backend arguments -I and -O
65216.000 frames 1358.667 ms total roundtrip latency
extra loopback latency: 65216 frames
use 32608 for the backend arguments -I and -O
64.000 frames 1.333 ms total roundtrip latency
extra loopback latency: 63 frames
use 31 for the backend arguments -I and -O
64.000 frames 1.333 ms total roundtrip latency
extra loopback latency: 63 frames
use 31 for the backend arguments -I and -O ?? Inv
256.000 frames 5.333 ms total roundtrip latency
extra loopback latency: 256 frames
use 128 for the backend arguments -I and -O
256.000 frames 5.333 ms total roundtrip latency
extra loopback latency: 256 frames
use 128 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 639 frames
use 319 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 639 frames
use 319 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 639 frames
use 319 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 639 frames
use 319 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
640.000 frames 13.333 ms total roundtrip latency
extra loopback latency: 640 frames
use 320 for the backend arguments -I and -O
768.001 frames 16.000 ms total roundtrip latency
extra loopback latency: 768 frames
use 384 for the backend arguments -I and -O
832.000 frames 17.333 ms total roundtrip latency
extra loopback latency: 832 frames
use 416 for the backend arguments -I and -O
832.000 frames 17.333 ms total roundtrip latency
extra loopback latency: 832 frames
use 416 for the backend arguments -I and -O
832.000 frames 17.333 ms total roundtrip latency
extra loopback latency: 831 frames
use 415 for the backend arguments -I and -O
832.000 frames 17.333 ms total roundtrip latency
extra loopback latency: 832 frames
use 416 for the backend arguments -I and -O
1024.000 frames 21.333 ms total roundtrip latency
extra loopback latency: 1024 frames
use 512 for the backend arguments -I and -O ??
1024.000 frames 21.333 ms total roundtrip latency
extra loopback latency: 1024 frames
use 512 for the backend arguments -I and -O
1024.000 frames 21.333 ms total roundtrip latency
extra loopback latency: 1023 frames
use 511 for the backend arguments -I and -O
1024.000 frames 21.333 ms total roundtrip latency
extra loopback latency: 1023 frames
use 511 for the backend arguments -I and -O
1344.000 frames 28.000 ms total roundtrip latency
extra loopback latency: 1344 frames
use 672 for the backend arguments -I and -O
--
Patrick Shirkey
Boost Hardware Ltd
Hi Hermann
I've been trying to build the latest versions of Guitarix - both the git
latest version (29 I believe) as the 28-2 - and both yield the same error
when I try to use the -optimization flag
package libcloog-ppl0 not found : optimization is disabled
I'm using an Arch Linux on an Intel Atom N2800 and I have the AUR cloog-ppl
0.16.1-1 package installed.
Is there something else to be done in order to get the optimization flag to
work? Iǘe browsed the LAD archives and noticed there is already a tread
with this error in topic for version 27.
Can I discard the optimization flag and add the "march=native" instead? If
yes, how should I do it?
Can't wait to try the gx-fuzz on the MOD!
Kind regards and congratulations for the effort on Guitarix. Here at the
MOD Team we have it as on of our favourite plugins pack.
Gianfranco
Hi all,
tomorrow it is time again for Creative Music Coding at STEIM, please
join us!
First episode of the new season!
Calling all ChucK’ers, SuperColliders, Max and PureData patchers,
CSounders, Fluxites, Overtoners, and all other tongues of creative
coders. We welcome you to attend the fifth edition of the Creative
Music Coding lab at STEIM.
The CMC lab is an autonomous zone to try out sonic experiments as a
group. And an opportunity to leverage the expertise of the group in
realizing new artistic tools and processes through the medium of code.
Many of the founding members of the group are indeed experts in their
favorite languages, but we come from all technical levels of
proficiency and enjoy helping one-another out.
http://steim.org/event/creative-music-coding-lab-6/
Date: Tuesday, October 1st
Time: 19:00 h
Venue: Steim, Utrechtsedwarsstraat 134, Amsterdam
Entry: Free
There will be free coffee and tea to fuel the creativity.
Let me know if you plan to attend!
sincerely,
Marije