13
0
Commit Graph

8289 Commits

Author SHA1 Message Date
nick_m
68a8330afc Relative snap 2015-05-16 04:15:52 +10:00
e73b4e6f55 fix cleanup (code is self-evident). From Yevgeny @ waves 2015-05-14 07:01:01 -04:00
4d2d693190 Fix stuck notes on save during MIDI playback. 2015-05-12 20:10:23 -04:00
nick_m
13f34f3922 Layering - the return of "later is higher".
Currently we don't do anything special on layering prefs change
    (relayer only occurs when each playlist is first edited). The idea here is
    that "undo" is still available to restore previous layering in case of any
    surprises.
2015-05-10 03:15:50 +10:00
f082e45298 extend save-as API to allow for new empty sessions based on current 2015-05-07 22:35:35 -04:00
0038820f47 copy contents of analysis, plugins, automation and externals folders during save-as 2015-05-07 17:10:14 -04:00
e902029b26 fix Session::rename() 2015-05-07 12:06:49 -04:00
31acba8305 debugging rename/save-as 2015-05-05 21:30:00 -04:00
fbea6c2542 API to reset plugin parameters to default 2015-05-04 20:35:23 +02:00
54fe093371 add signal for automation state changes per plugin 2015-05-04 20:35:14 +02:00
59067d3568 clear port-list before query.
fixes crash in PortManager::silence_outputs()
2015-05-04 02:06:59 +02:00
9ec3085d71 fix thinko in 2e4428b
perspective of Ardour: signal sinks are outputs
2015-05-04 00:29:15 +02:00
aee658ef96 no more noise during startup. 2015-05-03 23:17:15 +02:00
2e4428bc97 add an API to silence buffers (without session) 2015-05-03 23:06:21 +02:00
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
198c4d1d88 gfx-card & performance testing 2015-05-02 04:54:59 +02:00
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
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
2f432c3be7 dummy: ignore first cycle timing. 2015-05-01 15:58:17 +02:00
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
840b871245 don’t count silent [x]runs if there’s no session. 2015-04-30 22:55:42 +02:00
2b294f0b43 add a sanity check 2015-04-30 21:15:35 +02:00
a3209b9b91 Correctly dereference 'fxbuf' when building with MSVC 2015-04-30 18:17:24 +01:00
fe3aafec1c When testing for x86 / x64 architecture, don't forget the symbols that MSVC can understand 2015-04-30 18:17:23 +01:00
ae38128f88 session: add signal to indicate batch updates
…to tell the UI to not redraw.
2015-04-30 17:58:33 +02:00
49ffcd0d9d clamp DSP load displsy 100% & relax LPF. 2015-04-30 02:00:50 +02:00
e3cd57ecb6 DSP load calculation: favor peak over average. 2015-04-29 21:27:37 +02:00
729bc00f13 no need to close a file that will not be removed (and has no name) 2015-04-29 15:01:33 -04:00
89f5e22896 fix double precision abs value computation 2015-04-29 19:56:35 +02:00
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
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
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
80ae2bbe23 fix issue with manual merge conflict 2015-04-29 08:23:13 -04:00
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
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
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
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
697d8a2732 do the right thing when TrackingText::offset is changed 2015-04-29 07:26:18 -04:00
d9cb8a807e Fix method hiding in Canvas::Text 2015-04-29 07:25:58 -04:00
2673ef4af4 change ruler rendering to change tick heights and move text down 2015-04-29 07:23:36 -04:00
065c6d813e add missing API 2015-04-29 07:22:48 -04:00
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
38728f0835 correct implementation for Rectangle::vertical_fraction() 2015-04-29 07:22:21 -04:00
59ce8663f9 add Rectangle::vertical_fraction() as a convenience method
Conflicts:
	libs/canvas/rectangle.cc
2015-04-29 07:22:05 -04:00
cd63d97f65 add xrun counter API to session 2015-04-29 03:09:17 +02:00
c4696fe2d5 emit an xrun if the process_lock is taken 2015-04-29 01:33:23 +02:00
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
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
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
5291400878 case insensitive VST plugin file extension - fixes #6285
2nd attempt.
2015-04-27 18:23:51 +02:00
d75b27f6dc allow to compile PBD::Signals w/o connection debugging 2015-04-27 17:19:58 +02:00
9687c756a6 const iterators 2015-04-27 17:19:57 +02:00
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
b7a711e385 click-less processor re-ordering. 2015-04-27 17:19:57 +02:00
1fdb3560e8 enable trim on master bus 2015-04-27 10:03:49 -05:00
3f2306c4fb Revert "case insensitive ".dll" for VST plugins - fixes #6285"
This reverts commit c2f84af73d.

strcasestr() is not compatible with mingw nor MSVC.
different approach is needed.
2015-04-27 00:40:07 +02:00
c2f84af73d case insensitive ".dll" for VST plugins - fixes #6285
TODO: check portability of strcasestr()
2015-04-26 21:26:12 +02:00
27dac7c31f Expose “/route/trim” midi binding. 2015-04-26 19:07:45 +02:00
397b473e45 allow to update meter position w/o engine 2015-04-26 06:24:57 +02:00
6ac8588cd8 clickless meter-point changes 2015-04-26 06:00:08 +02:00
c0437aed47 wrap midi negative gain for midi-velocity
ignore polarity invert,
scale_velocity() otherwise claps the factor to zero.
2015-04-26 02:51:40 +02:00
f9b364c515 don’t assume compilers cast the way we want. 2015-04-26 02:48:21 +02:00
fe7cb07c7f relax gain LPF to 25Hz. 2015-04-26 02:48:15 +02:00
1b54b85da0 update amp for negative (polarity-invert) gain
fixes monitor-section “inv”
2015-04-26 02:48:00 +02:00
a43901ead9 Fix crash when switching backends.
cycle_end() can write to invalid buffers.
2015-04-26 01:36:09 +02:00
850964fde3 midi velocity [fader] automation 2015-04-25 22:02:02 +02:00
3f281dc2c1 Amp: allow to disable midi velocity 2015-04-25 21:25:56 +02:00
517467f297 prepare trim automation 2015-04-25 21:24:58 +02:00
1e5be9ebfd add OSC trim control 2015-04-25 21:23:37 +02:00
5f7cee5bfe prepare trim remote control 2015-04-25 21:23:03 +02:00
75087f5c62 prepare 0dBFS peak meter 2015-04-25 06:46:29 +02:00
fd76f87ae1 Revert API to explicitly show tooltips:
gdk pointer grab offers a better solution.
2015-04-25 05:37:37 +02:00
d40ad1f6ff fixup stuck persistent tooltips. 2015-04-25 03:00:57 +02:00
50a0748c2b trim typo and details 2015-04-25 01:17:25 +02:00
7565ebd4ed API to set tooltip y-margin 2015-04-25 01:16:39 +02:00
a33cc51176 tweak persistent tooltip:
* don’t show empty tooltips
* “smaller” widgets may receive a leave event before the timeout
can show the tooltip (knobs in particula)
2015-04-25 01:02:53 +02:00
28f3f2d78c input trim busses. 2015-04-24 23:42:31 +02:00
3cdd8fa221 add Input Trim (just after disk i/o) to Audio Tracks 2015-04-24 22:37:03 +02:00
b07373fba2 Amp control: power-scale (fader) and dB-scale (knob) 2015-04-24 22:37:03 +02:00
6e66b0e9db define Trim Parameter Type. 2015-04-24 22:37:03 +02:00
4e36760bac send LTC during process_with_events()
fixes #6277

This indicates a deeper problem though. Even removing a punch-range never
clears out the events. and  ession::process_with_events() does not use
process_without_events() until re-start.
2015-04-24 04:44:28 +02:00
6cb742c289 windows 32bit asm/fpu support.
This still leaves cache_aligned_malloc() in
libs/pbd/malign.cc pending _aligned_free (windows crashes when using
free() on memory allocated with _aligned_malloc()).

So far however there seems to be no issue with default malloc
for audio+midi buffers on win32…
2015-04-24 02:43:52 +02:00
63b3d06fd7 add missing regexp support to pbd/wscript 2015-04-24 00:41:23 +02:00
91b9d6c063 separate build host & target (fix win32 asm) 2015-04-24 00:33:34 +02:00
82cc394705 fix jack-metadata for weak-jack linking 2015-04-23 20:19:22 +02:00
52a58f1ad2 fix JACK metadata configure check.
Trying to explicitly specify linkflags is (a) not portable (b) doesn't honor order-sensitive linkers
2015-04-23 13:48:18 -04:00
f755185825 add a real check for functioning JACK metadata API; remove configure time option for this 2015-04-23 09:29:45 -04:00
27b64e481a Remove a 'no longer needed' source from our MSVC project (libpbd)
(FPU functionality was recently merged into a single source file)
2015-04-22 10:44:23 +01:00
9b1089089e coefficients are floating-point.
fixes use of overloaded operator '==' is ambiguous (with operand types 'MPControl<gain_t>' and 'double') in previous commit.
2015-04-22 00:36:10 +02:00
46f97e8d92 Initial Gain Coefficient tweaks
1)  Disambiguate 1.0 to GAIN_COEFF_UNITY, and 0.0 to GAIN_COEFF_ZERO
2)  Add GAIN_COEFF_SMALL which replaces SMALL_SIGNAL (-140dB)
3)  GAIN_COEFF_SMALL can used to avoid interpolating towards -inf on a db scale
4)  GAIN_COEFF_SMALL is used to detect very small (denormal?) gains and memset to zero
2015-04-22 00:22:43 +02:00
187ddb3bad more windows related SSE build fixes 2015-04-21 13:28:17 -04:00
140e437313 typo 2015-04-21 13:04:22 -04:00
8c52662ac0 use compiler target to determine whether to use 64 bit windows assembler, not the build host CPU type 2015-04-21 13:01:54 -04:00
126b3c2417 Revert "as an experiment, try original asm on windows."
This reverts commit c37dc461b3.
2015-04-21 12:34:14 -04:00
c37dc461b3 as an experiment, try original asm on windows.
Grygorii's new intel-syntax code didn't work on first try
2015-04-21 12:32:59 -04:00
e015c57663 <intrin.h> is for windows only 2015-04-21 12:31:02 -04:00