@prefix doap: . @prefix lv2: . @prefix rdf: . @prefix rdfs: . @prefix units: . @prefix urid: . @prefix atom: . @prefix midi: . @prefix epp: . @prefix uiext: . @prefix idpy: . @prefix foaf: . @prefix mod: . @prefix param: . @prefix work: . @prefix pg: . @prefix pipedal_ui: . @prefix ui: . @prefix atom: . @prefix patch: . @prefix rdfs: . @prefix state: . @prefix urid: . @prefix xsd: . @prefix cabir: . @prefix toobimpulse: . cabir:impulseFile1Group a param:ControlGroup , pg:InputGroup ; lv2:name "Impulse Response 1" ; lv2:symbol "impulse1" . cabir:impulseFile2Group a param:ControlGroup , pg:InputGroup ; lv2:name "Impulse Response 2" ; lv2:symbol "impulse2" . cabir:impulseFile3Group a param:ControlGroup , pg:InputGroup ; lv2:name "Impulse Response 3" ; lv2:symbol "impulse3" . cabir:impulseFile a rdf:property; rdfs:label "IR"; pg:group cabir:impulseFile1Group ; rdfs:range atom:Path. cabir:impulseFile2 a rdf:property; rdfs:label "IR"; pg:group cabir:impulseFile2Group ; rdfs:range atom:Path. cabir:impulseFile3 a rdf:property; rdfs:label "IR"; pg:group cabir:impulseFile3Group ; rdfs:range atom:Path. a foaf:Person ; foaf:name "Robin Davies" ; foaf:mbox ; foaf:homepage . a lv2:Plugin , lv2:ReverbPlugin ; doap:name "TooB Cab IR" , "TooB Cab IR"@en-gb ; doap:license ; doap:maintainer ; lv2:minorVersion 0 ; lv2:microVersion 14 ; rdfs:comment """ TooB Cab IR is a convolution-based guitar cabinet impulse response simulator. TooB Cab IR allows you to select and mix impulse responses for up to three microphone positions. Mixing is done before convolution FFTs are calculated, so there is no performance cost for using more than one impulse response file. Cab IR files are usually short, but sometimes include room response impulse files, which can be quite long. The Max T control determines the maximum length to use for impulse response files. If the length of the impulse file is longer than the specified time, samples occuring after the specified time are discarded, and the tail of the impulse convolution is fed back into the imput of the convolution. This ensures a smooth reverb tail, and has little effect on the quality of the resulting reverb. If the impulse file is shorter than the specified time, then all samples in the impulse file are used, and no feedback occurs. Toob Convolution Reverb comes with a nominal set of cabinet impulse files to get you started. You are strongly encouraged to seek out reverb impulse files on the internet. Special thanks are extended to Kristoffer Ekstrand of Adventure Kid Research & Technology, who generously provided the base set of impulse files distributed with Toob Cab IR. --- ![CC-BY-4.0](/img/cc-by.png) By: Kristoffer Ekstrand, Adventure Kid Research & Technology. The following files are licensed under a [Creative Commons Attribution 4.0 International License.][1] ``` 80s UK 001.wav 80s UK 002.wav 80s US 001.wav 80s US 002.wav Modern UK 001.wav Modern UK 002.wav Modern US 001.wav Modern US 002.wav Modern US 003.wav Modern US 004.wav Radio 001.wav Speaker 001.wav Speaker 002.wav Vintage UK 001.wav Vintage UK 002.wav Vintage US 001.wav Vintage US 002.wav ``` Source: [1]: https://creativecommons.org/licenses/by/4.0/ """ ; mod:brand "TooB"; mod:label "Convolution Reverb"; lv2:requiredFeature urid:map, state:makePath, state:mapPath ; lv2:optionalFeature state::freePath; lv2:extensionData state:interface; lv2:optionalFeature lv2:hardRTCapable; patch:readable cabir:impulseFile, cabir:impulseFile2, cabir:impulseFile3; patch:writable cabir:impulseFile,cabir:impulseFile2,cabir:impulseFile3; lv2:extensionData state:interface, work:interface; lv2:port [ a lv2:InputPort , lv2:ControlPort ; lv2:index 0 ; lv2:symbol "reverb_mix" ; lv2:name "Volume"; pg:group cabir:impulseFile1Group ; lv2:default -10.0 ; lv2:minimum -40.0 ; lv2:maximum 20.0 ; units:unit units:db ; lv2:scalePoint [ rdfs:label "-INF" ; rdf:value -40.0 ]; rdfs:comment "Volume for impulse file #1." ; ], [ a lv2:InputPort , lv2:ControlPort ; lv2:index 1 ; lv2:symbol "reverb_mix2" ; lv2:name "Volume"; pg:group cabir:impulseFile2Group ; lv2:default -10.0 ; lv2:minimum -40.0 ; lv2:maximum 20.0 ; units:unit units:db ; lv2:scalePoint [ rdfs:label "-INF" ; rdf:value -40.0 ]; rdfs:comment "Volume for impulse file #2." ; ], [ a lv2:InputPort , lv2:ControlPort ; lv2:index 2 ; lv2:symbol "reverb_mix3" ; lv2:name "Volume"; pg:group cabir:impulseFile3Group ; lv2:default -10.0 ; lv2:minimum -40.0 ; lv2:maximum 20.0 ; units:unit units:db ; lv2:scalePoint [ rdfs:label "-INF" ; rdf:value -40.0 ]; rdfs:comment "Volume for impulse file #3." ; ], [ a lv2:InputPort , lv2:ControlPort ; lv2:index 3; lv2:symbol "time" ; lv2:name "Max T"; lv2:default 2.0 ; lv2:minimum 0.1 ; lv2:maximum 6.0 ; lv2:portProperty epp:notAutomatic ; lv2:portProperty epp:expensive ; units:unit units:s ; rdfs:comment "Maximum length of impulse data to use." ; ], [ a lv2:InputPort , lv2:ControlPort ; lv2:index 4; lv2:symbol "direct_mix" ; lv2:name "Direct"; lv2:default -40.0 ; lv2:minimum -40.0 ; lv2:maximum 20.0 ; units:unit units:db ; lv2:scalePoint [ rdfs:label "-INF" ; rdf:value -40.0 ]; rdfs:comment "Direct mix. Set to minimum to disable." ; ], [ a lv2:InputPort , lv2:ControlPort ; lv2:index 5 ; lv2:symbol "predelay" ; lv2:name "Predelay"; lv2:portProperty epp:notOnGUI; lv2:default 0 ; lv2:minimum 0 ; lv2:maximum 1 ; lv2:portProperty lv2:enumeration ; lv2:scalePoint [ rdfs:label "Remove" ; rdf:value 0.0; ], [ rdfs:label "Keep" ; rdf:value 1.0; ]; rdfs:comment "Removes leading silence in impulse when set to false." ; ], [ a lv2:OutputPort , lv2:ControlPort ; lv2:index 6 ; lv2:symbol "loading_state" ; lv2:name "Status"; lv2:portProperty lv2:enumeration ; lv2:default 0.0 ; lv2:minimum 0.0 ; lv2:maximum 5.0 ; # NotLoaded = 0, # Idle = 1, # Error = 2, # SentRequest = 3, # GotResponse = 4, # CleaningUp = 5, lv2:scalePoint [ rdfs:label "Not loaded" ; rdf:value 0.0 ],[ rdfs:label "Ready" ; rdf:value 1.0 ],[ rdfs:label "Error" ; rdf:value 2.0 ],[ rdfs:label "Loading" ; rdf:value 3.0 ],[ rdfs:label "Loading" ; rdf:value 4.0 ],[ rdfs:label "Loading" ; rdf:value 5.0 ]; rdfs:comment "Plugin status." ; ], [ a lv2:AudioPort , lv2:InputPort ; lv2:index 7 ; lv2:symbol "in" ; lv2:name "In" ], [ a lv2:AudioPort , lv2:OutputPort ; lv2:index 8 ; lv2:symbol "out" ; lv2:name "Out" ], [ a atom:AtomPort , lv2:InputPort; atom:bufferType atom:Sequence ; atom:supports patch:Message; lv2:designation lv2:control ; atom:supports patch:Message ; lv2:index 9 ; lv2:symbol "control" ; lv2:name "Control" ; rdfs:comment "Control" ; ] , [ a atom:AtomPort , lv2:OutputPort ; atom:bufferType atom:Sequence ; atom:supports patch:Message; lv2:designation lv2:control ; lv2:index 10; lv2:symbol "notify" ; lv2:name "Notify" ; rdfs:comment "Notification" ; ] . pipedal_ui:ui cabir:ui . cabir:ui a pipedal_ui:ui ; pipedal_ui:fileProperties [ a pipedal_ui:fileProperty; rdfs:label "Impulse File" ; lv2:index 0 ; pg:group cabir:impulseFile1Group ; pipedal_ui:directory "CabIR"; pipedal_ui:patchProperty cabir:impulseFile ; pipedal_ui:fileTypes [ a pipedal_ui:fileType; rdfs:label "WAV File"; pipedal_ui:fileExtension ".wav"; ]; ],[ a pipedal_ui:fileProperty; rdfs:label "Impulse File" ; lv2:index 0 ; pg:group cabir:impulseFile2Group ; pipedal_ui:patchProperty cabir:impulseFile2 ; pipedal_ui:directory "CabIR"; pipedal_ui:fileTypes [ a pipedal_ui:fileType; rdfs:label "WAV File"; pipedal_ui:fileExtension ".wav"; ]; ],[ a pipedal_ui:fileProperty; rdfs:label "Impulse File" ; lv2:index 0 ; pg:group cabir:impulseFile3Group ; pipedal_ui:patchProperty cabir:impulseFile3 ; pipedal_ui:directory "CabIR"; pipedal_ui:fileTypes [ a pipedal_ui:fileType; rdfs:label "WAV File"; pipedal_ui:mimeType "audio/wav"; ], [ a pipedal_ui:fileType; rdfs:label "FLAC File"; pipedal_ui:mimeType "audio/flac"; ]; ]; ui:portNotification [ lv2:symbol "loading_state"; ui:plugin ; ui:protocol ui:floatProtocol; # pipedal_ui:style pipedal_ui:text ; # pipedal_ui:redLevel 0; # pipedal_ui:yellowLevel -12; # ui:portIndex 3; ] .