@hraness/dawg 0.6.0 → 0.7.0

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 (275) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/DAWG.md +655 -141
  3. package/README.md +27 -25
  4. package/core/autotune.ts +1119 -0
  5. package/core/chords.ts +759 -23
  6. package/core/clips.ts +499 -0
  7. package/core/diff.ts +182 -99
  8. package/core/expression.ts +158 -6
  9. package/core/fx.ts +354 -32
  10. package/core/granular.ts +91 -0
  11. package/core/instruments.ts +180 -0
  12. package/core/keys.ts +573 -4
  13. package/core/loop.ts +5 -0
  14. package/core/lyrics.ts +297 -0
  15. package/core/master.ts +3 -3
  16. package/core/resonators.ts +306 -4
  17. package/core/routing.ts +165 -0
  18. package/core/score.ts +1181 -16
  19. package/core/sdk/eval-child.ts +7 -2
  20. package/core/sdk/eval.ts +35 -6
  21. package/core/sdk/print.ts +354 -6
  22. package/core/sdk/sync-lyrics.ts +49 -0
  23. package/core/sdk/v1.ts +3160 -69
  24. package/core/sections.ts +298 -24
  25. package/core/sing.ts +815 -0
  26. package/core/strings.ts +237 -2
  27. package/core/style-provenance.ts +80 -0
  28. package/core/styles/africa-mena-southasia.ts +2893 -0
  29. package/core/styles/americas.ts +3810 -0
  30. package/core/styles/art.ts +4993 -0
  31. package/core/styles/base.ts +123 -0
  32. package/core/styles/cycles.ts +106 -0
  33. package/core/styles/electronic.ts +2723 -0
  34. package/core/styles/europe-asia-pacific.ts +2838 -0
  35. package/core/styles/excerpt.ts +29 -0
  36. package/core/styles/gamelan.ts +283 -0
  37. package/core/styles/generate.ts +2199 -0
  38. package/core/styles/index.ts +515 -0
  39. package/core/styles/parts.ts +106 -0
  40. package/core/styles/pop.ts +3189 -0
  41. package/core/styles/rock.ts +2993 -0
  42. package/core/styles/roots.ts +4175 -0
  43. package/core/styles/schema.ts +429 -0
  44. package/core/styles/taxonomy.ts +940 -0
  45. package/core/styles/validate.ts +528 -0
  46. package/core/tempo.ts +32 -2
  47. package/core/tuning.ts +19 -3
  48. package/core/vocoder.ts +524 -0
  49. package/core/winds.ts +652 -0
  50. package/guides/agent.md +29 -0
  51. package/guides/arrange.md +30 -0
  52. package/guides/audition.md +20 -14
  53. package/guides/automation.md +12 -6
  54. package/guides/chords.md +16 -14
  55. package/guides/effects.md +17 -15
  56. package/guides/faders.md +20 -16
  57. package/guides/files.md +13 -9
  58. package/guides/getting-started.md +15 -11
  59. package/guides/keys.md +19 -15
  60. package/guides/media.md +17 -12
  61. package/guides/mix.md +12 -6
  62. package/guides/music.md +23 -8
  63. package/guides/notes.md +15 -9
  64. package/guides/performance.md +15 -10
  65. package/guides/play.md +21 -13
  66. package/guides/project.md +25 -8
  67. package/guides/providers.md +20 -14
  68. package/guides/resample.md +32 -0
  69. package/guides/rhythm.md +17 -13
  70. package/guides/sessions.md +17 -7
  71. package/guides/show-me.md +31 -0
  72. package/guides/sound.md +25 -9
  73. package/guides/sounds.md +15 -12
  74. package/guides/styles.md +31 -0
  75. package/guides/tempo.md +15 -10
  76. package/guides/tracks.md +15 -10
  77. package/guides/tuning.md +32 -0
  78. package/guides/voice.md +31 -0
  79. package/guides/web-search.md +18 -8
  80. package/native/prebuilt/darwin-arm64/libdawg_sink.dylib +0 -0
  81. package/native/prebuilt/darwin-x64/libdawg_sink.dylib +0 -0
  82. package/native/prebuilt/linux-arm64/libdawg_sink.so +0 -0
  83. package/native/prebuilt/linux-x64/libdawg_sink.so +0 -0
  84. package/native/prebuilt/manifest.json +21 -0
  85. package/package.json +5 -2
  86. package/src/agent/agent.ts +131 -13
  87. package/src/agent/calibration-tools.ts +53 -0
  88. package/src/agent/chord-tools.ts +153 -1
  89. package/src/agent/clip-tools.ts +453 -0
  90. package/src/agent/command-agent.ts +369 -0
  91. package/src/agent/drum-tools.ts +2 -2
  92. package/src/agent/expression-tools.ts +91 -0
  93. package/src/agent/gateway.ts +246 -60
  94. package/src/agent/models.ts +53 -12
  95. package/src/agent/ops.ts +15 -1
  96. package/src/agent/pack-tools.ts +1 -1
  97. package/src/agent/planner.ts +13 -0
  98. package/src/agent/portable-schema.ts +80 -0
  99. package/src/agent/preview-tool.ts +5 -1
  100. package/src/agent/provider.ts +22 -8
  101. package/src/agent/resample-tool.ts +131 -0
  102. package/src/agent/rhythm-tools.ts +1 -1
  103. package/src/agent/section-tools.ts +1 -1
  104. package/src/agent/show-me.ts +497 -0
  105. package/src/agent/steer.ts +15 -0
  106. package/src/agent/style-tools.ts +217 -0
  107. package/src/agent/tool-error.ts +12 -0
  108. package/src/agent/tools.ts +307 -37
  109. package/src/agent/usage.ts +2 -2
  110. package/src/agent/voice-tools.ts +925 -0
  111. package/src/agent/xcb-agent.ts +16 -6
  112. package/src/argv.ts +38 -0
  113. package/src/audio/analysis.ts +253 -0
  114. package/src/audio/arrange.ts +58 -3
  115. package/src/audio/autotune-engine.ts +101 -0
  116. package/src/audio/autotune.ts +640 -0
  117. package/src/audio/clips.ts +240 -0
  118. package/src/audio/doctor.ts +86 -0
  119. package/src/audio/dsp/bandbank.ts +138 -0
  120. package/src/audio/dsp/envelope.ts +171 -0
  121. package/src/audio/dsp/follow.ts +120 -0
  122. package/src/audio/dsp/formant.ts +427 -0
  123. package/src/audio/dsp/glottal.ts +243 -0
  124. package/src/audio/dsp/interp.ts +7 -2
  125. package/src/audio/dsp/lpc.ts +50 -0
  126. package/src/audio/dsp/periodicity.ts +59 -0
  127. package/src/audio/dsp/pitch.ts +995 -0
  128. package/src/audio/dsp/psola.ts +199 -0
  129. package/src/audio/dsp/shift.ts +256 -0
  130. package/src/audio/effects/chain.ts +21 -4
  131. package/src/audio/effects/common.ts +57 -0
  132. package/src/audio/effects/convolution.ts +113 -5
  133. package/src/audio/effects/filter.ts +48 -69
  134. package/src/audio/effects/formant.ts +263 -0
  135. package/src/audio/effects/gaze.ts +354 -0
  136. package/src/audio/engine.ts +206 -33
  137. package/src/audio/fit.ts +80 -3
  138. package/src/audio/granular.ts +352 -21
  139. package/src/audio/instrument-check.ts +67 -47
  140. package/src/audio/instruments.ts +36 -3
  141. package/src/audio/keys/calibration.ts +56 -0
  142. package/src/audio/keys/electric.ts +427 -0
  143. package/src/audio/keys/engine.ts +156 -20
  144. package/src/audio/keys/organ.ts +1335 -0
  145. package/src/audio/keys/piano.ts +72 -8
  146. package/src/audio/keys/sympathetic.ts +127 -0
  147. package/src/audio/kits.ts +135 -6
  148. package/src/audio/live-worker.ts +3 -1
  149. package/src/audio/live.ts +247 -26
  150. package/src/audio/native.ts +615 -0
  151. package/src/audio/preview.ts +45 -3
  152. package/src/audio/render-worker.ts +2 -0
  153. package/src/audio/renderer.ts +2 -0
  154. package/src/audio/resample.ts +286 -0
  155. package/src/audio/resonators.ts +10 -2
  156. package/src/audio/sampler.ts +252 -24
  157. package/src/audio/samples.ts +46 -3
  158. package/src/audio/sing/analysis.ts +193 -0
  159. package/src/audio/sing/engine.ts +949 -0
  160. package/src/audio/strings/body.ts +29 -16
  161. package/src/audio/strings/bow.ts +699 -0
  162. package/src/audio/strings/engine.ts +274 -22
  163. package/src/audio/strings/measure.test-helpers.ts +2 -0
  164. package/src/audio/synth/oscillators.ts +31 -21
  165. package/src/audio/synth/voice.ts +34 -1
  166. package/src/audio/vocoder/bank.ts +314 -0
  167. package/src/audio/vocoder/carrier.ts +165 -0
  168. package/src/audio/vocoder/control.ts +68 -0
  169. package/src/audio/vocoder/detect.ts +50 -0
  170. package/src/audio/vocoder/index.ts +304 -0
  171. package/src/audio/vocoder/talkbox.ts +143 -0
  172. package/src/audio/wav.ts +608 -85
  173. package/src/audio/winds/engine.ts +306 -0
  174. package/src/audio/winds/filters.ts +153 -0
  175. package/src/audio/winds/pitch.ts +104 -0
  176. package/src/audio/winds/trim.ts +104 -0
  177. package/src/audio/winds/trims.ts +917 -0
  178. package/src/audio/winds/trims1.ts +297 -0
  179. package/src/audio/winds/voice.ts +492 -0
  180. package/src/auth/cli.ts +38 -36
  181. package/src/auth/credentials.ts +30 -1
  182. package/src/auth/login.ts +15 -9
  183. package/src/auth/tui.ts +19 -10
  184. package/src/commands/arrange.ts +44 -29
  185. package/src/commands/autotune.ts +421 -0
  186. package/src/commands/calibration.ts +74 -0
  187. package/src/commands/clips.ts +887 -0
  188. package/src/commands/drums.ts +3 -2
  189. package/src/commands/edit.ts +11 -4
  190. package/src/commands/expression.ts +104 -23
  191. package/src/commands/formant.ts +221 -0
  192. package/src/commands/fx.ts +105 -33
  193. package/src/commands/grammar.ts +558 -0
  194. package/src/commands/granular.ts +7 -2
  195. package/src/commands/help.ts +652 -339
  196. package/src/commands/history.ts +18 -0
  197. package/src/commands/keys.ts +293 -17
  198. package/src/commands/modal.ts +67 -4
  199. package/src/commands/music.ts +1 -1
  200. package/src/commands/nearest.ts +53 -0
  201. package/src/commands/pack.ts +9 -2
  202. package/src/commands/param-range.ts +56 -0
  203. package/src/commands/parses.ts +130 -0
  204. package/src/commands/progression.ts +170 -0
  205. package/src/commands/resample.ts +281 -0
  206. package/src/commands/rhythm.ts +3 -0
  207. package/src/commands/rig.ts +8 -25
  208. package/src/commands/sample.ts +49 -2
  209. package/src/commands/shift.ts +119 -0
  210. package/src/commands/sing.ts +478 -0
  211. package/src/commands/string.ts +28 -2
  212. package/src/commands/strum.ts +485 -0
  213. package/src/commands/style.ts +415 -0
  214. package/src/commands/time.ts +6 -3
  215. package/src/commands/tuning.ts +3 -3
  216. package/src/commands/vocal-pitch.ts +616 -0
  217. package/src/commands/vocal.ts +147 -0
  218. package/src/commands/vocoder.ts +627 -0
  219. package/src/commands/wind.ts +244 -0
  220. package/src/fs/durable.ts +50 -0
  221. package/src/lang/glossary.ts +493 -0
  222. package/src/launch-args.ts +163 -0
  223. package/src/main.ts +1521 -255
  224. package/src/media/cli.ts +20 -3
  225. package/src/media/import.ts +3 -1
  226. package/src/project/check.ts +26 -3
  227. package/src/project/clip-pins.ts +72 -0
  228. package/src/project/init.ts +23 -8
  229. package/src/project/sync.ts +418 -86
  230. package/src/render.ts +36 -1
  231. package/src/session/daemon.ts +3 -0
  232. package/src/session/meta.ts +14 -0
  233. package/src/session/origin.ts +154 -0
  234. package/src/session/port.ts +22 -4
  235. package/src/session/presence.ts +50 -7
  236. package/src/session/protocol.ts +5 -1
  237. package/src/session/rebase.ts +18 -5
  238. package/src/session/receipt.ts +258 -0
  239. package/src/session/store.ts +65 -43
  240. package/src/tui/arrange-menu.ts +65 -31
  241. package/src/tui/audition.ts +1 -1
  242. package/src/tui/euclid.ts +18 -13
  243. package/src/tui/fader.ts +228 -41
  244. package/src/tui/granular-menu.ts +2 -4
  245. package/src/tui/menu-clips.ts +297 -0
  246. package/src/tui/menu-time.ts +20 -13
  247. package/src/tui/menu-voice.ts +405 -0
  248. package/src/tui/menu.ts +1377 -193
  249. package/src/tui/modal-menu.ts +38 -11
  250. package/src/tui/performance-menu.ts +46 -1
  251. package/src/tui/play-chords.ts +108 -5
  252. package/src/tui/play-mode.ts +16 -1
  253. package/src/tui/play-session.ts +81 -16
  254. package/src/tui/sing-menu.ts +278 -0
  255. package/src/tui/style-menu.ts +104 -0
  256. package/src/tui/vocoder-menu.ts +244 -0
  257. package/src/tui/wind-menu.ts +144 -0
  258. package/src/version.ts +8 -0
  259. package/src/web/fetch.ts +115 -29
  260. package/tui/activity.ts +180 -9
  261. package/tui/app.ts +274 -40
  262. package/tui/clip-row.ts +132 -0
  263. package/tui/delight.ts +144 -0
  264. package/tui/drawer.ts +70 -22
  265. package/tui/frame-gate.ts +76 -0
  266. package/tui/grammar.ts +112 -63
  267. package/tui/guide.ts +42 -4
  268. package/tui/highway.ts +269 -25
  269. package/tui/hints.ts +192 -0
  270. package/tui/input.ts +60 -9
  271. package/tui/keys.ts +1 -1
  272. package/tui/play-strip.ts +68 -14
  273. package/tui/prompt.ts +1 -1
  274. package/tui/screen.ts +144 -14
  275. package/tui/theme.ts +27 -0
@@ -1,26 +1,32 @@
1
1
  ---
2
2
  id: audition
3
3
  title: Menu and audition loop
4
- parent: sound
5
- order: 5
4
+ parent: keys
5
+ order: 1
6
6
  ---
7
7
 
8
- Ctrl-K (or `/menu`) holds every edit the agent can make. Each row shows
9
- its value and, dimmed, the command it runs, so the menu teaches commands.
8
+ Each menu row shows its value and, dimmed, the command it runs, so the
9
+ menu teaches the commands. Changes are staged on a loop until you keep.
10
10
 
11
- ## Menu keys
11
+ ## Ask
12
12
 
13
- - ↑↓ move · → or Enter open · ←→ adjust a value
14
- - Enter on a number opens its fader drawer (see Faders and the mouse)
15
- - `x` reset · `/` filter · Esc back
16
- - `/menu effects` opens a section (sound effects rhythm chords mix project)
13
+ - "try a darker filter on the lead before keeping it"
17
14
 
18
- ## Audition loop
15
+ ## Type it yourself
19
16
 
20
- - Space loops the focused track; changes are staged, not kept
21
- - `a` A/B: committed sound against staged · `c` solo or in context
17
+ - `menu effects` opens a topic · `try fx reverb mix 0.6` stages one
18
+
19
+ ## Menu
20
+
21
+ - Ctrl-K opens Sound, Voice, Effects, Rhythm, Chords and key, Mix,
22
+ Arrange and Project: the same topics as `help` and `guide`
23
+
24
+ ## Keys
25
+
26
+ - ↑↓ move · → or Enter open · ←→ adjust a value · `x` reset · Esc back
27
+ - Space loops the track · `a` A/B · `c` solo or in context
22
28
  - Enter keeps every staged change as one undo step · Esc reverts
23
29
 
24
- ## Try a command
30
+ ## Next
25
31
 
26
- - `/try fx reverb mix 0.6` · `/try synth lpf 800` stage on the loop
32
+ - `guide faders` · `guide keys`
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  id: automation
3
3
  title: Automation
4
- parent: sound
5
- order: 3
4
+ parent: mix
5
+ order: 1
6
6
  ---
7
7
 
8
8
  A lane moves a value over beats. Every numeric effect parameter has one.
@@ -16,11 +16,17 @@ A lane moves a value over beats. Every numeric effect parameter has one.
16
16
 
17
17
  - `automate volume at 0 0.2` · `automate volume at 4 1`
18
18
  - `automate filter points 0:400 4:6000` several points at once
19
- - `automate pan at 0 -1` · `automate delay-mix at 4 0`
20
- - `automate distort-drive points 0:1 8:6`
21
- - `automate filter remove 4` delete one point
19
+ - `automate delay-mix at 4 0` · `automate filter remove 4`
22
20
  - `clear filter automation` · `clear automation`
23
21
 
24
22
  ## Menu
25
23
 
26
- - Ctrl-K › Mix › automation: each lane, add points, ramp, clear lane
24
+ - Ctrl-K › Mix › automation: each lane, add points, ramp, clear
25
+
26
+ ## Keys
27
+
28
+ - In a lane row ←→ moves the point · `x` clears the lane
29
+
30
+ ## Next
31
+
32
+ - `guide mix` · `guide resample`
package/guides/chords.md CHANGED
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  id: chords
3
- title: Chords
4
- parent: music
5
- order: 4
3
+ title: Chords and key
4
+ order: 7
6
5
  ---
7
6
 
8
7
  ## Ask
@@ -10,19 +9,22 @@ order: 4
10
9
  - "write a sad pop progression in A minor, two beats per chord"
11
10
  - "arpeggiate the chords upward over two octaves"
12
11
 
13
- ## Play them
14
-
15
- - `key A minor` then Ctrl-P, `q`: every key plays a chord in the key
16
- - `1 2 3 4` dim min maj sus · `5 6 7 8` add 6, m7, M7, 9
17
- - `- =` voicing down / up · `9` perform mode · `b` bass mode
18
- - `n` play the suggested next chord · `0` clear the latches
19
-
20
12
  ## Type it yourself
21
13
 
22
- - `/chords auto` · `/chords manual` · `/chords off`
23
- - `/chords voicing 2` · `/chords spread wide` · `/chords bass chords`
24
- - `/chords perform arp-up` · `/chords sevenths on` · `/chords`
14
+ - `key A minor` · `scale D hijaz` · `progression i7 IV7 each 8`
15
+ - `chords auto` · `chords voicing 2` · `chords perform arp-up`
16
+ - `strum G D Em C folk` · `guitar tune dadgad` · `guitar capo 2`
25
17
 
26
18
  ## Menu
27
19
 
28
- - Ctrl-K › Chords: key, voicing, bass, perform, progression, style
20
+ - Ctrl-K › Chords and key › key · play · progression · idiom
21
+
22
+ ## Keys
23
+
24
+ - Ctrl-P play mode, `q`: every key plays a chord in the key
25
+ - `1 2 3 4` dim min maj sus · `5 6 7 8` 6, m7, M7, 9
26
+ - `- =` voicing · `9` perform · `b` bass · `n` next chord · `0` clear
27
+
28
+ ## Next
29
+
30
+ - `guide tuning` · `guide play`
package/guides/effects.md CHANGED
@@ -1,29 +1,31 @@
1
1
  ---
2
2
  id: effects
3
3
  title: Effects
4
- parent: sound
5
- order: 2
4
+ order: 5
6
5
  ---
7
6
 
8
- Chain: filter, auto filter, distortion, tremolo, compressor, pan,
9
- chorus, delay, reverb, and more (phaser, bitcrush, vowel, leslie).
7
+ Each track has a fixed chain: filter, auto filter, distortion, tremolo,
8
+ compressor, chorus, delay, reverb, and more (phaser, bitcrush, vowel).
10
9
 
11
10
  ## Ask
12
11
 
13
- - "add a dub delay to the snare" · "more room on the keys"
14
- - "give the guitar a crunchy amp"
12
+ - "add a dub delay to the snare" · "give the guitar a crunchy amp"
15
13
 
16
14
  ## Type it yourself
17
15
 
18
- - `fx` list the focused track's effects
19
- - `fx delay mix 0.3` · `fx filter type hpf cutoff 300`
20
- - `fx distort drive 4 tone 5000` · `fx reverb ir hall`
21
- - `fx chorus on` · `fx chorus off` · `fx chorus reset`
22
- - `fx compressor preset <name>` load a preset
23
- - `rig crunch` guitar rig · `head lead` · `cab 4x12` · `stomp fuzz`
24
- - `filter 1200 0.6` · `delay 0.375 0.3` · `reverb 0.4 0.8` · `filter off`
16
+ - `fx` lists the focused track's effects · `fx delay mix 0.3`
17
+ - `fx filter type hpf cutoff 300` · `fx chorus on` · `fx chorus reset`
18
+ - `rig crunch` · `rig shoegaze` · `head lead` · `stomp fuzz`
19
+ - `filter 1200 0.6` · `delay 0.375 0.3` · `reverb 0.4 0.8`
25
20
 
26
21
  ## Menu
27
22
 
28
- - Ctrl-K › Effects: core effects, Guitar rig, more effects, advanced
29
- - `fx filter` alone opens the filter's faders, stacked
23
+ - Ctrl-K › Effects › Delay · Reverb · Guitar rig · Shoegaze
24
+
25
+ ## Keys
26
+
27
+ - `fx filter` alone opens its faders, stacked · Tab next param
28
+
29
+ ## Next
30
+
31
+ - `guide mix` · `guide automation`
package/guides/faders.md CHANGED
@@ -1,29 +1,33 @@
1
1
  ---
2
2
  id: faders
3
3
  title: Faders and the mouse
4
- parent: sound
5
- order: 6
4
+ parent: keys
5
+ order: 2
6
6
  ---
7
7
 
8
- A fader drawer opens above the prompt to edit a value; the piano roll
9
- stays visible above it. Edits are staged and heard on the loop.
8
+ A fader drawer opens above the prompt; edits are heard on the loop.
10
9
 
11
- ## Open one
10
+ ## Ask
12
11
 
13
- - `volume` · `pan` · `fx filter` · `fx reverb mix` (no value)
14
- - Ctrl-K, then Enter on a number row · or click it twice
12
+ - "turn the reverb up a little and let me hear it"
13
+
14
+ ## Type it yourself
15
+
16
+ - `volume` · `pan` · `fx filter` · `fx reverb mix` (no value opens it)
17
+
18
+ ## Menu
19
+
20
+ - Ctrl-K, then Enter on a number row · or click the row twice
15
21
 
16
22
  ## Keys
17
23
 
18
- - ←→ or `-` `+` step · Shift-←→ coarse · `[` `]` fine · PgUp PgDn big
19
- - Home End min max · digits type a value · `0` or `d` default
20
- - ↑↓ or Tab move between the device's params
21
- - Enter keeps all as one undo step · Esc reverts · `?` all keys
24
+ - ←→ or `-` `+` step · Shift-←→ coarse · `[` `]` fine · Home End
25
+ - digits type · `0` default · Tab next · Enter keeps · Esc reverts
22
26
 
23
27
  ## Mouse
24
28
 
25
- - Click [−] [+] · click or drag the bar · wheel over a fader
26
- - Click an option to choose it · [keep] [revert] in the title
27
- - Click a list row to select, again to open · wheel scrolls lists
28
- - Click ▶/⏸ BPM to play · the track name lists tracks · the model
29
- - `dawg --no-mouse` or `DAWG_MOUSE=0` turns the mouse off
29
+ - Click [−] [+] · drag the bar · wheel · `dawg --no-mouse` turns it off
30
+
31
+ ## Next
32
+
33
+ - `guide audition` · `guide mix`
package/guides/files.md CHANGED
@@ -12,17 +12,21 @@ Edit them in any editor; every open window picks up the change.
12
12
 
13
13
  - "rewrite the drums in track.ts with a euclid kick"
14
14
 
15
- ## Shell
16
-
17
- - `dawg init` · `dawg check` typecheck and evaluate, exit 1 on problems
18
- - `dawg render out.wav` render the song to a WAV file
19
-
20
- ## In a track.ts
15
+ ## Type it yourself
21
16
 
17
+ - `dawg init` · `dawg check` · `dawg render out.wav`
22
18
  - `import { track, note, euclid, chord } from "dawg"`
23
19
  - `notes: [note("C4", 0, 1), ...chord("Am7", 4, 4)]`
24
- - `rhythm: [euclid("kick", 4, 16)]`
20
+ - `export loop.track.json` · `import loop.track.json`
21
+
22
+ ## Menu
23
+
24
+ - Ctrl-K › Project › export
25
+
26
+ ## Keys
27
+
28
+ - Edits land as one undo step · Ctrl-Z undoes a file change
25
29
 
26
- ## In the app
30
+ ## Next
27
31
 
28
- - `/export loop.track.json` · `/import loop.track.json`
32
+ - `guide sessions` · `guide project`
@@ -4,23 +4,27 @@ title: Getting started
4
4
  order: 1
5
5
  ---
6
6
 
7
- Run `dawg` in a folder. The highway shows notes; the prompt is below it.
8
- There are three ways in: ask, play, or open the menu.
7
+ Run `dawg` in a folder: notes fall toward the hit line, the prompt is
8
+ below, and every change is one undo step.
9
9
 
10
10
  ## Ask
11
11
 
12
- - "make a four bar lo-fi loop at 85 bpm"
13
- - "add a bass line under the chords"
12
+ - "make a four bar lo-fi loop at 85 BPM" (needs an agent: `guide agent`)
13
+ - The pill by the prompt: NOW sends at once, NEXT waits for the agent
14
14
 
15
15
  ## Type it yourself
16
16
 
17
- - `add C4 at 0 for 1` one note on beat 0, one beat long
18
- - `tempo 120` · `bars 8` · `play` · `pause`
19
- - Space on an empty prompt plays and pauses
20
- - `undo` · `redo` (Ctrl-Z · Ctrl-Y)
17
+ - `track drums` · `pattern house` · `add C4 at 0 for 1` · `tempo 120`
18
+ - `play` · `pause` · `undo` · `redo` · Space on an empty prompt
19
+
20
+ ## Menu
21
+
22
+ - Ctrl-K: Sound, Voice (sung audio), Effects, Rhythm, Chords and key…
23
+
24
+ ## Keys
25
+
26
+ - Ctrl-P play mode · Ctrl-K menu · `?` keys · F1 guides · Ctrl-Q next
21
27
 
22
28
  ## Next
23
29
 
24
- - Ctrl-P plays notes on the keyboard, Ctrl-K opens the menu
25
- - `?` shows the keys for the screen you are on
26
- - `/help` lists commands, `/guide` opens these guides
30
+ - `help` start here · `guide sound` · `guide voice` · `guide rhythm`
package/guides/keys.md CHANGED
@@ -1,27 +1,31 @@
1
1
  ---
2
2
  id: keys
3
- title: Keys
4
- order: 5
3
+ title: Using dawg
4
+ order: 2
5
5
  ---
6
6
 
7
- `?` shows the keys for the screen you are on; any key closes it.
7
+ The same keys work on every screen: arrows move, Enter chooses, Esc goes
8
+ back, `?` lists the keys for the screen you are on.
8
9
 
9
- ## Prompt
10
+ ## Ask
10
11
 
11
- - Enter send · Shift-Enter new line · Alt-Enter queue · Ctrl-Q queue mode
12
- - Space play / pause (empty prompt) · Esc cancel or close
13
- - Ctrl-Z undo · Ctrl-Y redo · Ctrl-O transcript · Ctrl-L redraw
14
- - Ctrl-P play mode · Ctrl-K menu · F1 guides · Ctrl-C exit
12
+ - "show me how to make the reverb wetter" (the agent types it for you)
15
13
 
16
- ## Lists, menus and guides
14
+ ## Type it yourself
17
15
 
18
- - ↑↓ or `j` `k` move · Enter choose · `/` filter · Esc back
16
+ - `theme default|high-contrast|mono` · `motion off` · `view all`
17
+ - `help keys` every key of every screen · `transcript` (Ctrl-O)
19
18
 
20
- ## Mouse
19
+ ## Menu
21
20
 
22
- - Click rows, header pills, faders · wheel scrolls · `--no-mouse`
21
+ - Ctrl-K › Project › help and guides: help, guides, keys
23
22
 
24
- ## Window
23
+ ## Keys
25
24
 
26
- - `/theme default|high-contrast|mono` · `/motion off`
27
- - `/help` · `/help all` · `/help keys` · `/guide keys`
25
+ - Enter send · Shift-Enter new line · Alt-Enter run next · Esc cancel
26
+ - Ctrl-Z undo · Ctrl-Y redo · Ctrl-L redraw · Ctrl-C exit
27
+ - Lists: ↑↓ or `j` `k` move · Enter choose · `/` filter · Esc back
28
+
29
+ ## Next
30
+
31
+ - `guide audition` · `guide faders` · `guide play`
package/guides/media.md CHANGED
@@ -2,26 +2,31 @@
2
2
  id: media
3
3
  title: Samples and media tools
4
4
  parent: sound
5
- order: 6
5
+ order: 4
6
6
  ---
7
7
 
8
- Downloads land in `tracks/<slug>/downloads/`. A missing
9
- helper is reported with its install command; `dawg media doctor` checks.
8
+ Downloads land in `tracks/<slug>/downloads/`. A missing helper prints
9
+ its install command; `dawg media doctor` checks them all.
10
10
 
11
11
  ## Ask
12
12
 
13
- - "download <youtube url> and split it into stems"
14
- - "transcribe the bass stem into notes" · "make a sample of the hook"
13
+ - "download <url> and split it into stems" · "make a sample of the hook"
15
14
 
16
- ## Shell
15
+ ## Type it yourself
17
16
 
18
- - `dawg media download <url> --name hook`
19
17
  - `dawg media stems <file>` vocals drums bass guitar piano other
20
- - `dawg media analyze <file>` tempo, key, beat grid
21
- - `dawg media notes <file> --kind bass` notes as SDK code
18
+ - `dawg media analyze <file>` · `dawg media notes <file> --kind bass`
22
19
  - `dawg media sample <file> hook --begin 0.2 --end 0.3`
23
- - `dawg media wavetable <file> vox` · `dawg media lyrics <file>`
20
+ - `sample <path> as <sample>` · `sample` lists the track's samples
24
21
 
25
- ## In the app
22
+ ## Menu
26
23
 
27
- - `/sample <path> as <voice>` · `/sample` lists the voices
24
+ - Ctrl-K › Sound › instruments › use a sample · sample packs
25
+
26
+ ## Keys
27
+
28
+ - Enter on a sample auditions it · Esc back
29
+
30
+ ## Next
31
+
32
+ - `guide resample` · `guide voice`
package/guides/mix.md CHANGED
@@ -1,23 +1,29 @@
1
1
  ---
2
2
  id: mix
3
3
  title: Mix
4
- parent: sound
5
- order: 4
4
+ order: 8
6
5
  ---
7
6
 
8
7
  ## Ask
9
8
 
10
9
  - "turn the hats down and pan them right"
11
- - "sidechain the bass to the kick"
10
+ - "sidechain the bass to the kick" · "master it for streaming"
12
11
 
13
12
  ## Type it yourself
14
13
 
15
14
  - `volume 0.7` (0..1) · `pan -0.4` (-1..1)
16
15
  - `mute` · `unmute` · `solo` · `unsolo`
17
- - `fx orbit 2` send to a bus · `fx orbit shared on` shared reverb
18
- - `fx duck preset pump` on the kick: it ducks the other tracks
16
+ - `fx orbit 2` send to a bus · `fx duck preset pump` on the kick
17
+ - `master streaming` · `master target -14` · `master measure`
19
18
 
20
19
  ## Menu
21
20
 
22
- - Ctrl-K › Mix: name, mute, solo, volume, pan, all tracks
21
+ - Ctrl-K › Mix › volume · pan · all tracks · automation · master
22
+
23
+ ## Keys
24
+
23
25
  - `volume` or `pan` alone opens a fader to drag or step
26
+
27
+ ## Next
28
+
29
+ - `guide automation` · `guide faders`
package/guides/music.md CHANGED
@@ -1,14 +1,29 @@
1
1
  ---
2
2
  id: music
3
3
  title: Writing music
4
- order: 2
4
+ parent: arrange
5
+ order: 5
5
6
  ---
6
7
 
7
- Tracks hold instruments and notes. Each guide below shows what to ask
8
- the agent and the command, key or menu row that does the same by hand.
8
+ A loop grows into a song in four moves: notes, tracks, sections, form.
9
9
 
10
- - Tracks and instruments
11
- - Notes and the highway
12
- - Play mode
13
- - Chords
14
- - Rhythm and drums
10
+ ## Ask
11
+
12
+ - "start a lo-fi loop, then grow it into verse and chorus"
13
+
14
+ ## Type it yourself
15
+
16
+ - `add C4 at 0 for 1` · `track pad` · `progression ii V I each 4`
17
+ - `section verse 1-8` · `section chorus 9-16` · `form verse chorus*2`
18
+
19
+ ## Menu
20
+
21
+ - Ctrl-K › Arrange › sections · form
22
+
23
+ ## Keys
24
+
25
+ - Ctrl-P play mode plays your idea in · Ctrl-Z undoes any step
26
+
27
+ ## Next
28
+
29
+ - `guide notes` · `guide chords` · `guide styles`
package/guides/notes.md CHANGED
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  id: notes
3
3
  title: Notes and the highway
4
- parent: music
5
- order: 2
4
+ parent: arrange
5
+ order: 1
6
6
  ---
7
7
 
8
- Notes stream toward the hit line; sustains stretch across beats.
9
- Beats count from 0. Each note has an id shown in the receipt.
8
+ Notes stream toward the hit line; sustains stretch across beats. Beats
9
+ count from 0. Each note has an id shown in the receipt.
10
10
 
11
11
  ## Ask
12
12
 
@@ -15,12 +15,18 @@ Beats count from 0. Each note has an id shown in the receipt.
15
15
 
16
16
  ## Type it yourself
17
17
 
18
- - `add E4 at 2 for 0.5` add a note
18
+ - `add E4 at 2 for 0.5` · `remove <id>`
19
19
  - `move <id> to 2.5` · `length <id> 0.25` · `velocity <id> 0.6`
20
- - `remove <id>` delete one note
21
20
  - `bars 8` · `extend 4 bars` loop length
22
21
 
23
- ## View
22
+ ## Menu
24
23
 
25
- - `/view focus` one track · `/view all` every track
26
- - Ctrl-O or `/transcript` the history of requests and edits
24
+ - Ctrl-K › Project › loop length
25
+
26
+ ## Keys
27
+
28
+ - `view focus` one track · `view all` · Ctrl-O the transcript
29
+
30
+ ## Next
31
+
32
+ - `guide play` · `guide tracks`
@@ -2,25 +2,30 @@
2
2
  id: performance
3
3
  title: Performance and expression
4
4
  parent: sound
5
- order: 7
5
+ order: 2
6
6
  ---
7
7
 
8
- How notes are played: articulation, glides, bends, pedal and feel.
9
- Targets are `all` (default), `bar 3`, `bars 2-4` or note ids.
8
+ How notes are played. Targets: `all`, `bar 3`, `bars 2-4` or note ids.
10
9
 
11
10
  ## Ask
12
11
 
13
- - "make the bass slide like a 303" · "ghost the off-beat hats"
14
- - "pedal the piano every bar" · "humanize the drums a little"
12
+ - "make the bass slide like a 303" · "pedal the piano every bar"
15
13
 
16
14
  ## Type it yourself
17
15
 
18
16
  - `art staccato|legato|accent|tenuto|marcato|ghost [target]`
19
- - `glide 60ms legato` per track · `glide 60ms bar 2` per note
20
- - `bend scoop|fall|doit|-200 [target]` · `vibrato 5.5 30 0.2`
21
- - `pedal 0-3.5 4-7.5` (beats) · `pedal bars` · `pedal off`
22
- - `velcurve soft|hard|fixed 0.7` · `humanize 8 5 10 seed 3`
17
+ - `glide 60ms legato` · `bend scoop` · `vibrato 5.5 30 0.2`
18
+ - `pedal 0-3.5 4-7.5` · `pedal bars` · `pedal soft 0-8` · `pedal off`
19
+ - `velcurve soft` · `humanize 8 5 10 seed 3`
23
20
 
24
21
  ## Menu
25
22
 
26
- - Ctrl-K › Sound › performance (`/menu performance`)
23
+ - Ctrl-K › Sound › performance
24
+
25
+ ## Keys
26
+
27
+ - Shift + note in play mode sustains · Tab latches the sustain
28
+
29
+ ## Next
30
+
31
+ - `guide sounds` · `guide play`
package/guides/play.md CHANGED
@@ -1,24 +1,32 @@
1
1
  ---
2
2
  id: play
3
3
  title: Play mode
4
- parent: music
4
+ parent: keys
5
5
  order: 3
6
6
  ---
7
7
 
8
- Ctrl-P (or `/play`) turns the computer keyboard into a piano for the
9
- focused track. Esc (or `/play off`) leaves it.
8
+ Ctrl-P turns the computer keyboard into a piano for the focused track.
9
+ Esc leaves it.
10
+
11
+ ## Ask
12
+
13
+ - "record what I play over four bars, quantized to sixteenths"
14
+
15
+ ## Type it yourself
16
+
17
+ - `play on` · `play off` · `play degrees` · `play in-key`
18
+ - `click 40%` · `count-in 2` bars · `grid 1/16` record quantize
19
+
20
+ ## Menu
21
+
22
+ - Ctrl-K › Project › click · count-in bars · grid
10
23
 
11
24
  ## Keys
12
25
 
13
- - `a s d f g h j k l ; '` white keys · `w e t y u o p` black keys
14
- - `z` `x` octave down / up · `c` `v` velocity down / up
15
- - Shift + note sustains · Tab sustain latch
16
- - `r` record arm · `R` record replacing · Space play (counts in)
17
- - `m` metronome click · `q` chord mode · `/` type a command
26
+ - `a s d f g h j k l` white keys · `w e t y u o p` black keys
27
+ - `z` `x` octave · `c` `v` velocity · Shift + note sustains · Tab latch
28
+ - `r` record · `R` replace · Space play · `m` click · `q` chord mode
18
29
 
19
- ## Commands
30
+ ## Next
20
31
 
21
- - `/click on` · `/click off` · `/click 40%` click volume
22
- - `/count-in 2` bars of click before recording (0, 1 or 2)
23
- - `/grid 1/16` record quantize (1/4 1/8 1/8T 1/16 1/16T 1/32)
24
- - Ctrl-Z undoes one recorded bar
32
+ - `guide chords` (chord mode) · `guide notes`
package/guides/project.md CHANGED
@@ -1,13 +1,30 @@
1
1
  ---
2
2
  id: project
3
- title: Projects and sessions
4
- order: 4
3
+ title: Project
4
+ order: 10
5
5
  ---
6
6
 
7
- Everything is local in `.dawg`. A project adds plain TypeScript files
8
- you and the agent can edit; windows on one folder stay in sync.
7
+ Everything is local in `.dawg`. The transport, tempo, files and undo
8
+ live here; windows on one folder stay in sync.
9
9
 
10
- - Project files and SDK
11
- - Sessions and windows
12
- - Providers and models
13
- - Web search
10
+ ## Ask
11
+
12
+ - "export the song as MIDI" · "what changed since the last save?"
13
+
14
+ ## Type it yourself
15
+
16
+ - `play` · `pause` · `tempo 120` · `meter 3` · `click on`
17
+ - `export loop.mid` · `import loop.track.json` · `status`
18
+ - `undo` · `redo` · `calibration latest`
19
+
20
+ ## Menu
21
+
22
+ - Ctrl-K › Project › play · tempo · export · session · agent
23
+
24
+ ## Keys
25
+
26
+ - Space plays on an empty prompt · Ctrl-Z · Ctrl-Y
27
+
28
+ ## Next
29
+
30
+ - `guide files` · `guide sessions` · `guide agent`