pierreguillot / Camomile

An audio plugin with Pure Data embedded that allows to load and to control patches
GNU General Public License v3.0
909 stars 65 forks source link

midi-in with Camomile instrument plugin and jalv.gtk #144

Closed timvets closed 4 years ago

timvets commented 5 years ago

environment: Ubuntu 18.04.1 LTS jalv.gtk qjackctl lv2

Hi Pierre, First of all, many thanks for your great work on Camomile, I've been making some plugins and it generally works nicely. So far, I've used them by loading them in Carla (https://kxstudio.linuxaudio.org/Applications:Carla), which works just fine. The midi input of the plugins is shown in Carla and I can play the instruments, although it is called "events_in" rather than "lv2_midi_in". I hadn't given this more thought, since it was working after all, but now I ran into a problem that may be related to that. When loading the plugins using jalv.gtk, there seems to be only a midi output, rather than a midi input. I asked about this on the lv2 irc channel, and there it was suggested to me that there may be a problem with there being more than one midi input (Port 0, Port 1 and Port 6 ?) below is a copy of the output of lv2info for one of my instrument plugins. any suggestions on how to deal with this are very welcome! Thanks, Tim Vets

Name:              T4r6iT
Class:             Plugin
Author:            Pierre Guillot
Has latency:       yes, reported by port 3
Bundle:            file:///usr/lib/lv2/T4r6iT.lv2/
Binary:            file:///usr/lib/lv2/T4r6iT.lv2/T4r6iT.so
UIs:
    http://github.com/pierreguillot/Camomile/T4r6iT#ExternalUI
        Class:  http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget
        Binary: file:///usr/lib/lv2/T4r6iT.lv2/T4r6iT.so
        Bundle: file:///usr/lib/lv2/T4r6iT.lv2/
    http://github.com/pierreguillot/Camomile/T4r6iT#ParentUI
        Class:  http://lv2plug.in/ns/extensions/ui#X11UI
        Binary: file:///usr/lib/lv2/T4r6iT.lv2/T4r6iT.so
        Bundle: file:///usr/lib/lv2/T4r6iT.lv2/
Data URIs:         file:///usr/lib/lv2/T4r6iT.lv2/T4r6iT.ttl
                   file:///usr/lib/lv2/T4r6iT.lv2/manifest.ttl
Required Features: http://lv2plug.in/ns/ext/buf-size#boundedBlockLength
                   http://lv2plug.in/ns/ext/urid#map
Extension Data:    http://lv2plug.in/ns/ext/state#interface
                   http://kxstudio.sf.net/ns/lv2ext/programs#Interface
                   http://lv2plug.in/ns/ext/options#interface
Presets:

Port 0:
    Type:        http://lv2plug.in/ns/ext/atom#AtomPort
                 http://lv2plug.in/ns/lv2core#InputPort
    Symbol:      lv2_events_in
    Name:        Events Input
    Designation: http://lv2plug.in/ns/lv2core#control
    Properties:  http://lv2plug.in/ns/lv2core#connectionOptional

Port 1:
    Type:        http://lv2plug.in/ns/ext/atom#AtomPort
                 http://lv2plug.in/ns/lv2core#InputPort
    Symbol:      lv2_midi_in
    Name:        MIDI Input

Port 2:
    Type:        http://lv2plug.in/ns/lv2core#ControlPort
                 http://lv2plug.in/ns/lv2core#InputPort
    Symbol:      lv2_freewheel
    Name:        Freewheel
    Designation: http://lv2plug.in/ns/lv2core#freeWheeling
    Minimum:     0.000000
    Maximum:     1.000000
    Default:     0.000000
    Properties:  http://lv2plug.in/ns/ext/port-props#notOnGUI
                 http://lv2plug.in/ns/lv2core#toggled

Port 3:
    Type:        http://lv2plug.in/ns/lv2core#ControlPort
                 http://lv2plug.in/ns/lv2core#OutputPort
    Symbol:      lv2_latency
    Name:        Latency
    Designation: http://lv2plug.in/ns/lv2core#latency
    Properties:  http://lv2plug.in/ns/lv2core#integer
                 http://lv2plug.in/ns/lv2core#reportsLatency

Port 4:
    Type:        http://lv2plug.in/ns/lv2core#AudioPort
                 http://lv2plug.in/ns/lv2core#OutputPort
    Symbol:      lv2_audio_out_1
    Name:        Audio Output 1

Port 5:
    Type:        http://lv2plug.in/ns/lv2core#AudioPort
                 http://lv2plug.in/ns/lv2core#OutputPort
    Symbol:      lv2_audio_out_2
    Name:        Audio Output 2

Port 6:
    Type:        http://lv2plug.in/ns/ext/atom#AtomPort
                 http://lv2plug.in/ns/lv2core#InputPort
    Symbol:      lv2_midi_in
    Name:        MIDI Input
timvets commented 5 years ago

update: not sure why, but today there is lv2_midi_in showing up in qjackctl, although sending midi note messages to it doesn't do anything (I suspect only events_in would work? but this does not show up...)

pierreguillot commented 5 years ago

Hi, I admit I'm not at all a LV2 expert. @falkTX, perhaps you can help us with this?

toxonic75 commented 5 years ago

Linux Mint 19.2 Ardour 5.12 qjackctl Camomile 1.0.6

first of all, thanks for yor work! :-)

but yeah, i 've got that problem too. in carla my plugin works fine, in ardour there's only a midi output and openpanel doesn't work too. another issue: when i create the plugin, i get the following message in the terminal:

Camomile - Plugin Generator ./builds/drumboy_mini.so generating ttl drumboy_mini in ./builds/drumboy_mini.lv2/drumboy_mini.so Writing manifest.ttl... done! Writing drumboy_mini.ttl... done! can't load methods lv2_generate_ttl

also camomile seems only to generate the lv2 plugin correctly (in the .lv2-folder). it creates another folder named like the plugin and an .so-file. but i couldn't find out, what this is for, it seems not to be a vst, since i can't find it in my vst plugins list in none of my apllications.

can someone help?

pierreguillot commented 4 years ago

This seems to be related to this issue https://github.com/pierreguillot/Camomile/issues/160, so I close this one to keep only one issue.