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

End to end fixes #2

Merged
merged 2 commits into from
May 17, 2024
Merged
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
40 changes: 22 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,22 +171,23 @@ you have Faust installed on your computer):
* Copy the generated C++ file (found in the same folder as the DSP file) to the Stratus
* Compile _that_ as described on the Stratus developers portal
* Do whatever else to get the effect loaded into the Stratus and testable.
Basically that means copy the built `.so` file to the `/opt/firmware/effects` folder,

Basically that means copy the built `.so` file to the `/opt/update/sftp/firmware/effects` folder,
giving it a name that matches the UUID of the UI that will use it, and creating/updating
its corresponding version file as necessary.

If you are already using an effect that you are updating, your Stratus should flash red and yellow
for a while - _don't panic_ - that's a good sign - it's updating your current chain to use the
new effect library!

**NOTE** that the default Faust compiler options are perfectly appropriate - allowing you to add options
is a nice flexibility feature but for most use cases unnecessary.

If you have C++ build tools installed on your local computer, you will also get a shared library generated -
which is pretty useless on your computer - UNLESS you opt into the C interface in the build...

```
faust2Stratus [path to your DSP file] --stratusc <any other options for the Faust compiler>
```
If you have C++ build tools installed on your local computer, you will also get a shared library generated
that can be used on your local computer - which is actually pretty useful for _testing_ your effect without
having to install it to the pedal.

If you do THAT then you can use the installed Python interface to test your effect library outside of the Stratus -
see the [tester.py](./tests/tester.py) file for a basic example of using that interface.
See [below](#using-the-python-wrapper) for usage notes.

### Embedded mode

Expand All @@ -199,7 +200,7 @@ all you need to do to get the effect implementation onto the stratus, AND to get
artifacts generated by the build process, is to run the command:

```
./sdk-build-effect <the-location--of-your-DSP-file> <any other options for the Faust compiler>
./sdk-build-effect <the-location-of-your-DSP-file> <any other options for the Faust compiler>
```

**NOTE** that the default Faust compiler options are perfectly appropriate - allowing you to add options
Expand All @@ -224,21 +225,24 @@ At this point you need to follow the installation steps set out for Classic mode
* _and_ you run the `./sdk-build-effect` command like THIS:

```
./sdk-build-effect <the-location--of-your-DSP-file> --stratusinstall <any other options for the Faust compiler>
./sdk-build-effect <the-location-of-your-DSP-file> -stratusinstall <any other options for the Faust compiler>
```

If you do _that_ then you are home free - the effect will be installed in the proper folder with a proper
version file - and any existing effect files for the same UUID will have been backed up in the `/root` folder
(it's up to _you_ to clean those up occasionally).

If you are already using an effect that you are updating, your Stratus should flash red and yellow
for a while - _don't panic_ - that's a good sign - it's updating your current chain to use the
new effect library!

## Using the Python wrapper
If you want to use the Python interface to test your effects without having to load them up into
the pedal itself, you simply need to add the `--stratusc` option to the `faust2stratus` command line.
The Python interface is installed on the Stratus by the `install-sdk` command.

The Python interface is installed on the Stratus by the `install-sdk` command, so you can even do that
on the Stratus itself (it has Python installed already).
This is very useful for devising tests for your effect that closely emulate how the Stratus
will interact with your effect without actually having to build the UI yet.

But this is probably of more use in a local build, where you can devise tests for your effect that closely
emulate how the Stratus will interact with your effect without actually having to build the UI yet.
You don't have to do anything special to get the Python interface to work - the effect libraries
generated by the toolkit are by default compatible with the Python wrapper

See the delivered [test script](.tests/tester.py) for examples of how this can be done.
See the delivered [test script](.tests/tester.py) for examples of how this can be used.
2 changes: 1 addition & 1 deletion ci/scripts/stage-sdk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ mkdir -p ${STAGE_FAUST_ARCH_DIR}
mkdir -p usr/local/lib/python3.5/
mkdir -p usr/local/lib/python3.8/
cp ${WORKDIR}/tests/* .${HOME}
cp -a ${FAUST_BIN_DIR}/faust ${FAUST_BIN_DIR}/*[Ss]tratus* ${STAGE_FAUST_BIN_DIR}
cp -a ${FAUST_BIN_DIR}/faust ${FAUST_BIN_DIR}/faustpath ${FAUST_BIN_DIR}/*[Ss]tratus* ${STAGE_FAUST_BIN_DIR}
cp -a ${FAUST_ARCH_DIR}/*.lib ${FAUST_ARCH_DIR}/*[Ss]tratus* ${STAGE_FAUST_ARCH_DIR}
cp -a ${FAUST_LIB_DIR}/*[Ff]aust* ${STAGE_FAUST_LIB_DIR}
cp -a /usr/local/lib/python3.7/dist-packages usr/local/lib/python3.5/
Expand Down
Loading