1
(let ((newplugin (glame_plugin_define (let* ((net (filter-new))
2
(extend (filter-add-node net (filter-new (plugin_get "extend")) "extend"))
3
(mix (filter-add-node net (filter-new (plugin_get "mix")) "mix"))
4
(one2n (filter-add-node net (filter-new (plugin_get "one2n")) "one2n"))
5
(delay (filter-add-node net (filter-new (plugin_get "delay")) "delay"))
6
(volume-adjust (filter-add-node net (filter-new (plugin_get "volume_adjust")) "volume-adjust")))
7
(let ((param (call-with-current-continuation
10
(if (string=? (param-label param) "time")
12
(filter-params extend))))))
13
(param-set! param 600.000000)
14
(set-property! param "_desc" "extend time in ms"))
15
(set-property! extend "canvas_y" "5.000000")
16
(set-property! extend "canvas_x" "-265.000000")
17
(let ((param (call-with-current-continuation
20
(if (string=? (param-label param) "position")
22
(filter-params mix))))))
23
(param-set! param 0.000000))
24
(let ((param (call-with-current-continuation
27
(if (string=? (param-label param) "gain")
29
(filter-params mix))))))
30
(param-set! param 1.000000))
31
(set-property! mix "canvas_y" "18.000000")
32
(set-property! mix "canvas_x" "-96.000000")
33
(set-property! one2n "canvas_y" "18.000000")
34
(set-property! one2n "canvas_x" "161.000000")
35
(let ((param (call-with-current-continuation
38
(if (string=? (param-label param) "delay")
40
(filter-params delay))))))
41
(param-set! param 200.000000))
42
(set-property! delay "canvas_y" "142.000000")
43
(set-property! delay "canvas_x" "161.000000")
44
(let ((param (call-with-current-continuation
47
(if (string=? (param-label param) "factor")
49
(filter-params volume-adjust))))))
50
(param-set! param 0.700000))
51
(set-property! volume-adjust "canvas_y" "125.000000")
52
(set-property! volume-adjust "canvas_x" "-96.000000")
53
(filternetwork_add_input net extend "in" "in" "echo source")
54
(filternetwork_add_param net extend "time" "extend" "time to extend")
55
(filternetwork_add_param net mix "gain" "gain" "output gain")
56
(filternetwork_add_output net one2n "out" "out" "source with echo")
57
(filternetwork_add_param net delay "delay" "delay" "echo delay")
58
(filternetwork_add_param net volume-adjust "factor" "mix" "echo mix ratio")
59
(let ((pipe (filter-connect extend "out" mix "in")))
60
(filterpipe_set_destparam pipe "gain" 1.000000)
61
(filterpipe_set_destparam pipe "offset" 0.000000)
63
(let ((pipe (filter-connect mix "out" one2n "in")))
65
(let ((pipe (filter-connect one2n "out" delay "in")))
67
(let ((pipe (filter-connect delay "out" volume-adjust "in")))
69
(let ((pipe (filter-connect volume-adjust "out" mix "in")))
70
(filterpipe_set_destparam pipe "gain" 1.000000)
71
(filterpipe_set_destparam pipe "offset" 0.000000)
75
)) (if (filter? newplugin) newplugin
77
(plugin_set newplugin PLUGIN_PIXMAP "echo.png")
78
(plugin_set newplugin PLUGIN_LABEL "Echo (network)")
79
(plugin_set newplugin PLUGIN_DESCRIPTION "echo effect")
80
(plugin_set newplugin PLUGIN_CATEGORY "Effects"))))