dj-claude 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/App.js +2 -1
  3. package/dist/App.js.map +1 -1
  4. package/dist/audio/backend.d.ts +7 -0
  5. package/dist/audio/backend.d.ts.map +1 -1
  6. package/dist/audio/backend.js.map +1 -1
  7. package/dist/audio/browser-backend.d.ts +3 -1
  8. package/dist/audio/browser-backend.d.ts.map +1 -1
  9. package/dist/audio/browser-backend.js +6 -0
  10. package/dist/audio/browser-backend.js.map +1 -1
  11. package/dist/audio/browser-page.js +2 -2
  12. package/dist/audio/engine.d.ts +4 -2
  13. package/dist/audio/engine.d.ts.map +1 -1
  14. package/dist/audio/engine.js +10 -0
  15. package/dist/audio/engine.js.map +1 -1
  16. package/dist/audio/node-backend.d.ts +3 -1
  17. package/dist/audio/node-backend.d.ts.map +1 -1
  18. package/dist/audio/node-backend.js +15 -0
  19. package/dist/audio/node-backend.js.map +1 -1
  20. package/dist/components/Header.js +1 -1
  21. package/dist/components/Header.js.map +1 -1
  22. package/dist/components/PatternDisplay.d.ts +6 -0
  23. package/dist/components/PatternDisplay.d.ts.map +1 -0
  24. package/dist/components/PatternDisplay.js +72 -0
  25. package/dist/components/PatternDisplay.js.map +1 -0
  26. package/dist/lib/config.js +1 -1
  27. package/dist/lib/pattern-viz.d.ts +23 -0
  28. package/dist/lib/pattern-viz.d.ts.map +1 -0
  29. package/dist/lib/pattern-viz.js +130 -0
  30. package/dist/lib/pattern-viz.js.map +1 -0
  31. package/dist/lib/pattern-viz.test.d.ts +2 -0
  32. package/dist/lib/pattern-viz.test.d.ts.map +1 -0
  33. package/dist/lib/pattern-viz.test.js +358 -0
  34. package/dist/lib/pattern-viz.test.js.map +1 -0
  35. package/dist/mcp/http.js +1 -1
  36. package/dist/mcp/server.d.ts.map +1 -1
  37. package/dist/mcp/server.js +538 -28
  38. package/dist/mcp/server.js.map +1 -1
  39. package/dist/mcp/server.test.d.ts +2 -0
  40. package/dist/mcp/server.test.d.ts.map +1 -0
  41. package/dist/mcp/server.test.js +427 -0
  42. package/dist/mcp/server.test.js.map +1 -0
  43. package/dist/mcp/state.d.ts +32 -1
  44. package/dist/mcp/state.d.ts.map +1 -1
  45. package/dist/mcp/state.js +58 -2
  46. package/dist/mcp/state.js.map +1 -1
  47. package/dist/mcp/state.test.d.ts +2 -0
  48. package/dist/mcp/state.test.d.ts.map +1 -0
  49. package/dist/mcp/state.test.js +231 -0
  50. package/dist/mcp/state.test.js.map +1 -0
  51. package/package.json +25 -6
package/dist/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAaA,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,2CAmGvC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAcA,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,2CAyGvC"}
package/dist/App.js CHANGED
@@ -7,6 +7,7 @@ import { DancingClaude } from './components/DancingClaude.js';
7
7
  import { SpeechBubble } from './components/SpeechBubble.js';
8
8
  import { StatusBar } from './components/StatusBar.js';
9
9
  import { CodeDisplay } from './components/CodeDisplay.js';
10
+ import { PatternDisplay } from './components/PatternDisplay.js';
10
11
  import { djReducer, initialState } from './lib/reducer.js';
11
12
  import { parseStreamingCode } from './lib/parseCode.js';
12
13
  import { handlePrompt } from './lib/session.js';
@@ -59,6 +60,6 @@ export function App({ apiKey }) {
59
60
  ? parseStreamingCode(state.streamingCode)
60
61
  : null;
61
62
  const displayError = state.streamingError || state.executionError;
62
- return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Header, { isPlaying: state.isPlaying, isStreaming: state.isStreaming, audioInitialized: state.audioInitialized }), _jsx(Box, { marginY: 1, justifyContent: "center", children: _jsx(DancingClaude, { isPlaying: state.isPlaying }) }), state.mcCommentary && (_jsx(Box, { justifyContent: "center", marginBottom: 1, children: _jsx(SpeechBubble, { text: state.mcCommentary }) })), state.isStreaming && streamParse?.displayCode && (_jsx(CodeDisplay, { code: streamParse.displayCode, label: "Incoming" })), !state.isStreaming && state.currentCode && (_jsx(CodeDisplay, { code: state.currentCode })), _jsx(Box, { marginTop: 1, children: _jsx(PromptInput, { value: input, onChange: setInput, onSubmit: handleSubmit, isDisabled: state.isStreaming }) }), _jsx(Box, { marginTop: 1, children: _jsx(StatusBar, { error: displayError }) })] }));
63
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Header, { isPlaying: state.isPlaying, isStreaming: state.isStreaming, audioInitialized: state.audioInitialized }), _jsx(Box, { marginY: 1, justifyContent: "center", children: _jsx(DancingClaude, { isPlaying: state.isPlaying }) }), state.mcCommentary && (_jsx(Box, { justifyContent: "center", marginBottom: 1, children: _jsx(SpeechBubble, { text: state.mcCommentary }) })), state.isPlaying && state.audioInitialized && (_jsx(Box, { marginY: 1, justifyContent: "center", children: _jsx(PatternDisplay, { isPlaying: state.isPlaying }) })), state.isStreaming && streamParse?.displayCode && (_jsx(CodeDisplay, { code: streamParse.displayCode, label: "Incoming" })), !state.isStreaming && state.currentCode && (_jsx(CodeDisplay, { code: state.currentCode })), _jsx(Box, { marginTop: 1, children: _jsx(PromptInput, { value: input, onChange: setInput, onSubmit: handleSubmit, isDisabled: state.isStreaming }) }), _jsx(Box, { marginTop: 1, children: _jsx(StatusBar, { error: displayError }) })] }));
63
64
  }
64
65
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
@@ -2,12 +2,19 @@ export interface SafeEvalResult {
2
2
  success: boolean;
3
3
  error?: string;
4
4
  }
5
+ export interface VisualizationData {
6
+ currentTime: number;
7
+ cps: number;
8
+ isStarted: boolean;
9
+ }
5
10
  export interface AudioBackend {
6
11
  init(): Promise<void>;
7
12
  evaluate(code: string): Promise<void>;
8
13
  safeEvaluate(newCode: string, previousCode: string): Promise<SafeEvalResult>;
9
14
  hush(): void;
10
15
  dispose(): void;
16
+ getVisualizationData(): VisualizationData | null;
17
+ getPattern(): unknown | null;
11
18
  }
12
19
  export type BackendMode = 'node' | 'browser';
13
20
  export declare function createBackend(mode: BackendMode): Promise<AudioBackend>;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/audio/backend.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAO5E"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/audio/backend.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;IAChB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAAC;IACjD,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAO5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/audio/backend.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAiB7E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/D,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/audio/backend.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAyB7E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/D,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AudioBackend, SafeEvalResult } from './backend.js';
1
+ import type { AudioBackend, SafeEvalResult, VisualizationData } from './backend.js';
2
2
  export declare class BrowserAudioBackend implements AudioBackend {
3
3
  private httpServer;
4
4
  private wsServer;
@@ -13,6 +13,8 @@ export declare class BrowserAudioBackend implements AudioBackend {
13
13
  safeEvaluate(newCode: string, previousCode: string): Promise<SafeEvalResult>;
14
14
  hush(): void;
15
15
  dispose(): void;
16
+ getVisualizationData(): VisualizationData | null;
17
+ getPattern(): unknown | null;
16
18
  private send;
17
19
  }
18
20
  //# sourceMappingURL=browser-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-backend.d.ts","sourceRoot":"","sources":["../../src/audio/browser-backend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAajE,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAsE;IAC1F,OAAO,CAAC,YAAY,CAA2D;IAEzE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBlF,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;IAqBf,OAAO,CAAC,IAAI;CAKb"}
1
+ {"version":3,"file":"browser-backend.d.ts","sourceRoot":"","sources":["../../src/audio/browser-backend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAapF,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAsE;IAC1F,OAAO,CAAC,YAAY,CAA2D;IAEzE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBlF,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;IAqBf,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIhD,UAAU,IAAI,OAAO,GAAG,IAAI;IAI5B,OAAO,CAAC,IAAI;CAKb"}
@@ -154,6 +154,12 @@ export class BrowserAudioBackend {
154
154
  this.httpServer = null;
155
155
  }
156
156
  }
157
+ getVisualizationData() {
158
+ return null;
159
+ }
160
+ getPattern() {
161
+ return null;
162
+ }
157
163
  send(msg) {
158
164
  if (this.socket && this.socket.readyState === 1) {
159
165
  this.socket.send(JSON.stringify(msg));
@@ -1 +1 @@
1
- {"version":3,"file":"browser-backend.js","sourceRoot":"","sources":["../../src/audio/browser-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-backend.js","sourceRoot":"","sources":["../../src/audio/browser-backend.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export function getPageHtml(wsPort) {
22
22
  <head>
23
23
  <meta charset="UTF-8">
24
24
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
25
- <title>DJ Claude | v 0.1.15</title>
25
+ <title>DJ Claude | v 0.1.16</title>
26
26
  <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🔈</text></svg>">
27
27
  <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
28
28
  <style>
@@ -111,7 +111,7 @@ export function getPageHtml(wsPort) {
111
111
  <!-- Welcome box -->
112
112
  <div class="ascii-box">
113
113
  <pre>╔═════════════════════════════════════════════╗</pre>
114
- <div style="display:flex"><pre>║</pre><pre style="flex:1;text-align:center">Welcome to DJ Claude <span class="dim">v 0.1.15</span></pre><pre>║</pre></div>
114
+ <div style="display:flex"><pre>║</pre><pre style="flex:1;text-align:center">Welcome to DJ Claude <span class="dim">v 0.1.16</span></pre><pre>║</pre></div>
115
115
  <pre>╚═════════════════════════════════════════════╝</pre>
116
116
  </div>
117
117
 
@@ -1,5 +1,5 @@
1
- import type { SafeEvalResult, BackendMode } from './backend.js';
2
- export type { SafeEvalResult };
1
+ import type { SafeEvalResult, BackendMode, VisualizationData } from './backend.js';
2
+ export type { SafeEvalResult, VisualizationData };
3
3
  export declare function setBackendMode(mode: BackendMode): void;
4
4
  export declare function initEngine(): Promise<void>;
5
5
  export declare function evaluate(code: string): Promise<void>;
@@ -7,4 +7,6 @@ export declare function safeEvaluate(newCode: string, previousCode: string): Pro
7
7
  export declare function getBackendMode(): BackendMode;
8
8
  export declare function switchBackend(mode: BackendMode): Promise<void>;
9
9
  export declare function hush(): void;
10
+ export declare function getVisualizationData(): VisualizationData | null;
11
+ export declare function getPattern(): unknown | null;
10
12
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/audio/engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9E,YAAY,EAAE,cAAc,EAAE,CAAC;AAK/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEtD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1D;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,wBAAgB,IAAI,IAAI,IAAI,CAG3B"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/audio/engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjG,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAKlD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEtD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1D;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,wBAAgB,IAAI,IAAI,IAAI,CAG3B;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAG/D;AAED,wBAAgB,UAAU,IAAI,OAAO,GAAG,IAAI,CAG3C"}
@@ -38,4 +38,14 @@ export function hush() {
38
38
  return;
39
39
  backend.hush();
40
40
  }
41
+ export function getVisualizationData() {
42
+ if (!backend)
43
+ return null;
44
+ return backend.getVisualizationData();
45
+ }
46
+ export function getPattern() {
47
+ if (!backend)
48
+ return null;
49
+ return backend.getPattern();
50
+ }
41
51
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/audio/engine.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wEAAwE;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,IAAI,OAAO,GAAwB,IAAI,CAAC;AACxC,IAAI,WAAW,GAAgB,MAAM,CAAC;AAEtC,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,YAAoB;IAEpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,UAAU,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/audio/engine.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wEAAwE;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,IAAI,OAAO,GAAwB,IAAI,CAAC;AACxC,IAAI,WAAW,GAAgB,MAAM,CAAC;AAEtC,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,YAAoB;IAEpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,UAAU,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AudioBackend, SafeEvalResult } from './backend.js';
1
+ import type { AudioBackend, SafeEvalResult, VisualizationData } from './backend.js';
2
2
  export declare class NodeAudioBackend implements AudioBackend {
3
3
  private repl;
4
4
  private audioContext;
@@ -6,6 +6,8 @@ export declare class NodeAudioBackend implements AudioBackend {
6
6
  evaluate(code: string): Promise<void>;
7
7
  safeEvaluate(newCode: string, previousCode: string): Promise<SafeEvalResult>;
8
8
  hush(): void;
9
+ getVisualizationData(): VisualizationData | null;
10
+ getPattern(): unknown | null;
9
11
  dispose(): void;
10
12
  }
11
13
  //# sourceMappingURL=node-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-backend.d.ts","sourceRoot":"","sources":["../../src/audio/node-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,IAAI,CAA4E;IACxF,OAAO,CAAC,YAAY,CAA6B;IAE3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBlF,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;CAQhB"}
1
+ {"version":3,"file":"node-backend.d.ts","sourceRoot":"","sources":["../../src/audio/node-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEpF,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,IAAI,CAA4E;IACxF,OAAO,CAAC,YAAY,CAA6B;IAE3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBlF,IAAI,IAAI,IAAI;IAKZ,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAUhD,UAAU,IAAI,OAAO,GAAG,IAAI;IAK5B,OAAO,IAAI,IAAI;CAQhB"}
@@ -113,6 +113,21 @@ export class NodeAudioBackend {
113
113
  return;
114
114
  this.repl.scheduler.stop();
115
115
  }
116
+ getVisualizationData() {
117
+ if (!this.repl)
118
+ return null;
119
+ const scheduler = this.repl.scheduler;
120
+ return {
121
+ currentTime: typeof scheduler.now === 'function' ? scheduler.now() : 0,
122
+ cps: scheduler.cps ?? 0.5,
123
+ isStarted: scheduler.started ?? false,
124
+ };
125
+ }
126
+ getPattern() {
127
+ if (!this.repl?.state?.pattern)
128
+ return null;
129
+ return this.repl.state.pattern;
130
+ }
116
131
  dispose() {
117
132
  this.hush();
118
133
  if (this.audioContext) {
@@ -1 +1 @@
1
- {"version":3,"file":"node-backend.js","sourceRoot":"","sources":["../../src/audio/node-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-backend.js","sourceRoot":"","sources":["../../src/audio/node-backend.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,6 @@ export function Header({ isPlaying, isStreaming, audioInitialized }) {
27
27
  statusSymbol = '●';
28
28
  statusLabel = 'Playing';
29
29
  }
30
- return (_jsxs(Box, { flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "#E8704E", children: WELCOME_TOP }), _jsxs(Text, { color: "#E8704E", children: ['║ Welcome to DJ Claude ', _jsx(Text, { dimColor: true, children: "v 0.1.15" }), ' ║'] }), _jsx(Text, { color: "#E8704E", children: WELCOME_BTM }), _jsx(Text, { color: "#E8704E", children: BANNER }), _jsx(Text, { color: "#E8704E", dimColor: dim, children: `╔═════════════════════════╗\n║ ${statusSymbol} ${statusLabel.padEnd(14)} ║\n╚═════════════════════════╝` })] }));
30
+ return (_jsxs(Box, { flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "#E8704E", children: WELCOME_TOP }), _jsxs(Text, { color: "#E8704E", children: ['║ Welcome to DJ Claude ', _jsx(Text, { dimColor: true, children: "v 0.1.16" }), ' ║'] }), _jsx(Text, { color: "#E8704E", children: WELCOME_BTM }), _jsx(Text, { color: "#E8704E", children: BANNER }), _jsx(Text, { color: "#E8704E", dimColor: dim, children: `╔═════════════════════════╗\n║ ${statusSymbol} ${statusLabel.padEnd(14)} ║\n╚═════════════════════════╝` })] }));
31
31
  }
32
32
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,MAAM,WAAW,GAAG,gDAAgD,CAAC;AACrE,MAAM,WAAW,GAAG,gDAAgD,CAAC;AAErE,MAAM,MAAM,GAAG;IACb,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAQb,MAAM,UAAU,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAe;IAC9E,IAAI,YAAY,GAAG,GAAG,CAAC;IACvB,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,GAAG,GAAG,KAAK,CAAC;IAEhB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,SAAS,CAAC;QACxB,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,QAAQ,CAAC;IACzB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,aAC7C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,WAAW,GAAQ,EAC1C,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,aAAE,gCAAgC,EAAC,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAAC,WAAW,IAAQ,EAC1G,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,WAAW,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,MAAM,GAAQ,EACrC,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAE,GAAG,YAChC,yCAAyC,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAiC,GAC5G,IACH,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,MAAM,WAAW,GAAG,gDAAgD,CAAC;AACrE,MAAM,WAAW,GAAG,gDAAgD,CAAC;AAErE,MAAM,MAAM,GAAG;IACb,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAQb,MAAM,UAAU,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAe;IAC9E,IAAI,YAAY,GAAG,GAAG,CAAC;IACvB,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,GAAG,GAAG,KAAK,CAAC;IAEhB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,SAAS,CAAC;QACxB,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,QAAQ,CAAC;IACzB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,YAAY,GAAG,GAAG,CAAC;QACnB,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,aAC7C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,WAAW,GAAQ,EAC1C,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,aAAE,gCAAgC,EAAC,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAAC,UAAU,IAAQ,EACzG,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,WAAW,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,MAAM,GAAQ,EACrC,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAE,GAAG,YAChC,yCAAyC,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAiC,GAC5G,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface PatternDisplayProps {
2
+ isPlaying: boolean;
3
+ }
4
+ export declare function PatternDisplay({ isPlaying }: PatternDisplayProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=PatternDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternDisplay.d.ts","sourceRoot":"","sources":["../../src/components/PatternDisplay.tsx"],"names":[],"mappings":"AAeA,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,mBAAmB,kDAuGhE"}
@@ -0,0 +1,72 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import { getVisualizationData, getPattern } from '../audio/engine.js';
5
+ import { GRID_WIDTH, DRUM_NAMES, queryHaps, isDrum, getNoteValue, noteToSortKey, buildDrumGrid, buildPianoroll, renderPlayheadRow, } from '../lib/pattern-viz.js';
6
+ export function PatternDisplay({ isPlaying }) {
7
+ const [drumGrid, setDrumGrid] = useState(new Map());
8
+ const [pianoGrid, setPianoGrid] = useState(new Map());
9
+ const [playheadCol, setPlayheadCol] = useState(0);
10
+ useEffect(() => {
11
+ if (!isPlaying) {
12
+ setDrumGrid(new Map());
13
+ setPianoGrid(new Map());
14
+ setPlayheadCol(0);
15
+ return;
16
+ }
17
+ const interval = setInterval(() => {
18
+ const vizData = getVisualizationData();
19
+ const pattern = getPattern();
20
+ if (!vizData || !vizData.isStarted || !pattern) {
21
+ setDrumGrid(new Map());
22
+ setPianoGrid(new Map());
23
+ return;
24
+ }
25
+ const cyclePos = vizData.currentTime;
26
+ const cycleStart = Math.floor(cyclePos);
27
+ const cycleEnd = cycleStart + 1;
28
+ const haps = queryHaps(pattern, cycleStart, cycleEnd);
29
+ const drums = haps.filter(isDrum);
30
+ const melodic = haps.filter((h) => !isDrum(h) && getNoteValue(h) !== null);
31
+ setDrumGrid(buildDrumGrid(drums, cycleStart));
32
+ setPianoGrid(buildPianoroll(melodic, cycleStart));
33
+ const frac = cyclePos - cycleStart;
34
+ setPlayheadCol(Math.min(GRID_WIDTH - 1, Math.floor(frac * GRID_WIDTH)));
35
+ }, 150);
36
+ return () => clearInterval(interval);
37
+ }, [isPlaying]);
38
+ const hasDrums = drumGrid.size > 0;
39
+ const hasMelody = pianoGrid.size > 0;
40
+ if (!hasDrums && !hasMelody)
41
+ return null;
42
+ // Sort piano notes high to low
43
+ const sortedNotes = [...pianoGrid.keys()].sort((a, b) => noteToSortKey(b) - noteToSortKey(a));
44
+ // Limit to 8 rows
45
+ const visibleNotes = sortedNotes.slice(0, 8);
46
+ // Sort drums by canonical order
47
+ const sortedDrums = [...drumGrid.keys()].sort((a, b) => DRUM_NAMES.indexOf(a) - DRUM_NAMES.indexOf(b));
48
+ return (_jsxs(Box, { flexDirection: "column", alignItems: "center", children: [hasDrums && (_jsxs(Box, { flexDirection: "column", children: [sortedDrums.map((name) => {
49
+ const row = drumGrid.get(name);
50
+ const pad = name.padEnd(4);
51
+ const cells = row
52
+ .map((on, i) => {
53
+ if (i === playheadCol)
54
+ return on ? '◆' : '▏';
55
+ return on ? '●' : '·';
56
+ })
57
+ .join('');
58
+ return (_jsxs(Text, { color: "#E8704E", children: [pad, cells] }, name));
59
+ }), _jsx(Text, { color: "#E8704E", dimColor: true, children: renderPlayheadRow('', playheadCol) })] })), hasMelody && (_jsxs(Box, { flexDirection: "column", marginTop: hasDrums ? 1 : 0, children: [visibleNotes.map((note) => {
60
+ const row = pianoGrid.get(note);
61
+ const pad = note.padEnd(4);
62
+ const cells = row
63
+ .map((on, i) => {
64
+ if (i === playheadCol)
65
+ return on ? '▊' : '▏';
66
+ return on ? '█' : '░';
67
+ })
68
+ .join('');
69
+ return (_jsxs(Text, { color: "#E8704E", children: [pad, cells] }, note));
70
+ }), _jsx(Text, { color: "#E8704E", dimColor: true, children: renderPlayheadRow('', playheadCol) })] }))] }));
71
+ }
72
+ //# sourceMappingURL=PatternDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternDisplay.js","sourceRoot":"","sources":["../../src/components/PatternDisplay.tsx"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export function getApiKey() {
14
14
  if (!key) {
15
15
  console.error('\n' +
16
16
  ' \x1b[1m╔════════════════════════════════════════════════════╗\n' +
17
- ' ║ DJ Claude \x1b[0mv 0.1.15\x1b[1m — Live coding music for Agents ║\n' +
17
+ ' ║ DJ Claude \x1b[0mv 0.1.16\x1b[1m — Live coding music for Agents ║\n' +
18
18
  ' ╚════════════════════════════════════════════════════╝\x1b[0m\n' +
19
19
  '\n' +
20
20
  ' \x1b[1m─── About ─────────────────────────────────────────────\x1b[0m\n' +
@@ -0,0 +1,23 @@
1
+ export interface Hap {
2
+ whole?: {
3
+ begin: number;
4
+ end: number;
5
+ };
6
+ value: Record<string, unknown>;
7
+ }
8
+ export declare const GRID_WIDTH = 32;
9
+ export declare const DRUM_NAMES: string[];
10
+ export declare function midiToName(midi: number): string;
11
+ export declare function noteToSortKey(name: string): number;
12
+ export declare function isDrum(hap: Hap): boolean;
13
+ export declare function getNoteValue(hap: Hap): string | null;
14
+ export declare function queryHaps(pattern: unknown, start: number, end: number): Hap[];
15
+ export declare function buildDrumGrid(haps: Hap[], cycleStart: number): Map<string, boolean[]>;
16
+ export declare function buildPianoroll(haps: Hap[], cycleStart: number): Map<string, boolean[]>;
17
+ export declare function renderPlayheadRow(label: string, playheadCol: number): string;
18
+ /**
19
+ * Render a static ASCII snapshot of one cycle of a pattern.
20
+ * Returns empty string if no visualization data is available.
21
+ */
22
+ export declare function renderPatternSnapshot(pattern: unknown): string;
23
+ //# sourceMappingURL=pattern-viz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-viz.d.ts","sourceRoot":"","sources":["../../src/lib/pattern-viz.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG;IAClB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,UAAU,UAAgE,CAAC;AAExF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAGxC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAOpD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAU7E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAerF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAoBtF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAO5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAqC9D"}
@@ -0,0 +1,130 @@
1
+ // Pure helper functions for pattern visualization grid rendering.
2
+ export const GRID_WIDTH = 32;
3
+ export const DRUM_NAMES = ['bd', 'sd', 'hh', 'oh', 'cp', 'lt', 'mt', 'ht', 'rim', 'cb'];
4
+ export function midiToName(midi) {
5
+ const names = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'];
6
+ const octave = Math.floor(midi / 12) - 1;
7
+ const name = names[midi % 12];
8
+ return `${name}${octave}`;
9
+ }
10
+ export function noteToSortKey(name) {
11
+ const match = name.match(/^([A-G]#?)(-?\d+)$/);
12
+ if (!match)
13
+ return 0;
14
+ const noteMap = {
15
+ 'C': 0, 'C#': 1, 'D': 2, 'D#': 3, 'E': 4, 'F': 5,
16
+ 'F#': 6, 'G': 7, 'G#': 8, 'A': 9, 'A#': 10, 'B': 11,
17
+ };
18
+ return parseInt(match[2]) * 12 + (noteMap[match[1]] ?? 0);
19
+ }
20
+ export function isDrum(hap) {
21
+ const s = hap.value?.s;
22
+ return typeof s === 'string' && DRUM_NAMES.includes(s);
23
+ }
24
+ export function getNoteValue(hap) {
25
+ const note = hap.value?.note;
26
+ if (typeof note === 'string')
27
+ return note;
28
+ if (typeof note === 'number')
29
+ return midiToName(note);
30
+ const n = hap.value?.n;
31
+ if (typeof n === 'number')
32
+ return midiToName(n);
33
+ return null;
34
+ }
35
+ export function queryHaps(pattern, start, end) {
36
+ try {
37
+ const p = pattern;
38
+ if (typeof p?.queryArc === 'function') {
39
+ return p.queryArc(start, end);
40
+ }
41
+ }
42
+ catch {
43
+ // Pattern query failed — return empty
44
+ }
45
+ return [];
46
+ }
47
+ export function buildDrumGrid(haps, cycleStart) {
48
+ const grid = new Map();
49
+ for (const hap of haps) {
50
+ const s = hap.value?.s;
51
+ if (!grid.has(s)) {
52
+ grid.set(s, new Array(GRID_WIDTH).fill(false));
53
+ }
54
+ if (hap.whole) {
55
+ const col = Math.floor((hap.whole.begin - cycleStart) * GRID_WIDTH);
56
+ if (col >= 0 && col < GRID_WIDTH) {
57
+ grid.get(s)[col] = true;
58
+ }
59
+ }
60
+ }
61
+ return grid;
62
+ }
63
+ export function buildPianoroll(haps, cycleStart) {
64
+ const grid = new Map();
65
+ for (const hap of haps) {
66
+ const note = getNoteValue(hap);
67
+ if (!note)
68
+ continue;
69
+ if (!grid.has(note)) {
70
+ grid.set(note, new Array(GRID_WIDTH).fill(false));
71
+ }
72
+ if (hap.whole) {
73
+ const begin = hap.whole.begin - cycleStart;
74
+ const end = hap.whole.end - cycleStart;
75
+ const colStart = Math.max(0, Math.floor(begin * GRID_WIDTH));
76
+ const colEnd = Math.min(GRID_WIDTH, Math.ceil(end * GRID_WIDTH));
77
+ const row = grid.get(note);
78
+ for (let c = colStart; c < colEnd; c++) {
79
+ row[c] = true;
80
+ }
81
+ }
82
+ }
83
+ return grid;
84
+ }
85
+ export function renderPlayheadRow(label, playheadCol) {
86
+ const pad = label.padEnd(4);
87
+ let row = '';
88
+ for (let i = 0; i < GRID_WIDTH; i++) {
89
+ row += i === playheadCol ? '▏' : '─';
90
+ }
91
+ return `${pad}${row}`;
92
+ }
93
+ /**
94
+ * Render a static ASCII snapshot of one cycle of a pattern.
95
+ * Returns empty string if no visualization data is available.
96
+ */
97
+ export function renderPatternSnapshot(pattern) {
98
+ const haps = queryHaps(pattern, 0, 1);
99
+ if (haps.length === 0)
100
+ return '';
101
+ const drums = haps.filter(isDrum);
102
+ const melodic = haps.filter((h) => !isDrum(h) && getNoteValue(h) !== null);
103
+ const lines = [];
104
+ if (drums.length > 0) {
105
+ const grid = buildDrumGrid(drums, 0);
106
+ const sorted = [...grid.keys()].sort((a, b) => DRUM_NAMES.indexOf(a) - DRUM_NAMES.indexOf(b));
107
+ for (const name of sorted) {
108
+ const row = grid.get(name);
109
+ const pad = name.padEnd(4);
110
+ const cells = row.map((on) => (on ? '●' : '·')).join('');
111
+ lines.push(`${pad}${cells}`);
112
+ }
113
+ }
114
+ if (melodic.length > 0) {
115
+ const grid = buildPianoroll(melodic, 0);
116
+ const sorted = [...grid.keys()]
117
+ .sort((a, b) => noteToSortKey(b) - noteToSortKey(a))
118
+ .slice(0, 8);
119
+ if (lines.length > 0)
120
+ lines.push('');
121
+ for (const note of sorted) {
122
+ const row = grid.get(note);
123
+ const pad = note.padEnd(4);
124
+ const cells = row.map((on) => (on ? '█' : '░')).join('');
125
+ lines.push(`${pad}${cells}`);
126
+ }
127
+ }
128
+ return lines.length > 0 ? lines.join('\n') : '';
129
+ }
130
+ //# sourceMappingURL=pattern-viz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-viz.js","sourceRoot":"","sources":["../../src/lib/pattern-viz.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pattern-viz.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-viz.test.d.ts","sourceRoot":"","sources":["../../src/lib/pattern-viz.test.ts"],"names":[],"mappings":""}