@@ -0,0 +1,42 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix mod: <http://moddevices.com/ns/mod#> . | |||||
@prefix modgui: <http://moddevices.com/ns/modgui#> . | |||||
<http://distrho.sf.net/examples/Info> | |||||
mod:brand "DISTRHO" ; | |||||
mod:label "Info" ; | |||||
modgui:gui [ | |||||
modgui:brand "DISTRHO" ; | |||||
modgui:label "Info" ; | |||||
modgui:resourcesDirectory <modgui> ; | |||||
modgui:iconTemplate <modgui/icon-info.html> ; | |||||
modgui:stylesheet <modgui/stylesheet-info.css> ; | |||||
modgui:screenshot <modgui/screenshot-info.png> ; | |||||
modgui:thumbnail <modgui/thumbnail-info.png> ; | |||||
modgui:javascript <modgui/script-info.js> ; | |||||
modgui:monitoredOutputs [ | |||||
lv2:symbol "buffer_size" ; | |||||
] , [ | |||||
lv2:symbol "time_playing" ; | |||||
] , [ | |||||
lv2:symbol "time_frame" ; | |||||
] , [ | |||||
lv2:symbol "time_validbbt" ; | |||||
] , [ | |||||
lv2:symbol "time_bar" ; | |||||
] , [ | |||||
lv2:symbol "time_beat" ; | |||||
] , [ | |||||
lv2:symbol "time_tick" ; | |||||
] , [ | |||||
lv2:symbol "time_barstarttick" ; | |||||
] , [ | |||||
lv2:symbol "time_beatsperbar" ; | |||||
] , [ | |||||
lv2:symbol "time_beattype" ; | |||||
] , [ | |||||
lv2:symbol "time_ticksperbeat" ; | |||||
] , [ | |||||
lv2:symbol "time_beatsperminute" ; | |||||
] ; | |||||
] . |
@@ -0,0 +1,73 @@ | |||||
<div class="mod-pedal distrho-info{{{cns}}}"> | |||||
<div mod-role="drag-handle" class="mod-drag-handle"></div> | |||||
<div class="tables clearfix"> | |||||
<div class="table-left"> | |||||
<table> | |||||
<tr> | |||||
<td>Buffer Size:</td> | |||||
<td mod-role="buffer_size">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Sample Rate:</td> | |||||
<td mod-role="sample_rate">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Playing:</td> | |||||
<td mod-role="time_playing">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Frame:</td> | |||||
<td mod-role="time_frame">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Time:</td> | |||||
<td mod-role="time_frame_s">---</td> | |||||
</tr> | |||||
</table> | |||||
</div> | |||||
<div class="table-right"> | |||||
<table> | |||||
<tr> | |||||
<td>BBT Valid:</td> | |||||
<td mod-role="time_validbbt">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Bar:</td> | |||||
<td mod-role="time_bar">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Beat:</td> | |||||
<td mod-role="time_beat">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Tick:</td> | |||||
<td mod-role="time_tick">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Bar Start Tick:</td> | |||||
<td mod-role="time_barstarttick">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Beats Per Bar:</td> | |||||
<td mod-role="time_beatsperbar">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Beat Type:</td> | |||||
<td mod-role="time_beattype">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>Ticks Per Beat:</td> | |||||
<td mod-role="time_ticksperbeat">---</td> | |||||
</tr> | |||||
<tr> | |||||
<td>BPM:</td> | |||||
<td mod-role="time_beatsperminute">---</td> | |||||
</tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
<div class="mod-logo"></div> | |||||
<div class="mod-magic"></div> | |||||
</div> |
@@ -0,0 +1,57 @@ | |||||
function (event) { | |||||
function magic () { | |||||
if (event.data.magicHasHappened) { | |||||
$('#pedalboard-dashboard').css({ | |||||
'background': "#111 url(/img/background.jpg) repeat", | |||||
}); | |||||
} else { | |||||
$('#pedalboard-dashboard').css({ | |||||
'background': "#111 url(/resources/tilesf1.jpg?uri=http%3A//distrho.sf.net/examples/Info) repeat", | |||||
}); | |||||
} | |||||
event.data.magicHasHappened = !event.data.magicHasHappened; | |||||
} | |||||
function handle_event (symbol, value) { | |||||
switch (symbol) { | |||||
case 'time_playing': | |||||
case 'time_validbbt': | |||||
value = value > 0.5 ? "Yes" : "No"; | |||||
break; | |||||
case 'time_beatsperminute': | |||||
value = value.toFixed(2); | |||||
break; | |||||
case 'time_frame': { | |||||
var time = value / SAMPLERATE; | |||||
var secs = time % 60; | |||||
var mins = (time / 60) % 60; | |||||
var hrs = (time / 3600) % 60; | |||||
event.icon.find('[mod-role=time_frame_s]').text(sprintf("%02d:%02d:%02d", hrs, mins, secs)); | |||||
// fall-through | |||||
} | |||||
default: | |||||
value = value.toFixed(); | |||||
break; | |||||
} | |||||
event.icon.find('[mod-role='+symbol+']').text(value); | |||||
} | |||||
if (event.type == 'start') { | |||||
var ports = event.ports; | |||||
for (var p in ports) { | |||||
if (ports[p].symbol[0] == ":") { | |||||
continue; | |||||
} | |||||
handle_event (ports[p].symbol, ports[p].value); | |||||
} | |||||
// special cases | |||||
event.icon.find ('[mod-role=sample_rate]').text(SAMPLERATE); | |||||
event.icon.find ('.mod-magic').click(magic); | |||||
} | |||||
else if (event.type == 'change') { | |||||
handle_event (event.symbol, event.value); | |||||
} | |||||
} |
@@ -0,0 +1,88 @@ | |||||
@import url(/fonts/nexa/stylesheet.css); | |||||
@import url(/fonts/questrial/stylesheet.css); | |||||
.distrho-info{{{cns}}} { | |||||
background-image:url(/resources/box.png{{{ns}}}); | |||||
background-position:center center; | |||||
background-repeat:no-repeat; | |||||
background-size:600px 300px; | |||||
width:600px; | |||||
height:300px; | |||||
/* position:absolute; */ | |||||
border-radius: 21px; | |||||
/* font-size: 2rem !important; */ | |||||
} | |||||
.distrho-info{{{cns}}} .mod-pedal-input.mono, | |||||
.distrho-info{{{cns}}} .mod-pedal-output.mono { | |||||
top: 60px !important; | |||||
} | |||||
.distrho-info{{{cns}}} .mod-pedal-input.stereo, | |||||
.distrho-info{{{cns}}} .mod-pedal-output.stereo { | |||||
top: 15px !important; | |||||
} | |||||
.distrho-info{{{cns}}} .mod-logo { | |||||
background: url(/img/watermark.png) 42px 146px no-repeat; | |||||
width: 100%; | |||||
height: 100%; | |||||
position: absolute; | |||||
top: 0px; | |||||
left: 0px; | |||||
} | |||||
@keyframes mod-magic{{{cns}}} { | |||||
0% { | |||||
opacity: 0.1; | |||||
} | |||||
100% { | |||||
opacity: 0.75; | |||||
} | |||||
} | |||||
.distrho-info{{{cns}}} .mod-magic { | |||||
background: url(/img/social/favicon.png) no-repeat; | |||||
width: 118px; | |||||
height: 118px; | |||||
position: absolute; | |||||
top: 158px; | |||||
left: 52px; | |||||
background-size: cover; | |||||
opacity: 0; | |||||
cursor: pointer; | |||||
z-index: 21; | |||||
animation: mod-magic{{{cns}}} 5s infinite; | |||||
animation-direction: alternate; | |||||
animation-timing-function: ease-in; | |||||
} | |||||
.distrho-info{{{cns}}} .tables { | |||||
display: flex; | |||||
flex-direction: row; | |||||
height: 100%; | |||||
padding: 21px; | |||||
font-family: monospace; | |||||
font-size: 1.8rem; | |||||
font-weight: bold; | |||||
} | |||||
.distrho-info{{{cns}}} .table-left, | |||||
.distrho-info{{{cns}}} .table-right { | |||||
width: 50%; | |||||
} | |||||
.distrho-info{{{cns}}} .table-left { | |||||
padding-left: 36px; | |||||
} | |||||
.distrho-info{{{cns}}} table { | |||||
border-collapse: separate; | |||||
border-spacing: 6px 1px; | |||||
} | |||||
.distrho-info{{{cns}}} tr > td:first-child { | |||||
text-align: right; | |||||
} | |||||
.distrho-info{{{cns}}} tr > td:last-child { | |||||
font-weight: lighter; | |||||
} |
@@ -0,0 +1,4 @@ | |||||
From http://www.myfreetextures.com/generated-seamless-tile-background-texture/ | |||||
Fair Use – You can use the images with credit / attribution to www.myfreetextures.com. | |||||
Sometimes it is not possible to give credit directly on a final project – in these cases please mention the site on your website, facebook or similar, whatever you think is fair. |