Skip to content

develop site - building new objects #257

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ hidden: true
maxdepth: 2
caption: Developing Clients
---
new_object_walkthrough.md
clients/pitch.md
clients/kdtree.md
```
Expand Down
29 changes: 29 additions & 0 deletions docs/new_object_walkthrough.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Creating New Objects
=========================

Below is a list of all necessary changes to create a full package for a new object.

## Object Code
In [Core](https://github.com/flucoma/flucoma-core):
* Create a client file at [include/clients/rt/{ObjectName}Client.hpp](https://github.com/flucoma/flucoma-core/tree/main/include/clients/rt).
* Add a new line in [FlucomaClients.cmake](https://github.com/flucoma/flucoma-core/blob/main/FlucomaClients.cmake) for `{ObjectName}`, referencing the client file from the previous step.
* If the client file becomes too bloated, separate the algorithm out into a new file at [include/algorithms/public/{ObjectName}.hpp](https://github.com/flucoma/flucoma-core/tree/main/include/algorithms/public).

## Documentation
In [Docs](https://github.com/flucoma/flucoma-docs):
* Create a reference file at [doc/{ObjectName}.rst](https://github.com/flucoma/flucoma-docs/tree/main/doc/).

In [Learn](https://github.com/flucoma/learn-website):
* Create a reference page. First, create a new folder at [src/routes/(content)/reference/{ObjectName}/](https://github.com/flucoma/learn-website/tree/main/src/routes/(content)/reference).
* Then, create `+page.svx` and `{ObjectName}.svelte` files in this folder. `+page.svx` will have the basic page content, and more specialised custom elements can be coded in the `.svelte` file.

In [Max](https://github.com/flucoma/flucoma-max):
* Create a help patch for the object at [help/{MaxObjectName}.maxhelp](https://github.com/flucoma/flucoma-max/tree/main/help).
* If you need separate subpatchers for objects such as the `poly~`, place htem in the [patchers/](https://github.com/flucoma/flucoma-max/tree/main/patchers) folder.
* Add the object to the object list in the [Fluid Corpus Manipulation Toolkit](https://github.com/flucoma/flucoma-max/tree/main/extras/Fluid Corpus Manipulation Toolkit.maxpat) patch.

In [SC](https://github.com/flucoma/flucoma-sc):

In [PD](https://github.com/flucoma/flucoma-pd):

In [CLI](https://github.com/flucoma/flucoma-cli):