diff options
23 files changed, 1061 insertions, 72 deletions
diff --git a/content/images/logo.svg b/content/images/logo.svg new file mode 100644 index 0000000..3383c67 --- /dev/null +++ b/content/images/logo.svg @@ -0,0 +1,692 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="75" + height="48" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.48.5 r10040" + sodipodi:docname="logo.svg" + inkscape:export-filename="/home/second/open_source/lv2/lv2_14.png" + inkscape:export-xdpi="25.548374" + inkscape:export-ydpi="25.548374" + version="1.0"> + <defs + id="defs4"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2788" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient2548"> + <stop + style="stop-color:#6989a8;stop-opacity:1;" + offset="0" + id="stop2550" /> + <stop + style="stop-color:#182836;stop-opacity:1;" + offset="1" + id="stop2552" /> + </linearGradient> + <linearGradient + id="linearGradient3305"> + <stop + id="stop3307" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop3309" + offset="1" + style="stop-color:#3a3a3a;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3262"> + <stop + id="stop3264" + offset="0" + style="stop-color:#3d7bff;stop-opacity:1;" /> + <stop + id="stop3266" + offset="1" + style="stop-color:#0000a9;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3252"> + <stop + style="stop-color:#ff973d;stop-opacity:1;" + offset="0" + id="stop3254" /> + <stop + style="stop-color:#e35500;stop-opacity:1;" + offset="1" + id="stop3256" /> + </linearGradient> + <linearGradient + id="linearGradient3246"> + <stop + style="stop-color:#12ff3e;stop-opacity:1;" + offset="0" + id="stop3248" /> + <stop + style="stop-color:#00812f;stop-opacity:1;" + offset="1" + id="stop3250" /> + </linearGradient> + <linearGradient + id="linearGradient3061"> + <stop + id="stop3063" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop3065" + offset="1" + style="stop-color:#dbffe0;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3027"> + <stop + id="stop3029" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop3031" + offset="1" + style="stop-color:#fff8d8;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient2933"> + <stop + style="stop-color:none" + offset="0" + id="stop2935" /> + <stop + style="stop-color:#91a3a4;stop-opacity:1;" + offset="1" + id="stop2937" /> + </linearGradient> + <linearGradient + id="linearGradient2925"> + <stop + id="stop2927" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop2931" + offset="1" + style="stop-color:#cbdee4;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient2796"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2798" /> + <stop + style="stop-color:#d1e2d7;stop-opacity:1;" + offset="1" + id="stop2800" /> + </linearGradient> + <linearGradient + id="linearGradient2763"> + <stop + style="stop-color:#6c6c6c;stop-opacity:0.32467532;" + offset="0" + id="stop2765" /> + <stop + style="stop-color:#232323;stop-opacity:0.8831169;" + offset="1" + id="stop2767" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2925" + id="linearGradient2909" + gradientUnits="userSpaceOnUse" + x1="76.895813" + y1="1177.6821" + x2="76.895813" + y2="1330.9896" + gradientTransform="translate(-320,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2925" + id="linearGradient2911" + gradientUnits="userSpaceOnUse" + x1="-36.241272" + y1="1256.7371" + x2="211.24611" + y2="1256.7371" + gradientTransform="translate(-320,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient2913" + gradientUnits="userSpaceOnUse" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" + gradientTransform="translate(-320,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient2915" + gradientUnits="userSpaceOnUse" + x1="38.539104" + y1="1183.1274" + x2="38.539104" + y2="1243.2323" + gradientTransform="translate(-320,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3305" + id="linearGradient3182" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.29480612,0,0,0.29480612,110.68416,-144.81253)" + x1="76.895813" + y1="1177.6821" + x2="76.895813" + y2="1330.9896" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3194" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(136.2413,-1086.805)" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3252" + id="linearGradient3214" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(320,-220)" + x1="367.19733" + y1="1177.6821" + x2="367.19733" + y2="1335.806" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3252" + id="linearGradient3216" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(320,-220)" + x1="283.75873" + y1="1262.5349" + x2="535.47559" + y2="1262.5349" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3246" + id="linearGradient3226" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(640,-220)" + x1="367.19733" + y1="1177.6821" + x2="367.19733" + y2="1335.806" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3246" + id="linearGradient3228" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(640,-220)" + x1="283.75873" + y1="1262.5349" + x2="535.47559" + y2="1262.5349" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3238" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(640,-220)" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3240" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(640,-220)" + x1="38.539104" + y1="1183.1274" + x2="38.539104" + y2="1243.2323" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3242" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(960,-220)" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3244" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(960,-220)" + x1="38.539104" + y1="1183.1274" + x2="38.539104" + y2="1243.2323" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3262" + id="linearGradient3289" + gradientUnits="userSpaceOnUse" + x1="367.19733" + y1="1177.6821" + x2="367.19733" + y2="1335.806" + gradientTransform="translate(0,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3262" + id="linearGradient3291" + gradientUnits="userSpaceOnUse" + x1="283.75873" + y1="1262.5349" + x2="535.47559" + y2="1262.5349" + gradientTransform="translate(0,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3301" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(320,-220)" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient3303" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(320,-220)" + x1="38.539104" + y1="1183.1274" + x2="38.539104" + y2="1243.2323" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2933" + id="linearGradient2760" + gradientUnits="userSpaceOnUse" + x1="-240.41422" + y1="206.73718" + x2="-251.16864" + y2="106.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2933" + id="linearGradient2762" + gradientUnits="userSpaceOnUse" + x1="-240.41422" + y1="206.73718" + x2="-251.16864" + y2="106.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2933" + id="linearGradient2764" + gradientUnits="userSpaceOnUse" + x1="-240.41422" + y1="206.73718" + x2="-251.16864" + y2="106.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2790" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2792" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2794" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2814" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2816" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient2818" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3027" + id="linearGradient2828" + gradientUnits="userSpaceOnUse" + x1="-252.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3027" + id="linearGradient2830" + gradientUnits="userSpaceOnUse" + x1="-252.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3027" + id="linearGradient2832" + gradientUnits="userSpaceOnUse" + x1="-252.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3061" + id="linearGradient2850" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3061" + id="linearGradient2853" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3061" + id="linearGradient2855" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2548" + id="linearGradient1659" + gradientUnits="userSpaceOnUse" + x1="367.19733" + y1="1177.6821" + x2="367.19733" + y2="1335.806" + gradientTransform="translate(960,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2548" + id="linearGradient1661" + gradientUnits="userSpaceOnUse" + x1="283.75873" + y1="1262.5349" + x2="535.47559" + y2="1262.5349" + gradientTransform="translate(960,-220)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient1665" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient1667" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2796" + id="linearGradient1669" + gradientUnits="userSpaceOnUse" + x1="-251.41422" + y1="106.73718" + x2="-240.16864" + y2="206.73718" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient1671" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1280,-220)" + x1="-31.464466" + y1="1216.3615" + x2="214.21875" + y2="1216.3615" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2763" + id="linearGradient1673" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(1280,-220)" + x1="38.539104" + y1="1183.1274" + x2="38.539104" + y2="1243.2323" /> + <filter + inkscape:collect="always" + id="filter3872" + color-interpolation-filters="sRGB"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.8101965" + id="feGaussianBlur3874" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2" + inkscape:cx="78.727911" + inkscape:cy="77.38031" + inkscape:document-units="px" + inkscape:current-layer="layer3" + showgrid="false" + inkscape:window-width="2558" + inkscape:window-height="1550" + inkscape:window-x="0" + inkscape:window-y="49" + inkscape:grid-points="false" + inkscape:grid-bbox="false" + showguides="false" + inkscape:guide-bbox="true" + showborder="false" + inkscape:window-maximized="0" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <sodipodi:guide + orientation="vertical" + position="-55.553288,-803.36218" + id="guide2414" /> + <sodipodi:guide + orientation="vertical" + position="211.63206,-803.36218" + id="guide2416" /> + <sodipodi:guide + orientation="vertical" + position="470.23111,-803.36218" + id="guide2418" /> + <sodipodi:guide + orientation="horizontal" + position="-100,146.63578" + id="guide5156" /> + <sodipodi:guide + orientation="horizontal" + position="-100,-3.5208426" + id="guide2790" /> + <sodipodi:guide + orientation="vertical" + position="366.0318,-803.36218" + id="guide4946" /> + <sodipodi:guide + orientation="horizontal" + position="-100,221.58912" + id="guide2841" /> + <sodipodi:guide + orientation="horizontal" + position="-100,121.63782" + id="guide2914" /> + <sodipodi:guide + orientation="horizontal" + position="-100,-675.36218" + id="guide3181" /> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="-100px" + originy="-803.36218px" + spacingx="5px" + spacingy="5px" + color="#3f3fff" + empcolor="#3f3fff" + opacity="0.15" + empopacity="0.38" + empspacing="5" + visible="true" + enabled="true" + snapvisiblegridlinesonly="true" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="logos" + transform="translate(-100,-201)"> + <rect + style="color:#000000;fill:url(#linearGradient3182);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.73701531;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + id="rect3112" + width="73.468636" + height="45.874775" + x="100.36851" + y="202.7439" + rx="8.1237192" + ry="8.1237192" + inkscape:export-filename="/home/second/open_source/lv2/lv2_shaded_black.png" + inkscape:export-xdpi="35.282356" + inkscape:export-ydpi="35.282356" /> + <path + style="opacity:0.13207547;color:#000000;fill:url(#linearGradient3194);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3872)" + d="m 127.74127,92.132568 c -14.76707,0.5576 -26.5,12.654202 -26.5,27.562502 l 0,40.5399 c 25.43862,-15.2623 73.40412,-11.5913 100.06492,0.4839 41.20334,18.6619 98.86951,-8.9236 149.15383,-23.2738 l 0,-17.75 c 0,-15.2661 -12.2964,-27.562502 -27.5625,-27.562502 l -194.09375,0 c -0.3578,0 -0.70809,-0.0134 -1.0625,0 z" + id="path3124" + sodipodi:nodetypes="cccsccccc" + inkscape:export-filename="/home/second/open_source/lv2/lv2_shaded_black.png" + inkscape:export-xdpi="35.282356" + inkscape:export-ydpi="35.282356" + inkscape:connector-curvature="0" + transform="matrix(-0.29480612,0,0,-0.29480612,204.2733,275.40945)" /> + <g + style="fill:url(#linearGradient2788);fill-opacity:1;stroke:none;display:inline" + id="g2774" + transform="matrix(0.29480612,0,0,0.29480612,205.6553,179.47423)" + inkscape:export-filename="/home/second/open_source/lv2/lv2_shaded_black.png" + inkscape:export-xdpi="35.282356" + inkscape:export-ydpi="35.282356"> + <path + sodipodi:nodetypes="ccccccc" + id="path2776" + d="m -326.41422,106.73718 0,100 76.14035,0 -9.1189,-24.98017 -41.02145,0 0,-75.01983 -26,0 z" + style="fill:url(#linearGradient2790);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2778" + d="m -241.48671,206.73718 -36.36457,-100 26.74233,0 27.28153,75.01688 27.25231,-75.01688 26.80557,0 -36.3974,100 -35.31977,0 z" + style="fill:url(#linearGradient2792);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="csccccsssccs" + id="path2780" + d="m -135.65517,120.32569 c 5.0484,8.26504 4.74593,19.89479 -1.76989,27.9249 -9.14486,11.27014 -15.23148,12.55506 -21.71065,18.50935 l 25.91456,0 0,14.97724 -54.26192,0 c 3.37914,-8.8667 5.89828,-13.7574 10.11145,-18.57157 10.71759,-12.24644 31.69619,-20.20549 30.41097,-31.2468 -0.36091,-3.1006 -1.26682,-10.20208 -14.85497,-10.20208 l -5.01557,0 5.43738,-14.97955 c 15.77275,0 21.82231,7.17684 25.73864,13.58851 z" + style="fill:url(#linearGradient2794);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/content/images/screenshots/calf_equalizer.jpg b/content/images/screenshots/calf_equalizer.jpg Binary files differnew file mode 100644 index 0000000..64e1b07 --- /dev/null +++ b/content/images/screenshots/calf_equalizer.jpg diff --git a/content/images/screenshots/calf_monosynth.jpg b/content/images/screenshots/calf_monosynth.jpg Binary files differnew file mode 100644 index 0000000..f137350 --- /dev/null +++ b/content/images/screenshots/calf_monosynth.jpg diff --git a/content/images/screenshots/calf_multiband_compressor.jpg b/content/images/screenshots/calf_multiband_compressor.jpg Binary files differnew file mode 100644 index 0000000..9e3d2a7 --- /dev/null +++ b/content/images/screenshots/calf_multiband_compressor.jpg diff --git a/content/images/screenshots/calf_organ.jpg b/content/images/screenshots/calf_organ.jpg Binary files differnew file mode 100644 index 0000000..e5d492c --- /dev/null +++ b/content/images/screenshots/calf_organ.jpg diff --git a/content/images/screenshots/casynth.png b/content/images/screenshots/casynth.png Binary files differnew file mode 100644 index 0000000..ce25a99 --- /dev/null +++ b/content/images/screenshots/casynth.png diff --git a/content/images/screenshots/distrho_easyssp.png b/content/images/screenshots/distrho_easyssp.png Binary files differnew file mode 100644 index 0000000..3363937 --- /dev/null +++ b/content/images/screenshots/distrho_easyssp.png diff --git a/content/images/screenshots/distrho_obxd.png b/content/images/screenshots/distrho_obxd.png Binary files differnew file mode 100644 index 0000000..b6082bb --- /dev/null +++ b/content/images/screenshots/distrho_obxd.png diff --git a/content/images/screenshots/distrho_tal_noisemaker.png b/content/images/screenshots/distrho_tal_noisemaker.png Binary files differnew file mode 100644 index 0000000..f54198d --- /dev/null +++ b/content/images/screenshots/distrho_tal_noisemaker.png diff --git a/content/images/screenshots/envfollower.png b/content/images/screenshots/envfollower.png Binary files differnew file mode 100644 index 0000000..8182db3 --- /dev/null +++ b/content/images/screenshots/envfollower.png diff --git a/content/images/screenshots/hip2b.png b/content/images/screenshots/hip2b.png Binary files differnew file mode 100644 index 0000000..6c4b5d4 --- /dev/null +++ b/content/images/screenshots/hip2b.png diff --git a/content/images/screenshots/mod.png b/content/images/screenshots/mod.png Binary files differnew file mode 100644 index 0000000..1245e77 --- /dev/null +++ b/content/images/screenshots/mod.png diff --git a/content/images/screenshots/powercut.png b/content/images/screenshots/powercut.png Binary files differnew file mode 100644 index 0000000..d9715e0 --- /dev/null +++ b/content/images/screenshots/powercut.png diff --git a/content/images/screenshots/stuck.png b/content/images/screenshots/stuck.png Binary files differnew file mode 100644 index 0000000..3f0e5df --- /dev/null +++ b/content/images/screenshots/stuck.png diff --git a/content/pages/developing.md b/content/pages/developing.md index 66c5794..9ebf781 100644 --- a/content/pages/developing.md +++ b/content/pages/developing.md @@ -76,6 +76,8 @@ Both LV2 itself and this site are stored in [git](http://lv2plug.in/git): git clone http://lv2plug.in/git/lv2 git clone http://lv2plug.in/git/lv2site +There is also an official mirror on [Github](https://github.com/drobilla/lv2). + Contributions are most welcome. If you plan to implement something significant, it is a good idea to discuss it with the community on the mailing list to be sure you're headed in the right direction. Feel free to get diff --git a/content/pages/index.md b/content/pages/index.md index e5f94d1..5968f45 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,10 +1,11 @@ Title: save_as: index.html +Gallery: . LV2 is a [free](http://www.gnu.org/philosophy/free-sw.html) standard for audio -plugins, used by hundreds of plugins and other projects. At its core, LV2 -is a simple and stable interface, accompanied by *extensions* which add -functionality to support the needs of increasingly powerful audio software. +plugins, used by hundreds of plugins and other projects. At its core, LV2 is a +simple stable interface, accompanied by *extensions* which add functionality to +support the needs of increasingly powerful audio software. * [**Download LV2 1.10.0**](http://lv2plug.in/spec/lv2-1.10.0.tar.bz2) [(sig)](http://lv2plug.in/spec/lv2-1.10.0.tar.bz2.sig) diff --git a/extra_plugins/gallery.py b/extra_plugins/gallery.py new file mode 100644 index 0000000..3c5011d --- /dev/null +++ b/extra_plugins/gallery.py @@ -0,0 +1,184 @@ +import logging, json, os, sys, time, Image +from pelican import signals +from PIL import ImageOps + +""" + +Gallery plugin for Pelican +========================== + +This plugin creates a gallery attribute on content (article.gallery) you want to create. You +will define named presets which can be referenced in your templates. It will attempt to be smart +about regenerating photos once they exist. + +- Resizes images respective of aspect ratio +- Allows for multiple presets e.g. -> article.gallery.photos[0]['thumb'] + +Settings: +--------- + +Example configuration: + +GALLERY_FOLDER = "galleries" +GALLERY_SRC_PATH = "%s%s" % (BASE_PATH, "gallery_src") +GALLERY_OUTPUT_PATH = "%s%s%s" % (BASE_PATH, OUTPUT_PATH, GALLERY_FOLDER) +GALLERY_REGENERATE_EXISTING = False +GALLERY_PRESETS = [ + {"name": "thumb", "actions": [{"type": "fit", "height": 100, "width": 100, "from": (0.5, 0.5) }]}, + {"name": "slider", "actions": [{"type": "fit", "height": 300, "width": 900, "from": (0.5, 0.5) }]}, + {"name": "large", "actions": [{"type": "resize", "height": 640, "width": 850, "from": (0.5, 0.5) }]}, + {"name": "thumb_greyscale", + "actions": [ + {"type": "fit", "height": 100, "width": 100, "from": (0.5, 0.5) }, + {"type": "greyscale"} + ]}, + ] + +# This setting is optional, used for thumbnails in bootstrap +THUMBNAIL_GALLERY_CLASS = "span2" + +Article metadata example: +------------------------- +Gallery: <Relative path from GALLERY_SRC_PATH> + +{% if article.gallery %} + <h3>Gallery</h3> + <ul class="thumbnails"> + {% for photo_set in article.gallery.photos %} + <li class="{{THUMBNAIL_GALLERY_CLASS}}"> + <a href="{{ SITEURL }}/{{ photo_set['large'].src }}" class="thumbnail fancybox-thumbs" rel="article.gallery.galleryName"> + <img src="{{ SITEURL }}/{{ photo_set['thumb'].src }}" alt="{{ photo_set['thumb'].src }}" /> + </a> + </li> + {% endfor %} + </ul> +{% endif %} + +""" + + +class Photo(): + + """ Class to represent a Photo, also handles applying presets to itself""" + def __init__(self, gallery, filename, output_path, preset): + self.gallery = gallery + self.filename = filename + self.input_file = "%s%s%s" % (self.gallery.absolute_src_path, os.sep, self.filename) + self.output_path = output_path + self.output_file = "%s%s%s" % (output_path, os.sep, self.filename) + self.preset = preset + self.image = None + self.width = None + self.height = None + self.image = Image.open(self.input_file) + self.process_image() + self.image = Image.open(self.output_file) + self.width, self.height = self.image.size + self.src = "%s%s%s%s%s%s%s" %(self.gallery.generator.settings["GALLERY_FOLDER"], + os.sep, + self.gallery.gallery_name, + os.sep, + self.preset["name"], + os.sep, + self.filename) + + + def process_image(self): + """Responsible for applying presets to the Image obj""" + if not os.path.isfile(self.output_file) or self.gallery.generator.settings["GALLERY_REGENERATE_EXISTING"]: + + # Actions should be processed in order of appearance in actions array + for i in range(len(self.preset["actions"])): + a = self.preset["actions"][i] + + if a["type"] == "fit": + if not "from" in a: + a["from"] = (0.5, 0.5) # crop from middle by default + + self.image = ImageOps.fit(self.image, (a["width"], a["height"],), method=Image.ANTIALIAS, centering=a["from"]) + + if a["type"] == "greyscale": + self.image = ImageOps.grayscale(self.image) + + if a["type"] == "resize": + self.image.thumbnail((a["width"], a["height"]), Image.NEAREST) + + # TODO: Write other useful transforms here! + + + self.image.save(self.output_file, "JPEG") + + + +class Gallery(): + """Represents a Gallery, iterate of gallery.photos in your Template""" + def __init__(self, generator, metadata): + self.generator = generator + self.gallery_name = None + self.files = [] + self.photos = [] + self.absolute_src_path = None + self.absolute_output_path = None + self.metadata = metadata + self.preset_dir = [] + + if "gallery" in self.metadata: + self.gallery_name = self.metadata["gallery"] + self.absolute_src_path = "%s%s%s" % (self.generator.settings["GALLERY_SRC_PATH"], + os.sep, + self.gallery_name) + + self.absolute_output_path = "%s%s%s" % (self.generator.settings["GALLERY_OUTPUT_PATH"], + os.sep, + self.gallery_name) + + self.create_preset_folders() + self.create_preset_images() + + def create_preset_images(self): + """Creates the image assets for each preset and returns a PhotoSet object""" + for f in self.get_files_from_data(): + photoInstances = {} + for preset in self.generator.settings["GALLERY_PRESETS"]: + preset_dir = "%s%s%s" % (self.absolute_output_path, + os.sep, + preset["name"]) + photoInstances[preset["name"]] = Photo(self, f, preset_dir, preset) + + self.photos.append(photoInstances) + + def create_preset_folders(self): + """Creates the folder structure for a gallery""" + + if not os.path.exists(self.absolute_output_path): + os.makedirs(self.absolute_output_path) + + # Create gallery preset folders for this gallery + if "GALLERY_PRESETS" in self.generator.settings: + for preset in self.generator.settings["GALLERY_PRESETS"]: + preset_dir = "%s%s%s" % (self.absolute_output_path, + os.sep, + preset["name"]) + self.preset_dir.append(preset_dir) + if not os.path.exists(preset_dir): + os.makedirs(preset_dir) + else: + print "You have no presets defined, please add GALLERY_PRESETS array to settings file, with at least one preset defined, see docs." + + def get_files_from_data(self): + print "getting files for %s" % self.absolute_src_path + from os import listdir + from os.path import isfile, join + return [ f for f in listdir(self.absolute_src_path) if isfile(join(self.absolute_src_path,f)) and f != ".DS_Store" ] + + + + +def get_galleries(generator, metadata): + if "gallery" in metadata.keys(): + metadata["gallery"] = Gallery(generator, metadata) + +def register(): + #signals.article_generator_init.connect(init_gallery_plugin) + #signals.article_generator_context.connect(get_galleries) + signals.page_generator_context.connect(get_galleries) diff --git a/pelicanconf.py b/pelicanconf.py index e24a3e7..7b4b178 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -4,10 +4,10 @@ from __future__ import unicode_literals AUTHOR = u'David Robillard' SITENAME = u'LV2' -SITELOGO = 'images/logo.png' +SITELOGO = 'images/logo.svg' SITELOGO_WIDTH = '75' SITELOGO_HEIGHT = '48' -SITEURL = '' +SITEURL = 'http://lv2plug.in' PATH = 'content' @@ -54,3 +54,21 @@ DISPLAY_TAGS_ON_SIDEBAR = False DISPLAY_RECENT_POSTS_ON_SIDEBAR = False DISPLAY_SERIES_ON_SIDEBAR = False DISPLAY_CATEGORIES_ON_SIDEBAR = False + +PLUGIN_PATHS = ["extra_plugins"] +PLUGINS = ["gallery"] + +GALLERY_FOLDER = "galleries" +GALLERY_SRC_PATH = "%s%s" % (PATH, "/images/screenshots") +GALLERY_OUTPUT_PATH = "%s%s" % ("output/", GALLERY_FOLDER) +GALLERY_REGENERATE_EXISTING = True +GALLERY_PRESETS = [ + {"name": "thumb", + "actions": [{"type": "fit", "height": 100, "width": 100, "from": (0.5, 0.5)}]}, + {"name": "slider", + "actions" : []}, + {"name": "large", + "actions": [{"type": "resize", "height": 640, "width": 850, "from": (0.5, 0.5)}]}, + {"name": "thumb_greyscale", + "actions": [{"type": "fit", "height": 100, "width": 100, "from": (0.5, 0.5)}, + {"type": "greyscale"} ]}] diff --git a/themes/lv2/static/css/main.css b/themes/lv2/static/css/main.css index ace146d..2031cf9 100644 --- a/themes/lv2/static/css/main.css +++ b/themes/lv2/static/css/main.css @@ -1,7 +1,7 @@ /* Page Style */ body { - font-family: sans-serif; + font-family: sans-serif; font-size: 100%; background-color: #fff; color: #000; @@ -14,7 +14,7 @@ a:link { } a:visited { - text-decoration: none; + text-decoration: none; } a:link { @@ -77,7 +77,7 @@ table { th { vertical-align: text-top; - background-color: #F8F8F8; + background-color: #F8F8F8; } td, th { @@ -86,115 +86,115 @@ td, th { } th { - font-weight: bold; - text-align: left; + font-weight: bold; + text-align: left; } time, #sitename { - color: #c0c0c0; - font-size: 75%; - font-variant: small-caps; + color: #c0c0c0; + font-size: 75%; + font-variant: small-caps; } img { - border: none; + border: none; } blockquote { - color: #333; - margin: 0px; - padding: 0 4em 0 4em; + color: #333; + margin: 0px; + padding: 0 4em 0 4em; } p { - text-indent: 0px; + text-indent: 0px; } p.caption { - font-size: 80%; - margin-top: 0; + font-size: 80%; + margin-top: 0; } ul, ol { - padding: .25em 0em 0 3em; + padding: .25em 0em 0 3em; } ul li, ol li { - padding: 0 0 1em 0; + padding: 0 0 1em 0; } strong { - font-weight: bold; + font-weight: bold; } tt, pre { - font-family: monospace; - line-height: 1.2em; + font-family: monospace; + line-height: 1.2em; } pre { - font-size: 0.8em; - overflow: auto; - padding: 0.25em; - margin: 0.5em; - line-height: 1.5em; + font-size: 0.8em; + overflow: auto; + padding: 0.25em; + margin: 0.5em; + line-height: 1.5em; } nav { - background-color: #222; - background: linear-gradient(to bottom, #444 0%, #000 100%); - border-bottom: solid 2px #444; - border-left: solid 2px #444; - border-right: solid 2px #444; - border-radius: 0 0 6px 6px; - color: #EEE; - margin: 0; - margin-left: auto; - margin-right: auto; - max-width: 60em; - padding: 0.5em; + background-color: #222; + background: linear-gradient(to bottom, #444 0%, #000 100%); + border-bottom: solid 2px #444; + border-left: solid 2px #444; + border-right: solid 2px #444; + border-radius: 0 0 6px 6px; + color: #EEE; + margin: 0; + margin-left: auto; + margin-right: auto; + max-width: 60em; + padding: 0.5em; } nav a, nav a:link, nav a:visited { - border-bottom: none; - color: #EEE; + border-bottom: none; + color: #EEE; } nav ul { - margin: 0; - padding: 0; - font-size: large; - font-weight: bold; + margin: 0; + padding: 0; + font-size: large; + font-weight: bold; } nav li { - display: inline; - margin-right: 1em; + display: inline; + margin-right: 1em; } #logo { - vertical-align: middle; + vertical-align: middle; } header a#page-title { - font-weight: bold; - font-size: x-large; - color: black; + font-weight: bold; + font-size: x-large; + color: black; } #content { - padding: 0.5em 2em 2em 2em; - max-width: 60em; - margin-left: auto; - margin-right: auto; + padding: 0.5em 2em 2em 2em; + max-width: 60em; + margin-left: auto; + margin-right: auto; } .highlight { - font-family: monospace; - background-color: black; - border: solid 1px #eee; - color: white; - border-radius: 6px; + font-family: monospace; + background-color: black; + border: solid 1px #eee; + color: white; + border-radius: 6px; } diff --git a/themes/lv2/static/css/slideshow.css b/themes/lv2/static/css/slideshow.css new file mode 100644 index 0000000..7fe664d --- /dev/null +++ b/themes/lv2/static/css/slideshow.css @@ -0,0 +1,38 @@ +#slideshow { + background-color: #000; + border: 3px solid #000; + border-radius: 6px; + display: inline-block; + height: 20em; + line-height: 20em; + margin: 1em; + margin-left: auto; + margin-right: auto; + position: relative; + text-align: right; + vertical-align: middle; + width: 20em; +} + +#slideshow img { + left: 0; + width: 100%; + height: auto; + max-height: 100%; + opacity: 0; + position: absolute; + text-align: center; + transition-duration: 1s; + transition-property: opacity; + vertical-align: middle; +} + +#slideshow .fadein { + opacity: 1.0; + transform-origin: bottom left; +} + +#slideshow .fadeout { + opacity: 0.0; + transform-origin: bottom left; +} diff --git a/themes/lv2/static/js/slideshow.js b/themes/lv2/static/js/slideshow.js new file mode 100644 index 0000000..d9fb9c5 --- /dev/null +++ b/themes/lv2/static/js/slideshow.js @@ -0,0 +1,40 @@ +function getPreviousNode(n) { + var p = n.previousSibling; + while (p && p.nodeType !== 1) { + p = p.previousSibling; + } + return p; +} + +function startSlideShow() { + var slideshow = document.getElementById("slideshow"), + imgs = slideshow.getElementsByTagName("img"), + n = imgs.length, + m = Math.floor((Math.random() * n)), + pred = getPreviousNode(slideshow); + + // Shrink width of predecessor so gallery fits beside it + if (pred) { + pred.style.width = "50%"; + pred.style.display = "inline-block"; + } + + // Start transition of initial image + imgs[m].className = "fadein"; + m = (m + 1) % n; + + function tick() { + // Fade out the previous image, and fade in the next + var prev = (m + n - 1) % n, + next = (m + 1) % n; + + imgs[prev].className = ""; + imgs[m].className = "fadeout"; + imgs[next].className = "fadein"; + + m = (m + 1) % n; + } + window.setInterval(tick, 4000); +} + +startSlideShow(); diff --git a/themes/lv2/templates/base.html b/themes/lv2/templates/base.html index db03cfa..00f066d 100644 --- a/themes/lv2/templates/base.html +++ b/themes/lv2/templates/base.html @@ -1,17 +1,19 @@ <!DOCTYPE html> <html lang="en"> <head> - <title>{% block title %}{{ SITENAME }}{%endblock%}</title> - <meta charset="utf-8" /> - <link rel="stylesheet" href="{{ SITEURL }}/theme/css/{{ CSS_FILE }}" type="text/css" /> - <link href="{{ SITEURL }}/{{ FEED }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} ATOM Feed" /> - {% if FEED_RSS %} - <link href="{{ SITEURL }}/{{ FEED_RSS }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" /> - {% endif %} + {% block head %} + <title>{% block title %}{{ SITENAME }}{%endblock%}</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="{{ SITEURL }}/theme/css/{{ CSS_FILE }}" type="text/css" /> + <link href="{{ SITEURL }}/{{ FEED }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} ATOM Feed" /> + {% if FEED_RSS %} + <link href="{{ SITEURL }}/{{ FEED_RSS }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" /> + {% endif %} + {% endblock %} </head> <body> - {% include 'github.html' %} + <!-- {% include 'github.html' %} --> <nav> <ul> <li> @@ -23,7 +25,7 @@ {% endif %} </a> </li> - + {% for title, link in MENUITEMS %} <li><a href="{{ link }}">{{ title }}</a></li> {% endfor %} diff --git a/themes/lv2/templates/page.html b/themes/lv2/templates/page.html index 33f6aca..762dd27 100644 --- a/themes/lv2/templates/page.html +++ b/themes/lv2/templates/page.html @@ -1,4 +1,8 @@ {% extends "base.html" %} +{% block head %} + {{ super() }} + <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/slideshow.css" /> +{% endblock %} {% block title %} {% if page.title %} {{ page.title }} @@ -13,4 +17,12 @@ {% endif %} </header> {{ page.content }} + {% if page.gallery %} + <div id="slideshow"> + {% for photo_set in page.gallery.photos %} + <img src="{{ SITEURL }}/{{ photo_set['slider'].src }}" alt="{{ photo_set['slider'].src }}" /> + {% endfor %} + </div> + <script type="text/javascript" src="{{ SITEURL }}/theme/js/slideshow.js"></script> + {% endif %} {% endblock %} |