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

yarn build doesn't work on a fresh repo #7

Open
Nek opened this issue Sep 6, 2022 · 2 comments
Open

yarn build doesn't work on a fresh repo #7

Nek opened this issue Sep 6, 2022 · 2 comments

Comments

@Nek
Copy link

Nek commented Sep 6, 2022

Hello,

First of all thanks for the great project! It's extremely useful for my audio-visual projects.
I'm trying to create a slimmed down version of it (without standardized-audio-context) and I fail at the first step, building the faust-loader. I'll look into it, but hopefully I'm missing something obvious you can pinpoint.

yarn install
yarn build

yarn run v1.22.17
$ tsc
src/FaustAudioProcessorNode.ts(3,25): error TS4094: Property 'json' of exported class expression may not be private or protected.
src/FaustAudioProcessorNode.ts(3,25): error TS4094: Property 'json_object' of exported class expression may not be private or protected.
src/FaustAudioProcessorNode.ts(9,57): error TS7006: Parameter 'nodeOptions' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(16,14): error TS2339: Property 'parse_ui' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(16,35): error TS7006: Parameter 'ui' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(16,39): error TS7006: Parameter 'obj' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(18,18): error TS2339: Property 'parse_group' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(22,14): error TS2339: Property 'parse_group' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(22,38): error TS7006: Parameter 'group' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(22,45): error TS7006: Parameter 'obj' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(24,18): error TS2339: Property 'parse_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(28,14): error TS2339: Property 'parse_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(28,38): error TS7006: Parameter 'items' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(28,45): error TS7006: Parameter 'obj' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(30,18): error TS2339: Property 'parse_item' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(34,14): error TS2339: Property 'parse_item' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(34,37): error TS7006: Parameter 'item' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(34,43): error TS7006: Parameter 'obj' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(40,18): error TS2339: Property 'parse_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(87,30): error TS7006: Parameter 'val' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(98,14): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(101,14): error TS2339: Property 'inputs_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(102,14): error TS2339: Property 'outputs_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(103,14): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(106,14): error TS2339: Property 'fPitchwheelLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(107,14): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(108,34): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(109,16): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(113,14): error TS2339: Property 'parse_ui' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(119,47): error TS2339: Property 'automationRate' does not exist on type 'IAudioParam'.
src/FaustAudioProcessorNode.ts(124,21): error TS7006: Parameter 'event' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(126,18): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(127,16): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(150,18): error TS2339: Property 'baseURL' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(150,54): error TS2339: Property 'baseURL' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(167,21): error TS7006: Parameter 'path' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(167,27): error TS7006: Parameter 'val' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(169,9): error TS2532: Object is possibly 'undefined'.
src/FaustAudioProcessorNode.ts(173,16): error TS7006: Parameter 'path' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(173,22): error TS7006: Parameter 'val' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(175,9): error TS2532: Object is possibly 'undefined'.
src/FaustAudioProcessorNode.ts(184,16): error TS2532: Object is possibly 'undefined'.
src/FaustAudioProcessorNode.ts(189,16): error TS2532: Object is possibly 'undefined'.
src/FaustAudioProcessorNode.ts(199,29): error TS7006: Parameter 'handler' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(200,14): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(207,21): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(231,21): error TS2339: Property 'inputs_items' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(237,33): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(238,20): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(239,22): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(242,25): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(243,36): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(244,36): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(245,40): error TS2339: Property 'descriptor' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(263,18): error TS7006: Parameter 'channel' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(263,27): error TS7006: Parameter 'ctrl' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(263,33): error TS7006: Parameter 'value' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(264,18): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(265,36): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(266,29): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(273,22): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(274,22): error TS2339: Property 'fCtrlLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(277,22): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(278,20): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(290,18): error TS7006: Parameter 'channel' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(290,27): error TS7006: Parameter 'wheel' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(291,34): error TS2339: Property 'fPitchwheelLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(292,25): error TS2339: Property 'fPitchwheelLabel' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(297,20): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(298,18): error TS2339: Property 'output_handler' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(306,19): error TS7006: Parameter 'data' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(322,14): error TS7006: Parameter 'data' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(323,9): error TS2663: Cannot find name 'midiMessage'. Did you mean the instance member 'this.midiMessage'?
src/FaustAudioProcessorNode.ts(345,22): error TS7006: Parameter 'state' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(351,18): error TS2339: Property 'gui' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(363,16): error TS7006: Parameter 'patch' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(364,28): error TS2339: Property 'presets' does not exist on type 'FaustAudioProcessorNode'.
src/FaustAudioProcessorNode.ts(367,20): error TS7006: Parameter 'v' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(367,23): error TS7006: Parameter 'mn0' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(367,28): error TS7006: Parameter 'mx0' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(367,33): error TS7006: Parameter 'mn1' implicitly has an 'any' type.
src/FaustAudioProcessorNode.ts(367,38): error TS7006: Parameter 'mx1' implicitly has an 'any' type.
src/faustLoader.ts(64,50): error TS2345: Argument of type 'Buffer' is not assignable to parameter of type 'string'.
src/loadProcessor.ts(110,31): error TS4094: Property 'json' of exported class expression may not be private or protected.
src/loadProcessor.ts(110,31): error TS4094: Property 'json_object' of exported class expression may not be private or protected.
src/loadProcessor.ts(124,60): error TS2339: Property 'buffer' does not exist on type 'ExportValue'.
  Property 'buffer' does not exist on type 'Function'.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
@Smona
Copy link
Owner

Smona commented Sep 6, 2022

Hi, I've actually just started working on fixing this over the weekend! It's not just you, the FaustAudioProcessorNode hasn't been made fully type-safe yet.

In the interest of not duplicating work and not blocking you, can you continue while ignoring the type errors? you should still be able to build the project, if not make sure noEmitOnError is set in the tsc compiler options.

I'd like to support using a plain AudioContext in the loader, maybe via a configuration option.

@Nek
Copy link
Author

Nek commented Sep 6, 2022

Thanks for the quick response!

I actually just plugged a lot of any and changed some compiler settings, so it works for me at the moment.

I'd like to share my current goals.

There is a library which is pretty neat declarative DSL around otherwise imperative WebAudio API. It has createWorkletNode functionality. I'd like to add createFaustNode to it. The library feels like a perfect glue for Faust-based modules together with WebAudio provided ones.
https://virtual-audio-graph.netlify.app
One of the things I'll have to solve is an ability to instanciate the same Faust module several times. If I'm not mistaken, this isn't possible with current implementation.

The second goal is to rewrite your loader for vite. I fully switched to it for my own projects because it's fast and configuration makes more sense than in webpack.

Sorry, for going a bit offtopic. I personally think it could be interesting to know a use-case for the thing I'm working on. Hope you too. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants