Commit graph

12400 commits

Author SHA1 Message Date
Robin Gareus
e1ca4b2887 Speed up recent session display (for many large sessions)
- don't parse XML into XMLTree
- only read the file, extract relevant elements
- don't read session-template contents, only test file
2016-12-08 10:36:12 +01:00
Robin Gareus
9a46d593cb a-fluidsynth process events even when no sf2 is loaded.
Keep track of program-changes, re-apply Bank/PGM once the
soundfont is loaded. fluidsynth itself keeps track of CCs.
2016-12-07 19:48:52 +01:00
Robin Gareus
bb30d92814 amend 581c7b6 -Wparentheses 2016-12-07 19:47:29 +01:00
Robin Gareus
295562dd52 Save/Restore MIDI Automation Controls (current CC, PGM) 2016-12-07 19:47:04 +01:00
Robin Gareus
581c7b6b10 Speed up unloading large sessions. 2016-12-07 12:50:35 +01:00
Robin Gareus
fe45f9bc21 Set MidiPgmChangeAutomation control value 2016-12-07 12:45:01 +01:00
Robin Gareus
28ab1f1f74 Add Lua bindings to inspect MidiTrack::MidiControl 2016-12-07 11:30:40 +01:00
Robin Gareus
f521bdb9dc Fix another crash at exit. 2016-12-07 01:58:58 +01:00
Robin Gareus
22ff03ff60 fix copy/paste typo in prev. commit 2016-12-07 01:06:22 +01:00
Robin Gareus
b14ece32c2 Work around silence-trim config 0dBFS (7b1f97bf) 2016-12-07 01:03:46 +01:00
Robin Gareus
230fa064b2 Revert "Fix export silence threshold by using a constant value for now"
This reverts commit 6784923a05.
2016-12-07 00:56:14 +01:00
Robin Gareus
7b1f97bffa fix parsing "-inf" in config variables
The default for export-silence-threshold is -INFINITY, written
as "-inf" (by cfgtool) into system_config. Yet parsing the config using
a std::stringstream results in "0" (due to bugs in various libc++).
2016-12-07 00:50:00 +01:00
Robin Gareus
1ef1734e76 Allow sparse CC lists. 2016-12-06 22:56:04 +01:00
Robin Gareus
2d37392f1a a-fluid synth: label Reverb & Chorus sends.
Also globally enable Reverb + Chorus FX (so that sends work by default)
2016-12-06 22:56:04 +01:00
Robin Gareus
f26ed23fd9 a-fluid synth: list all bank/programs 2016-12-06 17:00:12 +01:00
Robin Gareus
9c20892c27 Turn a-fluidsynth into C++ 2016-12-06 17:00:12 +01:00
Robin Gareus
8d8132aa3c rough-in a-fluid synth midnam support 2016-12-06 17:00:12 +01:00
Julien ROGER
0356d64195 Fix #6753
Fix "Illegal instruction" due to recursive acquisition/multi release on a RWLock

See #6753 notes
2016-12-06 22:41:25 +10:00
Tim Mayberry
4985f0d7ae Include last sample in reverse test for nonsilence in end trim during export 2016-12-06 20:55:17 +10:00
Tim Mayberry
b7bee5c903 Fix Multi Duplicate for a Range Selections
As mentioned in the previous commit
2016-12-06 14:06:18 +10:00
Tim Mayberry
bd52d4e328 Fix issues in export with trim enabled
A complete reimplementation of AudioGrapher::SilentTrimmer::process to support
trimming the beginning and end in the same processing block

Fix export with trim end enabled to actually trim silent frames

Only add silence to beginning or end of export data if data was written

Should resolve: #6412
2016-12-06 13:44:19 +10:00
Tim Mayberry
568cf861f9 Rename AudioGrapher::SilentTrimmer method to reflect behaviour
Unlike many of the other uses of the term "frame" this is actually returning
the index to the first sample in the interleaved frame that contains
non-silence.
2016-12-06 13:43:10 +10:00
Tim Mayberry
2c67e71e98 Always signal writing to file is complete at end of the export process
With end trim enabled, the only case that would successfully export was if
there was at least some samples above the silence threshold in the last export
processing block.

The issue was that the EndOfInput flag was not being passed to
AudioGrapher::SndFileWriter::process which would then call sf_write_sync and
emit the FileWritten signal to start post processing. Fix that by always
passing the EndOfInput flag in the last export process cycle.

Related: #6412
2016-12-06 13:43:09 +10:00
Tim Mayberry
6784923a05 Fix export silence threshold by using a constant value for now
All float values defined in the CONFIG_VARIABLE macro seem like they are cast
to at some stage before writing (another issue that needs addressing). The
default value for export-silence-threshold (-INFINITY) is converted to a value
of 0 and as a result nothing is exported with trim enabled.

Use the same fixed silence threshold as Mixbus until proper bounds checking and
GUI is in place.

Related: #6412
2016-12-06 13:41:17 +10:00
Tim Mayberry
9e794af3ea Add script to run audiographer tests 2016-12-06 13:20:54 +10:00
Robin Gareus
62672fa259 add another useful PluginInsert binding 2016-12-06 00:22:24 +01:00
Robin Gareus
ed5a46d214 Fixup 08fffef (consistent class name) 2016-12-05 23:49:19 +01:00
Robin Gareus
7f9befae2d Add Lua bindings to manage Groups 2016-12-05 23:49:19 +01:00
Robin Gareus
3cc644b467 set AtomObject body ID to zero (as per spec when unused) 2016-12-05 15:43:54 +01:00
David Robillard
388765e8ce Remove boost_system test kludge 2016-12-04 19:15:29 -05:00
David Robillard
5ab2e34b2c Update evoral test suite 2016-12-04 18:49:56 -05:00
David Robillard
9a848d5ba6 Fix configuration 2016-12-04 18:26:30 -05:00
David Robillard
1438191938 Improve coverage of evoral tests 2016-12-04 15:40:21 -05:00
David Robillard
9dbc524060 Improve coverage of evoral tests 2016-12-04 15:17:08 -05:00
David Robillard
9aac954744 Add missing include 2016-12-04 15:16:08 -05:00
David Robillard
b51321bd7d Make libpbd and evoral capable of standalone build
Just an update to slightly rotten wscripts, shouldn't be any changes during an
ardour build.  Motivation being a short development cycle for working on evoral
and/or its test suite.
2016-12-04 15:15:11 -05:00
David Robillard
7d2ed46b63 Remove dead/annoying/unsafe code
Note the old Note::operator= was unsafe, since it made shallow copies of the on
and off events, which results in a double delete of events when the notes are
destructed.
2016-12-04 15:10:05 -05:00
Robin Gareus
11464bfb18 Skip testing example lua scripts which are not bundled 2016-12-04 17:50:34 +01:00
David Robillard
454df30ae5 Fix Sequence test 2016-12-03 15:49:13 -05:00
David Robillard
d17f58e531 Remove dead code 2016-12-03 15:28:23 -05:00
David Robillard
398a318934 Fix event type and parameter type confusion
I'm not sure if this is really the best way to do event types (should it
just be a completely static enum in evoral, or completely dynamic and
provided by the type map, or a mix like currently?), but previously the
event type was frequently set to either total garbage, or parameter
types, which are a different thing.

This fixes all those cases, and makes Evoral::EventType an enum so the
compiler will warn about implicit conversions from int.
2016-12-03 15:28:19 -05:00
David Robillard
bfbc4566ad Fix warnings 2016-12-03 15:27:38 -05:00
David Robillard
08fffeffec Remove Evoral::MIDIEvent
It is slightly questionable whether type specific methods like
velocity() belong on Event at all, these may be better off as free
functions.  However the code currently uses them as methods in many
places, and it seems like a step in the right direction, since, for
example, we might some day have events that have a velocity but aren't
stored as MIDI messages (e.g. if Ardour uses an internal musical model
that is more expressive).

In any case, the former inheritance and plethora of sloppy casts is
definitely not the right thing.
2016-12-03 15:18:21 -05:00
David Robillard
875b1367b2 Factor out and extend MIDIXML implementation 2016-12-03 15:18:20 -05:00
David Robillard
0f5a73a7fd Fix Sequence/Event const-correctness issues 2016-12-03 15:18:20 -05:00
Robin Gareus
b433874019 update summary & connection-matrix colors when route-color changes 2016-12-01 15:51:25 +01:00
Olivier Humbert
e44e1f6227 One fix. 2016-11-30 22:25:46 +01:00
Olivier Humbert
059bbbf23f French translation update 2016-11-30 20:31:32 +01:00
Olivier Humbert
193a0c7671 French translation update
more translation + fixes
2016-11-30 20:24:52 +01:00
Robin Gareus
f1f47664ff fix compilation with newer version of *mm and gcc-6.2 (RefPtr<> cast) 2016-11-30 16:00:05 +01:00