Commit graph

8232 commits

Author SHA1 Message Date
Paul Davis
31acba8305 debugging rename/save-as 2015-05-05 21:30:00 -04:00
Robin Gareus
fbea6c2542 API to reset plugin parameters to default 2015-05-04 20:35:23 +02:00
Robin Gareus
54fe093371 add signal for automation state changes per plugin 2015-05-04 20:35:14 +02:00
Robin Gareus
59067d3568 clear port-list before query.
fixes crash in PortManager::silence_outputs()
2015-05-04 02:06:59 +02:00
Robin Gareus
9ec3085d71 fix thinko in 2e4428b
perspective of Ardour: signal sinks are outputs
2015-05-04 00:29:15 +02:00
Robin Gareus
aee658ef96 no more noise during startup. 2015-05-03 23:17:15 +02:00
Robin Gareus
2e4428bc97 add an API to silence buffers (without session) 2015-05-03 23:06:21 +02:00
Robin Gareus
56cc3e2407 fix portengin get_ports() flags API
require all flags to be present (same as jack)
2015-05-03 22:34:52 +02:00
Christopher Arndt
a9bc95a911 Fix mixed spaces/tabs in wscripts 2015-05-03 19:52:38 +02:00
Nils Philippsen
1e5c5e6bdf don't install static library libsmf.a 2015-05-03 19:50:36 +02:00
Robin Gareus
198c4d1d88 gfx-card & performance testing 2015-05-02 04:54:59 +02:00
Robin Gareus
8f333acb80 log(0) - who would have guessed.
marginal improvement on x86_64 for zero, 5-10% for tiny numbers;
100% time improvement (half the time) on i686 with zero.

#/bin/sh
g++ -x c++ -O3 -ffast-math -o /tmp/a.out - << EOF

#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <limits>

static inline float accurate_coefficient_to_dB (float coeff) {                                                                                                                                                                               
#if 1 // try me
  if (coeff < 1e-15) return  -std::numeric_limits<float>::infinity();
#endif
  return 20.0f * log10f (coeff);
}

int main (int argc, char **argv) {
  long long int i;
  float f = 0;
  if (argc  < 3) return -1;
  long long int end = atoll (argv[1]);
  for (i = 0; i < end; ++i) {
    f += accurate_coefficient_to_dB (atof (argv[2]));
  }
  printf ("%f\n",f);
  return 0;
}
EOF

time /tmp/a.out 100000000000 0.0
time /tmp/a.out 100000000000 0.0
time /tmp/a.out 100000000000 0.0
2015-05-02 04:19:54 +02:00
Robin Gareus
ce259edbcd professionalize peak-meters
The peak meter needs to withstand various test-signals
without visual jitter (in particular 1kHz sine) regardless
of settings (period-size, sample-rate, custom fall-off).

This needs to be done in sync (and not by a random non-rt
‘smoothing’ thread).

On the downside this voids the ‘visual smoothing’ particularly 
with large buffersizes - but then again exactly this “always 
fall-off no matter what [the next real data will be]” is the
problem.

One the upside, there’s one less high-frequency (100Hz) thread
(Yay!) PS. it probably never worked on windows, anyway.

Only peak-meters are affected by his change.
K-meters, IEC I/II and VU were never visually smoothed.
2015-05-02 03:46:49 +02:00
Robin Gareus
2f432c3be7 dummy: ignore first cycle timing. 2015-05-01 15:58:17 +02:00
Robin Gareus
d0dca7daf0 constrain initial custom meter positions.
The processor-box GUI only allows to move the
custom meter position between trim and main_out/panner.

Previously an initial switch from In -> custom or Out -> Custom
left the meter at a position that can otherwise not be reached
by manually repositioning the custom meter.
2015-05-01 14:45:45 +02:00
Robin Gareus
840b871245 don’t count silent [x]runs if there’s no session. 2015-04-30 22:55:42 +02:00
Robin Gareus
2b294f0b43 add a sanity check 2015-04-30 21:15:35 +02:00
John Emmas
a3209b9b91 Correctly dereference 'fxbuf' when building with MSVC 2015-04-30 18:17:24 +01:00
John Emmas
fe3aafec1c When testing for x86 / x64 architecture, don't forget the symbols that MSVC can understand 2015-04-30 18:17:23 +01:00
Robin Gareus
ae38128f88 session: add signal to indicate batch updates
…to tell the UI to not redraw.
2015-04-30 17:58:33 +02:00
Robin Gareus
49ffcd0d9d clamp DSP load displsy 100% & relax LPF. 2015-04-30 02:00:50 +02:00
Robin Gareus
e3cd57ecb6 DSP load calculation: favor peak over average. 2015-04-29 21:27:37 +02:00
Paul Davis
729bc00f13 no need to close a file that will not be removed (and has no name) 2015-04-29 15:01:33 -04:00
Robin Gareus
89f5e22896 fix double precision abs value computation 2015-04-29 19:56:35 +02:00
Robin Gareus
84aab564b4 enable fade-out display by default in A4.
..because fade outs are implicit in A4.
Eventually the GUI needs to set_show_background_fade() as needed.
2015-04-29 19:55:53 +02:00
Robin Gareus
8ed04e2155 remove AU crashlog assert.
in case $HOME/Library/Caches/Ardour4/au_crashlog.txt
is not writeable, just log to stderr.
2015-04-29 18:43:32 +02:00
Paul Davis
c36504f2ec NOOP: fix indentation 2015-04-29 09:05:15 -04:00
GZharun
1a84fa3c42 [Summary] Should have been committed with previous: made background fade optional and not shown by default 2015-04-29 08:59:24 -04:00
Paul Davis
80ae2bbe23 fix issue with manual merge conflict 2015-04-29 08:23:13 -04:00
Paul Davis
2828dcaaf9 make computation of OS X pango text width correction less intrusive/more efficient.
Compute the correction only once after each font specification setting.

Conflicts:
	libs/canvas/canvas/text.h
2015-04-29 08:20:31 -04:00
Paul Davis
a83050a255 manually apply grygorii's API to manage a correction for pango errors in text size computation on OS X 2015-04-29 08:19:22 -04:00
Paul Davis
5ab699f898 manually apply grygorii's waveform amplitude implementation 2015-04-29 07:54:21 -04:00
GZharun
96371c8327 [Summary] Fixed issue when width request from Cavas text returned old width value
[Reviewed by] Paul Davis

Conflicts:
	libs/canvas/canvas/text.h
2015-04-29 07:27:34 -04:00
Paul Davis
84cb8913b0 change placement of ruler divider so that the lower line is at the specified height, rather than the upper 2015-04-29 07:26:29 -04:00
Paul Davis
697d8a2732 do the right thing when TrackingText::offset is changed 2015-04-29 07:26:18 -04:00
Paul Davis
d9cb8a807e Fix method hiding in Canvas::Text 2015-04-29 07:25:58 -04:00
Paul Davis
2673ef4af4 change ruler rendering to change tick heights and move text down 2015-04-29 07:23:36 -04:00
Paul Davis
065c6d813e add missing API 2015-04-29 07:22:48 -04:00
Paul Davis
4cf402bdcf add API to Ruler to optionally draw a divider (2 single pixel horizontal lines) at some position within the vertical extent of the ruler 2015-04-29 07:22:36 -04:00
Paul Davis
38728f0835 correct implementation for Rectangle::vertical_fraction() 2015-04-29 07:22:21 -04:00
Paul Davis
59ce8663f9 add Rectangle::vertical_fraction() as a convenience method
Conflicts:
	libs/canvas/rectangle.cc
2015-04-29 07:22:05 -04:00
Robin Gareus
cd63d97f65 add xrun counter API to session 2015-04-29 03:09:17 +02:00
Robin Gareus
c4696fe2d5 emit an xrun if the process_lock is taken 2015-04-29 01:33:23 +02:00
Robin Gareus
f410705c3a delegate signal emission to dedicated thread.
This works around abysmal performance (~.15ms) of
boost::function and boost::bind (in PBD::Signal).

The overall load is probably higher but the realtime
thread remains unaffected.
2015-04-29 00:35:35 +02:00
Robin Gareus
e9bb1dc2bf tape-track diskstream fixes
Due to the change to use a 64bit timeline (int64 as opposed
to previously [unsigned] pframes_t) many cases special to tape-tracks
no longer work.
e.g. region->length() can returns -1, rather than INT64_MAX.
which breaks ‘overlap’ in Evoral::Coverage. which in turn
breaks tape track’s use of ::find_next_region().

This commits begins the slow process to move away from relying
on integer overflow to wrap negative numbers for tape tracks and
restores basic functionality.

Still various edge cases pertaining tape tracks remain. particularly
when changing the session start-time and moving destructive regions.
2015-04-28 16:08:19 +02:00
Robin Gareus
e3a2bc6a36 Track mode needs to be set before loading Track state
parent Track::set_state() sets the diskstream
and ::set_diskstream() depends on the track mode.

fixes Tape tracks on session load
2015-04-28 16:08:19 +02:00
Robin Gareus
5291400878 case insensitive VST plugin file extension - fixes #6285
2nd attempt.
2015-04-27 18:23:51 +02:00
Robin Gareus
d75b27f6dc allow to compile PBD::Signals w/o connection debugging 2015-04-27 17:19:58 +02:00
Robin Gareus
9687c756a6 const iterators 2015-04-27 17:19:57 +02:00
Robin Gareus
36ee1681fe special case [optimize] RT processor reorder.
realtime processor re-ordering does not require
a route resort nor latency compensation update.
(which were done as callback in same thread)
2015-04-27 17:19:57 +02:00