Skip to content
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

Documentation of ReaLearn's internal design #102

Closed
helgoboss opened this issue Jan 20, 2021 · 9 comments
Closed

Documentation of ReaLearn's internal design #102

helgoboss opened this issue Jan 20, 2021 · 9 comments
Labels
documentation Improvements or additions to documentation realearn Related to ReaLearn

Comments

@helgoboss
Copy link
Owner

For potential contributors and the forgetful self.

@helgoboss helgoboss added the documentation Improvements or additions to documentation label Jan 20, 2021
@jackmau
Copy link

jackmau commented Jan 23, 2021

sounds good. I'd like to contribute more actively but I am bit lost coming from EEL/Python (I'd really like to work on issue #12 and other features I built around realearn in my custom scripts)

@helgoboss
Copy link
Owner Author

I commented on #12.

@GavinRay97
Copy link

GavinRay97 commented Feb 8, 2021

Hopefully this falls under this issue, but I'm curious about the id parameter of a controller mapping JSON file. It looks like a standard UUIDv4, is that the case? It can be any value, as long as it doesn't conflict with other ID's?

I would love to contribute controller mappings for Push 1 and Arturia Minilab MkII, but just attempting to figure out what all of the properties are.

Also, if it's helpful, I have created a (draft) JSON Schema which can be used to have IDE provide type-checking + documentation-on-hover realtime when writing mappings:

In VS Code, to configure type providers for JSON schema, in .vscode/settings.json, assuming the JSON schema is placed at .vscode/schemas/ReaLearnControllerMapping.schema.json add:

{
  "json.schemas": [
    {
      "fileMatch": ["./resources/controllers/**.json"],
      "url": "./.vscode/schemas/ReaLearnControllerMapping.schema.json"
    }
  ]
}

(If you can comment on what each property in the JSON does with a description, and list the possible value for enum-type fields, then I can manually alter the JSON to add the description and then it can be published and shared 😃)

Additionally, I gave the Rust serializers/deserializers a go, not sure if these are useful at all:

I know for sure it's missing values for the enums.

image

@helgoboss
Copy link
Owner Author

Nice. There's also issue #62 which is exactly about JSON schema. I'll help with enriching the schema soon, hopefully. I was once considering deriving the JSON schema via schemars but I'm not sure if this leads to good results.

Is the purpose of the Rust serializers/deserializers to let 3rd-party Rust apps generate/parse ReaLearn presets? If yes, a more DRY/maintainable way might be to factor out ReaLearn's internal data classes, which look very similar.

@GavinRay97
Copy link

Oh that macro for the JSON schema is probably a much better approach then, since you'd just annotate the existing classes

@patmaddox
Copy link

I've built ReaLearn and successfully loaded it in to REAPER!

I just want to double-check with you @helgoboss, when you're making changes to the code, is the process:

  • symlink the dylib to REAPER plugins folder
  • quit REAPER
  • compile
  • open REAPER

I'm guessing there's not a faster way to reload the plugin than to simply restart REAPER... but figured I'd ask just in case.

@helgoboss
Copy link
Owner Author

I always restart REAPER. Checking "Allow complete unload of VST plug-ins" in the REAPER VST preferences might open up a way in which you only need to remove the last ReaLearn instance and add it again, but I didn't check.

@helgoboss
Copy link
Owner Author

Architecture of ReaLearn is now documented, including some pretty diagrams (of course a work in progress): https://github.com/helgoboss/realearn/blob/master/ARCHITECTURE.adoc

@vonglan
Copy link

vonglan commented Dec 31, 2021

Very nice!

@helgoboss helgoboss added the realearn Related to ReaLearn label Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation realearn Related to ReaLearn
Projects
None yet
Development

No branches or pull requests

5 participants