Skip to content

chore: added claude code setup#967

Open
maciejmakowski2003 wants to merge 5 commits intomainfrom
chore/claude-code-setup
Open

chore: added claude code setup#967
maciejmakowski2003 wants to merge 5 commits intomainfrom
chore/claude-code-setup

Conversation

@maciejmakowski2003
Copy link
Collaborator

Closes #

⚠️ Breaking changes ⚠️

Introduced changes

  • Added Claude Code setup

Checklist

  • Linked relevant issue
  • Updated relevant documentation
  • Added/Conducted relevant tests
  • Performed self-review of the code
  • Updated Web Audio API coverage
  • Added support for web
  • Updated old arch android spec file

Copy link
Contributor

@closetcaiman closetcaiman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@poneciak57 poneciak57 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@poneciak57 poneciak57 marked this pull request as draft March 5, 2026 10:18
@poneciak57 poneciak57 marked this pull request as ready for review March 5, 2026 16:36
Copy link
Collaborator Author

@maciejmakowski2003 maciejmakowski2003 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current core and native implementation skills structure lacks clear boundaries. I propose a more modular and rigorous split to ensure better maintainability.

  • audio-nodes: how to implement c++ audio node, reference to thread safety skill, class hierarchy and characterictics,(possibly audio-param, but not sure about it)
  • host-objects: audio-js communication including spsc (and shadow state in future)
  • ts-api: how to wrap our c++ and add support for web, web audio api compatibility
  • audio-recorder
  • native ios- session, player, recorder, interruptions
  • native android- FGS, focus(interruptions), , player, recorder
  • utils
  • thread safety

- Allocate or free memory (`new`, `delete`, `malloc`, `free`, `std::vector::push_back` that grows, etc.)
- Acquire any mutex or lock (`std::mutex`, `std::lock_guard`, etc.)
- Make any blocking syscall (file I/O, socket, `sleep`, `wait`)
- Call into JavaScript — no JSI calls, no `callInvoker_->invokeSync()`
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not true

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wwhat is not true here ?

Comment on lines +199 to +211
## AudioParam — Automatable Parameters

Every automatable property (frequency, gain, detune, Q, etc.) is an `AudioParam`.

```cpp
gainParam_ = std::make_shared<AudioParam>(
defaultValue,
minValue,
maxValue,
context
);
```

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe let's split AudioParam from AudioNode skill

Comment on lines +249 to +264
## Cross-Thread Communication Patterns

### JS → Audio (parameter/graph updates)
Use `CrossThreadEventScheduler` (lock-free SPSC queue). See `utils/CrossThreadEventScheduler.hpp`.

### Audio → JS (events like `ended`, `loopEnded`, `positionChanged`)
Use `IAudioEventHandlerRegistry::invokeHandlerWithEventBody()` which internally calls `callInvoker_->invokeAsync()` — this safely schedules the JS callback on the JS thread from the audio thread.

```cpp
// Audio-thread: fire 'ended' event
audioEventHandlerRegistry_->invokeHandlerWithEventBody(
AudioEvent::ENDED, {});
```

Callback IDs are stored as `std::atomic<uint64_t>` on the node. `0` means no listener registered.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if we want to include that part here.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would split it into audio-js communication, audio-nodes, audio recorder and other audio objects(like audio param, context)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants