# A plugin profile — machine-readable facts about Keyframe.
#
# Host this next to your plugin as profile.ttl and it can be read by this
# catalogue and by anything else that speaks RDF. It is yours: edit it, version
# it with the plugin, and it stays correct because you control it.
#
# The subject below is the plugin's homepage, which is what identifies it here.
# If you would rather use your own namespace, change that one IRI and keep the
# foaf:homepage line, so the two can still be joined up.
#
# Terms: https://plugin-universe.com/ns   Guide: https://plugin-universe.com/about/profiles

@prefix trn:  <http://purl.org/stuff/transmissions/> .
@prefix pu:   <http://purl.org/stuff/plugin-universe/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix schema: <https://schema.org/> .

<https://strandz.it/jigdaw/plugins/keyframe/>
    a trn:PluginProfile ;
    rdfs:label "Keyframe" ;
    rdfs:comment "Stretches audio in time and shifts its pitch, independently, by reducing the signal to its local extrema and crossfading between playheads over a span the extrema's own density chooses." ;
    trn:vendor "danja" ;
    foaf:homepage <https://strandz.it/jigdaw/plugins/keyframe/> ;
    trn:format trn:Jig ;
    trn:role trn:AudioEffect ;
    trn:accepts trn:Audio ;
    trn:produces trn:Audio ;
    pu:category <http://purl.org/stuff/plugin-universe/category/effect> ;
    pu:licenceId "Apache-2.0" ;
    trn:caution "The algorithm is Matthew Nielsen's, Keyframe Time Stretching via Extrema Sampling, DAFx26, CC BY 4.0. This implementation is written from the paper. It colours the sound: added saturation and some blurring of spectral detail. It is at its best on dense, layered material and percussion, and at its weakest on solo voice and bells. A live input cannot be played faster than it arrives, so a time rate above 100 percent plays at the input's own rate, and with a pitch shift it splices back repeatedly. Below 100 percent the output falls behind the input by up to eight seconds and then skips forward. Both skips are splices, and both are audible. Economy quality joins the extrema with straight lines, which is the roughest reconstruction. Balanced and Full use a smooth curve between them. Full also places each extremum between samples. Changing Quality or Stereo empties the capture and restarts it, so it is heard as a short gap. Latency is a fixed 512 frames, which is two forced keyframe hops." .
