13
0
Commit Graph

8335 Commits

Author SHA1 Message Date
e0fcd18ec6 fix duplicate inc/decrement in AutoSpin? 2015-06-02 01:01:23 +02:00
4dd5b184c8 NOOP, fix whitespace 2015-06-02 01:01:23 +02:00
dd07428c48 properly handle integer steps in plugin controls
The integer steps min/max are inclusive. 
e.g the integer range -1 to +1 has three possible values (not two).
2015-06-02 01:01:23 +02:00
0288454387 remove debug output and get logic correct to cause first render to always use the render thread 2015-06-01 14:55:17 -04:00
d17e35772d drop in threaded waveview changes via the two affected files.
Rebasing the feature branch against master was too messy, and only these two files were
changed. The development history of this branch could easily have been --squash'ed anyway,
so not much of a loss
2015-06-01 14:45:41 -04:00
ce69096fae fix importing A2 automation data - fixes #6359 2015-06-01 18:22:25 +02:00
1fe738a36e coreaudio support for multiple devices 2015-06-01 01:02:38 +02:00
bb3b15ef96 Add API to ARDOUR::AudioBackend to allow different input and output devices
Used spaces instead of tabs for whitespace consistancy with rest of header
2015-05-31 20:02:07 +02:00
86f56de656 fix the cairo-fletcher-fluctuation
CF reports occasional “rendering icon 1 at size 1 x 1” 
always followed by “rendering icon 1 at size 21 x 21”. 
 
Probably a GTK bug with some specific version of GTK.
2015-05-31 19:40:04 +02:00
64586a8301 factor out Route::muted_by_others from existing code 2015-05-29 15:21:20 -05:00
0412060b44 tweaks and improvements to Save-As
Always copy MIDI files, they are small and they get rewritten for lots of reasons, which can cause confusion
if the user elected to NOT "copy media" since the file ends up existing in both the new and old (but in use)
session.

Avoid copying analysis files on Windows, where for now the files contain illegal colon characters
2015-05-28 19:26:21 -04:00
2cb3cbe491 change the semantics of AudioFileSource::peak_path() and Session::peak_path() a little.
If given a full path that points outside the current session but is within another ardour session,
attempt to use the peakfiles present in that other session.
2015-05-28 19:08:47 -04:00
d98af1785a fader: start muted, ramp up/interpolate to target 2015-05-27 17:13:15 +02:00
7f902ae1b6 some more information output to log during save-as, for debugging 2015-05-27 10:57:40 -04:00
5e1ba50731 fix unsigned/signed math error 2015-05-27 08:57:16 -04:00
e5c3efe9a3 ensure that Mackie Control bank left/right commands always hit the same boundary (Len Ovens) 2015-05-27 07:11:15 -04:00
f9abce03a9 Add some newly introduced sources to our MSVC project (gtkmm2ext) 2015-05-27 10:21:21 +01:00
78ba915fc1 Gtkmm2ext::ArdourIcon::render() is needed outside of libgtkmm2ext (so let's make it exportable) 2015-05-27 10:11:34 +01:00
d3df99e22e more pixel rounding (small range icon) 2015-05-26 19:25:47 +02:00
45313f329f icon pixel compatibility
Ensure that relevant lines always end up on a pixel
(regardless of scaling).
2015-05-26 02:45:35 +02:00
e991688e1f refactor vector icon drawing 2015-05-26 00:52:06 +02:00
d2e4054a65 a go at a pixel-compatible vector “hand” icon.
..and some related ArdourIcon changes.
2015-05-25 04:42:58 +02:00
77220a745c prepare Tool Icons (unused IDs) 2015-05-25 03:28:17 +02:00
d80d34f8dc vectorize TAV expand and shrink icons 2015-05-25 00:25:28 +02:00
ab6a035076 construct vectorized Zoom Icons 2015-05-24 23:09:13 +02:00
1515ea69ec introduce some lazyness 2015-05-24 23:06:49 +02:00
1be75b7bfe NOOP, amend 3173246 comments and whitespace 2015-05-24 21:54:21 +02:00
31732462c7 migrate ArdourButton Icon rendering to Gtkmm2ext.
part one: add new API
2015-05-24 21:44:27 +02:00
fb649f43ea fix for MCP panner width - closes #6341 2015-05-24 17:56:40 +02:00
nick_m
e8a0b1c514 Swap default snap modifiers (non-OSX) to avoid potential upgrade pain.
- Disable snap now defaults to alt
	- Snap absolute now defaults to alt-windows
2015-05-24 05:50:31 +10:00
nick_m
a14c7ff066 Merge branch 'relative_snap'
- Many changes to the "User Interaction" pane wrt key modifiers.
      - Snap is now relative by default (override to absolute with the
        "Snap to absolute using:" modifier).
      - Midi notes now obey both snap modifiers (disable snap and absolute snap)
      - Timefx drag now selects the primary region (less user confusion).
      - Includes MIDI event id fix.
2015-05-24 04:15:32 +10:00
nick_m
92b69a17da Make Evoral::Event ids unique always.
- probably fixes a lot of cases where note ids are assumed to be
	  unique (they weren't for copies and some others).
	- wrong branch, but it needs testing.
2015-05-24 01:53:34 +10:00
nick_m
119c644dc0 Document snap_delta modifier mask. 2015-05-23 23:41:26 +10:00
e44e0b2c9a LV2: delete existing preset before replacing it 2015-05-22 18:25:07 +02:00
18b54e6a85 Fix deleting and re-saving LV2 presets. 2015-05-22 00:24:37 -04:00
nick_m
5d176eefa6 Make the prefs less squashed looking, add another entry for OSX modifiers.
- Defaults are probably still wrong, but at least they are actual
	keys.
2015-05-21 23:47:32 +10:00
nick_m
186736043c Move ui-centric modifiers into ArdourKeyboard, set some bad defaults.
- Also makes "Mod4" Appear as "Windows" and adds new combination
	"Alt-Windows" to the dropdown.
	- Attempt to set a pair of default snap modifiers (without
	knowing what it actually is for OSX)
	- Copy modifier now saves
	- Snap modifier modifier problem still remains.
2015-05-21 05:32:23 +10:00
nick_m
ae0759ae88 Allow all drag -related modifiers to be set, re-instate "jump after trim"
- Copy modifier still doesn't save
	- Testers please edit the Extra section of ~/.ardourN/config to allow
	defaults to "take"
	- Note that the current defaults overlap.
	- warning - absolute snap modifier has no default and will be always
	"on" unless you set it!
2015-05-21 01:30:57 +10:00
c2ee36abc6 try to improve the ill-conceived fade_range action 2015-05-19 14:19:59 -05:00
nick_m
66221d1dea Add more modifier preferences.
Note that no defaults are set - go to prefs->user interaction to
	ensure that nothing is set to "no modifer"

	also - the copy modifier doesn't actually save its state yet.
2015-05-20 04:00:04 +10:00
d7a9c11315 fix x-fade display access beyond array boundaries 2015-05-19 19:28:22 +02:00
nick_m
0d8a331bca Remove some debugging. 2015-05-19 03:29:22 +10:00
nick_m
dc50730059 Revert to old Lock mode (still called Lock).
Also make midi notes obey the snap delta modifire
2015-05-19 03:27:50 +10:00
8287bdad1b take buffers for Split/Match into account fixes #6334 2015-05-18 16:14:07 +02:00
nick_m
aac167a19f "Lock" mode is now "Constrained", make snap absolute modifier configurable.
- user can abs/rel modifier key in prefs->user interaction
	  suggested for linux - absolute->alt ignore snap->alt-shift
	- Constrained mode works the same as button 2 drag (initial move
	  sets constraint axis).
2015-05-18 06:25:36 +10:00
nick_m
c8303c8b7e Revert incorrect region_length() definition. 2015-05-16 04:50:37 +10:00
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