-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Device abstraction #11
Comments
Thanks a lot for the detailed suggestion! However, my opinion on this is that it would add a certain amount of complexity to the codebase, for something that:
I think I'll go with solutions described here and here first. And see how that works. Also, I'll soon have a new setup with pipewire. That will allow me to investigate the pipewire issue #8. That may also help with midi workflow issues. |
Ok, yeah I think that's fair enough if you anticipate it being used in a plugin host type situation. Can you give me an example of how you use it in Carla, so I can have a play with that? I know Carla can handle routing but how does it handle Signls not being a plugin? My preferred way to use it, in that case, would be to have it as a virtual MIDI device on the system and route everything via BitWig. That way BitWig can handle all the routing. However, I think it would need to be capable of receiving transport messages so that they start at the same time. |
What I usually do is this:
I also use it with external synths.
That would be a good way to use it. Not sure you would need transport messages if you only use bitwig as an instrument rack. But transport messages would be nice to have. Signls already sends clock messages. A simple TUI plugin host would a super cool project though (like this one for example), I have that in mind for quite some time, but I always imagined this as a separate project. |
I have a suggestion that could help with the following issues:
#9
#6
#3
How about a "device profile" type of abstraction that allows to configure one or more device profiles. A device profile would include:
Devices would be stored as an array in the JSON file and deserialised into a list such that a node could reference a device profile index (and mapped CC index). A change in the underlying hardware configuration would only require updating the device profiles.
This improves the UX in the following ways:
I'm not sure where the device profiles would best be stored. It seems like it would make sense to be a separate configuration to the node storage, as its more related to the underlying system than an individual canvas. Signls could look for a default filename of
profiles.json
, but allow specifying the filename. If no filename is given and the default does not exist, Signls could create it and populate it with some sensible defaults.The text was updated successfully, but these errors were encountered: