a96d64e4f3
Example Stereo to 2 x Mono track Lua script
2017-08-23 21:33:29 +02:00
6f0dec2bd8
Track Templates: remove uninteresting script.
2017-08-23 12:13:40 -05:00
7a05ccb484
Tweak generic audio-track template
...
* Demo Factory method producing different functions
* Allow to run interactively as Action script
2017-08-20 19:15:37 +02:00
1a70a2f977
Cont'd work on route-templates
2017-08-20 00:18:58 +02:00
9f1350a833
Fix "Track Wizard" script
...
* do check if plugins are available
* only instantiate plugins if they're used (no dangling references)
* check if plugin instantiation worked, before adding them
* fix typos for stereo setup of drum-room & overhead
* add channel-count warning
2017-08-19 23:32:09 +02:00
f62629f30f
More template re-naming
...
Unify "track-band" & "session-band" setup scripts
2017-08-19 22:52:45 +02:00
92521b7d74
unify session-template names
2017-08-19 22:28:25 +02:00
91a2cf7901
Backwards compatible LuaDialog layout (+new colspan option)
2017-08-19 03:12:28 +02:00
2a9bf034bb
Templates: Mostly working tabular script.
2017-08-18 16:40:14 -05:00
ba5c19be4c
Templates: first stab at a dialog with tabular layout.
2017-08-18 16:40:14 -05:00
6edb3f8f9e
Update Route-template example script & documentation
2017-08-18 22:45:47 +02:00
b98712ff5b
amend e0a83a75
RouteDialog + script details
2017-08-18 20:56:30 +02:00
e0a83a758e
Redesign Session+Route Template Meta Script API
...
Remove special-cased script types. Allow Action-Scripts to be re-used
for session-setup or route-templates.
2017-08-18 20:42:55 +02:00
41b4d089e5
Track Templates: shorten some of the track names.
2017-08-17 16:44:52 -05:00
9a7bd07e8f
Some initial track templates.
2017-08-17 16:17:12 -05:00
4914b7feea
Track templates: add some (unfinished) template files. Hide Created-With column in Ardour.
2017-08-17 15:31:30 -05:00
39ffe6d95e
Add an example script for prototyping
2017-08-17 21:12:29 +02:00
24cb141aa6
Revert "Revert ongoing SessionDialog changes for 5.11 release."
...
This reverts commit bd40b9132c
.
2017-08-16 05:23:13 +02:00
bd40b9132c
Revert ongoing SessionDialog changes for 5.11 release.
...
To be reverted again after the release. This temporarily reverts
26c88b2
, c67d1d4
, 5e41293
, 8b7df13
, ff61435
, 1039894
, 8717c0d
and GUI parts of 47d86cf
2017-08-16 01:17:35 +02:00
26c88b2a3e
Replace advanced session-setup options with script
2017-08-16 00:51:20 +02:00
87a1a6b7ae
clean up 7aaaae8
2017-08-15 17:46:04 +02:00
7aaaae8bfe
Initial checkin of a Full Band template script.
2017-08-14 22:03:57 -05:00
f27e53f485
Add support for scripted meta-templates.
2017-08-11 15:24:05 +02:00
8fbc2c6484
Add some more Lua script examples
2017-08-10 02:26:16 +02:00
ceb31ff683
Rough-in an qm-barbeattracker Lua example
2017-08-04 01:56:50 +02:00
a9d2955f83
Replace a ringbuffer with a multi-reader circular table
...
a-Inline Spectrogram used a ringbuffer to send mixed down audio data
from the DSP thread to the inline display thread. The problem is that
several inline display threads can coexist (one for the channel strip in
the editor, one for the channel strip in the mixer, and soon one for an
inline display in the generic plugin UI). A ringbuffer is single-writer
single-reader so each display only got part of the data, and all were
competing for it.
Replace it with a circular table, where the DSP sets a write pointer,
and every (inline display) user keeps its own read pointer and checks it
is not so far in the past as to be overtaken by the DSP write pointer.
2017-07-24 15:05:05 +02:00
2ed15cfc7e
Fix a typo in recent commit
2017-07-17 12:08:42 +02:00
3b1a6a350e
Simplify _midifilter.lua example
...
Instead of and-ing the first byte to extract the event type, it is
simpler and easier to understand to bitwise-shift it, so that we don't
get the result as a multiple of 2^4, but as values corresponding to the
MIDI specification.
Currently, a guard is put against events with completely empty data,
though maybe ardour discards those earlier on since that would not be
valid MIDI.
2017-07-14 15:16:33 +02:00
104bebe1bd
Update LuaDialog example script to include File/Folder selection
2017-06-08 13:22:43 +02:00
a55fb928a7
Lua bindings to set group color
2017-05-03 17:53:00 +02:00
4521c1d525
Annotate CC-to-Automation Lua-script and fix start/pos offset.
2017-04-27 15:36:50 +02:00
b8a7b444e2
Update LuaDialog scripts
2017-04-25 16:46:21 +02:00
6efa5d4be2
Update CC-to-Automation script: use Lua-Dialog for parameters
2017-04-25 14:01:38 +02:00
72017b6117
Add a Lua script to exercise the LuaDialog
2017-04-25 14:01:34 +02:00
061f005ac3
Add example script to convert MIDI-CC to Plugin Automation
2017-04-24 04:21:25 +02:00
b7b1ccc8b6
Simplify example script
...
Now that AutomationList is-a ControlList no explicit cast is needed.
2017-04-24 04:21:25 +02:00
448bc635e5
Add example script to access midi-region events
2017-03-18 19:10:19 +01:00
71c5137a25
Lua VAMP plugin list: print value-names
2017-03-17 18:27:45 +01:00
96a3e4d321
Add example Lua script to print region transients
2017-03-17 18:13:16 +01:00
d98eca6811
Update scripts to use == operator
2017-03-16 20:55:41 +01:00
85d741d908
Bundle a session-callback script
2017-03-14 03:29:03 +01:00
7bada83a3f
two new action scripts (no icons yet)
2017-03-07 00:32:19 +01:00
6bb2416df7
Add some Lua-script icon.
2017-02-24 23:41:22 +01:00
1e8af6535f
add an example script to show/hide TAVs
2017-02-24 16:10:14 +01:00
9e543beb56
Add some convenient public editor methods (for lua-bindings)
...
and s/get// in the old API for consistency.
2017-02-24 16:10:14 +01:00
1e4e97019d
Lua bindings to access editor selection + region selection bindings
2017-02-23 22:32:32 +01:00
cdbf6215c9
Update lua-script to use new playlist-API
2017-02-23 03:22:24 +01:00
5789206f88
update plugin-utils Lua example script
2017-02-21 16:15:13 +01:00
120e75b420
And some more action-script icons
2017-02-20 03:58:52 +01:00
83aac1ce88
Add 2 more action-script icons
2017-02-20 00:53:09 +01:00
8d8666d041
NO-OP; clean up script spacing and remove goto
2017-02-20 00:52:40 +01:00
44852aa529
Add a Lua script to send multiple tracks to an aux-bus.
2017-02-20 00:30:15 +01:00
13b1b607b5
Clean up create drum-tracks script (no global variables)
2017-02-19 16:03:17 +01:00
1ab3d33df7
Some more EditorAction icons & color API update
2017-02-18 16:12:59 +01:00
0a40909655
Bundle Audio to MIDI Lua script
2017-02-18 02:25:28 +01:00
b475a81f98
Update Lua action-icon doc
2017-02-17 23:28:53 +01:00
b4dd020139
..and another action-button icon
2017-02-17 21:03:30 +01:00
144bfba2dd
Example Lua action script icon
2017-02-17 18:58:11 +01:00
64eb3bc724
Refine faders-to-trim script
2017-02-17 11:19:15 +01:00
83c9bb20b7
Don't bundle rewind example script
2017-02-17 11:14:43 +01:00
fef0739a10
Update solo/mute example script (use sessions' set_control(s)
2017-02-17 03:38:15 +01:00
61ae00ed23
Example lua script to re-order/reverse plugins
2017-02-15 18:12:51 +01:00
dd66542e91
Update Lua script - API change after 59daffea1
2017-02-14 14:52:07 +01:00
26118af1a4
Update scripts for API change in 59daffea1
2017-02-13 18:44:59 +01:00
f2327835f9
Lua script to save a snapshot after export
2017-02-02 14:20:08 +01:00
ddeaa6c52d
Add Example script to import file(s)
2017-01-21 20:18:27 +01:00
758f183b99
add delete x-run marker script
2017-01-19 19:35:55 +01:00
d0596d815f
prototype track/bus sharing: state-export
2017-01-08 01:23:01 +01:00
83c964cfd4
Add an example script to start recording on a MIDI event
2017-01-02 00:52:25 +01:00
910e369140
Add script to exercise AudioRegion Peak/RMS Normalization
2016-12-28 22:19:37 +01:00
3242bbd84c
Add some doc/comments to the timecode example script
2016-12-08 15:42:11 +01:00
462deb3544
Add timecode example script
2016-12-08 12:45:44 +01:00
6e2dfe65bf
create_drum_tracks lua script by Phillip Smith
2016-12-06 15:34:08 -06:00
fb257f1ed1
add_filters lua script by Phillip Smith
2016-12-06 15:34:08 -06:00
d64646a2ca
fader-to-trim lua script by Phillip Smith
2016-12-05 09:48:35 -06:00
a2c0b10d8a
a-High/LowPass allow 8K samples inclusive
2016-11-24 21:03:56 +01:00
e7243c0486
MIDI LFO generator plugin
2016-11-21 21:24:11 +01:00
b2aaffadc5
Add a Lua script snippet processing region data from the editor
2016-11-19 21:58:03 +01:00
1805437110
Add example script to modulate parmaters globally
2016-11-16 18:56:45 +01:00
f217487aff
fix typo in example script
2016-11-12 16:19:36 +01:00
nick_m
953dcb9153
update lua script to follow Region API change.
2016-11-11 04:02:17 +11:00
ae63243bf3
Revert "update lua script to follow API change (bb459a2e7d)"
...
This reverts commit f09e9347e1
.
because the new-midi branch wasn't merged, yet
2016-11-10 17:32:19 +01:00
e34f8dbf1e
don't ship fan-out instrument lua script (but keep it as example)
2016-11-10 04:55:03 +01:00
ce77df24ca
prototype script to fan out instrument outputs to busses
2016-11-10 01:32:08 +01:00
a369db5600
another lua DSP example
2016-11-09 13:06:01 +01:00
f09e9347e1
update lua script to follow API change (bb459a2e7d)
2016-10-31 15:27:25 +01:00
Nathan Stewart
4ab80e16e9
vamp_audio_to_midi script now operates on a list of regions, calling qm-transcription for each region. The MIDI region holding the output is resized to the extents of the audio region list. This is because qm-transcription is a memory hog and barfs if you try to process too big a region.
2016-10-21 17:31:57 +02:00
e4edd8e602
Clarify documentation of Lua inter-processor communication
2016-10-12 20:08:55 +02:00
9543452bb0
make raw-midi script pass unit-tests (no midi port on track)
2016-10-11 00:01:27 +02:00
ecba48a116
Example Lua script for inter-plugin communication
2016-10-10 17:34:18 +02:00
nick_m
4faf44588f
Interpret start & length_beats properties as double rather than Evoral::Beats.
...
- Evoral::Beats operator!= would prevent an increment
of start_beats by intervals of less than a tick,
so its possible that other subtle problems
existed due to this kind of thing.
2016-10-10 03:39:57 +11:00
631c8afc66
Audio->MIDI script: properly handle MIDI-region start-offset
2016-10-09 16:42:47 +02:00
d6453cf534
add BBT offsets to Audio->MIDI script
2016-10-07 16:33:50 +02:00
39653830dc
Arrrgh Ardour starts counting at 1 :(
2016-10-07 14:54:54 +02:00
d988a4b978
fix script now that block + step size are set correctly
2016-10-07 14:42:11 +02:00
5e63206216
prototype polyphonic audio to midi script
2016-10-07 03:45:59 +02:00
392972fb50
Lua Script Example for Audio to Midi Transcription (work in progress)
2016-10-06 18:49:46 +02:00
c2c5062539
Add Lua snippet to list and describe Vamp Plugins
2016-10-06 17:50:57 +02:00
cd5d4b081e
elaborate Lua-Vamp example
2016-10-05 16:07:03 +02:00
c8157dd117
add Lua script example for vamp onset analysis
2016-10-03 18:26:16 +02:00
2607e154ea
add vamp-plugin example lua script
2016-10-03 03:52:51 +02:00
2e8621fdbf
update script to follow libardour API change
2016-09-18 09:55:59 +02:00
a5169907e5
match ID of Inline Scope following 2b7a89e
2016-09-18 01:17:05 +02:00
37f7d7595c
Tweak PR 269 for portable file-path
2016-09-12 12:05:03 +02:00
Johannes Mueller
cf0d06c137
Cleaned up messed indents (tabs vs. spaces)
2016-09-12 12:03:16 +02:00
Johannes Mueller
9d927b54c1
Lua script to export markers as mp4 chapters
...
Location markers, that are not xruns are exported as mp4 chapter
marks. This requires `Location::name()` to be exposed to Lua.
2016-09-12 12:03:16 +02:00
Johannes Mueller
ba0eb858bc
Example script to prepare the session to record
...
Often one needs to make sure that all the relevant settings are made
before one actually starts recording. The Lua interface can take care of
this task easily, that the operater by just one action can make sure
that the relevant settings (e.g. recenables, playhead position, etc.)
are ready for recording. This example was written with a quasi live
podcast scenario in mind.
See `scripts/prepare_record_example.lua` for details.
2016-09-12 11:10:40 +02:00
9ada4fcc0f
and another SNAFU...
2016-08-30 23:54:25 +02:00
d4f4342bb2
fix jump out of local scope
2016-08-30 23:41:07 +02:00
43078f7e88
correct comments and avoid /={4+}/
2016-08-30 23:20:32 +02:00
Thomas Brand
f4751f1018
-put method print_help() inside factory() (!) -nop / add comments
...
Signed-off-by: Thomas Brand <tom@trellis.ch>
2016-08-30 23:16:16 +02:00
557bbcbfe7
tom's loop: fix arguments to add_region()
2016-08-30 20:42:27 +02:00
Thomas Brand
5ccfe6feae
-adapt to new method syntax of add_region() to make script work with latest lua API -add help text; displayed on error in script output window
...
Signed-off-by: Thomas Brand <tom@trellis.ch>
2016-08-30 20:36:08 +02:00
3a5d394a8c
notch: narrow the bandwidth with increasing frequency
2016-08-28 00:18:06 +02:00
90a5fbdb27
fix typo in notch example script
2016-08-28 00:02:16 +02:00
bddcb9eb1f
newbie documentation
2016-08-27 23:35:02 +02:00
36a0ddd9e4
notch-bank: increase max Q, use logscale
2016-08-27 19:56:08 +02:00
798cd4831b
update notch-bank to variable i/o, increase max stages to 100
2016-08-27 19:47:53 +02:00
21dace3075
add a notch-bank filter
2016-08-27 17:48:11 +02:00
6a396d887c
example fluidsynth lua script (currently: hardcoded .sf2)
2016-08-23 22:21:03 +02:00
c6ba653c9b
pong on the major scale (and fix a typo)
2016-08-22 03:26:14 +02:00
970241b654
more musical pong. uhm ping.
2016-08-21 23:02:37 +02:00
a55fe94b5e
NO-OP: more source code comments
2016-08-21 17:57:55 +02:00
ba6377a801
refurbish a-pong
...
* add code comments
* support no-inplace audio processing
* display score
* add re-init & difficulty settings
2016-08-21 12:34:15 +02:00
d5f55246cc
clean up a-pong
2016-08-21 01:36:50 +02:00
a0493283c4
showcase
2016-08-21 00:24:23 +02:00
3dc71953de
fix SNAFU in track-properties script
2016-08-18 19:49:16 +02:00
036bcb259b
add some track properties example script
2016-08-17 20:31:04 +02:00
7fa99abc3a
These are not the scripts you're looking for
2016-08-17 02:04:27 +02:00
55089df0c4
remove debug output
2016-08-10 03:25:25 +02:00
a8143ea44e
prefix no-inst script with an underscore and skip install
2016-08-10 03:12:11 +02:00
2b7a89ecff
prefix blessed scripted DSP plugins with a-*
2016-08-10 03:11:49 +02:00
72964609c9
add a script to multi-split regions
2016-08-06 22:14:24 +02:00
66470b96b7
Remove dsp_has_midi_*() in favor of dsp_ioconfig()
...
_has_midi_*put members of LuaProc will be set according to the actual
configuration chosen, for configure_io() and run() to use.
2016-08-06 19:38:09 +02:00
4e693c1830
add a script to exercise varispeed playback
2016-07-24 13:00:15 +02:00
2e789e34e7
enforce range of HP/LP
...
We must not assume that the host sends values within the the range
nor that the enum is always an integer.
2016-07-19 19:26:05 +02:00
2e933a6414
Fix a typo in HiAndLowPass.lua
...
Instead of mixing two consecutive biquad orders with a linear xfade, the
code used the same weight for both signals to mix, due to a copy-paste
blunder. Brown-bag fix this now. Also change a little the threshold for
using 32-samples chunks to cater for steepness jumping from 0 to 4 (this
doesn't change anything for commonly used rates and is just for
robustness in never-happening cases anyway).
2016-07-19 16:42:27 +02:00
1dcb54ba22
Optimize a-HiAndLowPass
...
- Better formula for the lpf smoothness parameter. It is computed only
on init and rate change anyway...
- Only run as many Biquads as needed to save computing power, esp. when
using low steepness and parameters are not changing.
2016-07-18 15:05:50 +02:00
d527fdf30a
Simplify the logic in HiAndLowPass filter
...
And beef up comments for readers using the filter as an example.
2016-07-18 11:15:09 +02:00
7e1a722a15
clean up Hp/Lp code
2016-07-18 10:53:48 +02:00
3458844878
cleanup High/Low Pass
...
* shorten Name
* fix typo in Time Constant
* remove some local variables
2016-07-17 14:10:13 +02:00
65eeeb7a65
remove old a-Hi/Low pass
2016-07-17 01:20:45 +02:00
00b8cff66f
clean up a-HP/LP
2016-07-17 01:20:23 +02:00
e7a154b9dd
Hi AND low pass filter -- fresh from the oven werks.
2016-07-16 23:05:30 +02:00
543e230f79
consistent height of a-eq a-hp/lp
2016-07-14 16:52:43 +02:00
a4ff28006e
midimon: add option to format note-names
2016-07-12 23:02:46 +02:00
4866106bcc
re-classify bundled lua scripts
...
* search by author:
- "Ardour Team" for "ready to use" plugins
- "Ardour Lua Task Force" = example plugins
* search by Category
- use "Example" for DSP plugins (except instruments)
2016-07-12 16:43:10 +02:00
30240b33e9
Make MIDI monitor a pass-through for audio and midi
...
MIDI monitor only accepted midi data and output that same data. That was
logical for a MIDI plugin, but a consequence is that automatic pin
configuration makes MIDI monitors opaque to audio data, which means
drag'n'dropping a MIDI monitor for debugging purposes can suddenly cut
audio, or even change the channel count if strict I/O is enabled.
Improve the MIDI monitor so that it passes through all incoming data
unchanged.
2016-07-12 01:47:02 +02:00
e8cd2949bd
update MIDIEvent lua bindings/example
2016-07-12 01:46:58 +02:00
57df370e2a
add a convenient lua forward mapped buffers method
2016-07-11 22:36:00 +02:00
2d32b50a3f
Improve MIDI monitor
2016-07-11 17:39:59 +02:00
1f08503ada
Add a new MIDI monitor plugin
...
This plugin lets through all incoming MIDI events, and also shows the
latest ones in a human-readable format directly on the mixer strip. The
user can choose the font size and the number of recent events displayed,
as well as whether to print values in decimal or hexadecimal, and
whether to print system events.
2016-07-11 15:29:56 +02:00
bcfe7c2daa
elaborate documented raw audio/midi buffer lua example
2016-07-11 03:05:43 +02:00
4bb54f4128
refine lua-script documentation
2016-07-10 16:48:38 +02:00
77fa4462f9
add a raw midi buffer plugin example
2016-07-10 14:46:41 +02:00
53b51ee536
update lua-biquad: add en/disable
2016-07-07 16:45:10 +02:00
29184a2b72
rewrite spectrogram using PBD::Ringbuffer
2016-07-07 15:37:11 +02:00
8d360e8628
fix a-High/LowPass transfer-fn display visual bleed
2016-07-06 04:05:46 +02:00
83e1d9fff3
tweak a-series plugin names
2016-07-05 17:17:59 +02:00
11d2074ee6
more lua-script updates:
...
* comments and explain amp4.lua
* move amp1-3 to "Example" category
2016-07-04 01:48:23 +02:00
3267b4892c
update lua scripts
...
* add proper amplifier (smooth gain change) + text-example
* remove commented no-inplace from High/Low pass
* amend 913609be
inline spectrogam re-init
2016-07-04 00:20:11 +02:00
913609becc
add grid to inline-spectrum
2016-07-03 14:46:29 +02:00
9c29e99345
HP/LP: enforce enum integr type (inline control sends continuous value)
2016-07-03 01:53:29 +02:00
ff0e1ac79b
update lua-scripts:
...
* add an inline spectrum display
* fix re-init HP/LP and Biquad
* add some comments, labels etc
2016-07-03 00:05:02 +02:00
f2d2bcfd10
fix lua filters for multi-channels processing
2016-07-01 16:02:03 +02:00
d47fb0ccaf
update lua script to use new remote_id lookup API
2016-05-31 23:51:22 +02:00
39e818a03a
prototype lua midi generators & filters and port event-rewrite
2016-05-29 20:36:32 +02:00
491d183c78
lua script to remove all unknown processors
2016-05-23 22:27:09 +02:00
1cf6661196
add a lua high/low pass filter with configurable slope
2016-05-23 00:43:55 +02:00
d6aa79bca5
complete lua DSP filter with parameter interpolation & comments
2016-05-21 16:24:15 +02:00
e82f0cb763
add an lua DSP example filter w/inline display
2016-05-20 23:43:47 +02:00
c560ca67bd
some love for session-scripts.
2016-05-14 23:59:32 +02:00
e89e799eb5
lua script to bounce regions w/processing and replace the region
2016-05-05 23:49:44 +02:00
d6fb182e9b
add Lua DSP plugin category
2016-04-29 02:57:57 +02:00
09e5730ffd
lua snippet to interact with portengine
2016-04-26 18:16:14 +02:00
eed0a7965c
example multi-channel synth for testing (revert this)
2016-04-15 23:05:51 +02:00
769163c889
change lua synth to multi-output
...
lua processors follow the same connection logic I/O as AudioUnit.
handy for testing.
2016-04-15 00:17:09 +02:00
5bbfd0d1bd
luaproc: assert instance access
2016-04-14 03:08:58 +02:00
baf6319613
update and cleanup lua example scripts
2016-04-11 14:36:57 +02:00
f67c204121
Add tom's additions to tom's loop and turn it into an Action Script
2016-04-11 00:04:53 +02:00
49656a2d7c
fix loop example script (updated API)
2016-04-10 23:02:00 +02:00
c76ef64870
some more example lua scripts
2016-04-10 20:57:24 +02:00
fcb9092e2c
add undo to the lua bounce+loop example script, just because.
2016-04-10 02:01:27 +02:00
fa7b15babf
exercise new lua bindings
2016-04-09 15:45:30 +02:00
5b60070034
add "for each track" snippet.
2016-04-07 22:13:00 +02:00
1c3c105574
lua-scope handle unconnected in-place buffers
2016-04-06 03:12:01 +02:00
5291fba919
tweak plugin-pin management dev script
2016-03-26 14:56:25 +01:00
75e34b291b
move LuaOSC into Ardour namespace
2016-03-26 14:54:45 +01:00
3f71e669ae
add lua script to test channel-mapping, update doc
2016-03-26 01:06:33 +01:00
57b7698312
Consistent C++ & Lua Namespace/Class names + documentation.
2016-03-24 22:54:20 +01:00
9ed7793326
add/update lua scripts
2016-03-23 23:45:39 +01:00
b47fb7a0b2
update scripts (Lua namespace refactoring)
2016-03-21 20:58:53 +01:00
88caab41b2
add more lua examples/doc
2016-03-19 16:41:59 +01:00
93449d3431
expose Lua OSC transmitter
2016-03-19 13:15:37 +01:00
4135735590
fix some plugin control name typos
2016-03-19 00:31:04 +01:00
abd65cfc70
Add a Lua Action Script to add scopes to all tracks
2016-03-18 22:57:53 +01:00
91207efbaa
add a lua inline scope processor
2016-03-18 21:34:22 +01:00
38c15c0714
Lua example script: fix some typos and add some comments
2016-02-27 14:56:36 +01:00
1473c2d364
Add some lua scripts
2016-02-23 15:44:41 +01:00