@blibliki/engine 0.5.1 → 0.9.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 (47) hide show
  1. package/README.md +22 -2
  2. package/dist/index.d.ts +501 -107
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/package.json +7 -7
  6. package/src/Engine.ts +46 -29
  7. package/src/core/index.ts +11 -2
  8. package/src/core/midi/BaseMidiDevice.ts +47 -0
  9. package/src/core/midi/ComputerKeyboardDevice.ts +2 -1
  10. package/src/core/midi/MidiDeviceManager.ts +125 -31
  11. package/src/core/midi/{MidiDevice.ts → MidiInputDevice.ts} +6 -30
  12. package/src/core/midi/MidiOutputDevice.ts +23 -0
  13. package/src/core/midi/adapters/NodeMidiAdapter.ts +99 -13
  14. package/src/core/midi/adapters/WebMidiAdapter.ts +68 -10
  15. package/src/core/midi/adapters/types.ts +13 -4
  16. package/src/core/midi/controllers/BaseController.ts +14 -0
  17. package/src/core/module/Module.ts +121 -13
  18. package/src/core/module/PolyModule.ts +36 -0
  19. package/src/core/module/VoiceScheduler.ts +150 -10
  20. package/src/core/module/index.ts +9 -4
  21. package/src/index.ts +27 -3
  22. package/src/modules/Chorus.ts +222 -0
  23. package/src/modules/Constant.ts +2 -2
  24. package/src/modules/Delay.ts +347 -0
  25. package/src/modules/Distortion.ts +182 -0
  26. package/src/modules/Envelope.ts +158 -92
  27. package/src/modules/Filter.ts +7 -7
  28. package/src/modules/Gain.ts +2 -2
  29. package/src/modules/LFO.ts +287 -0
  30. package/src/modules/LegacyEnvelope.ts +146 -0
  31. package/src/modules/{MidiSelector.ts → MidiInput.ts} +26 -19
  32. package/src/modules/MidiMapper.ts +59 -4
  33. package/src/modules/MidiOutput.ts +121 -0
  34. package/src/modules/Noise.ts +259 -0
  35. package/src/modules/Oscillator.ts +9 -3
  36. package/src/modules/Reverb.ts +379 -0
  37. package/src/modules/Scale.ts +49 -4
  38. package/src/modules/StepSequencer.ts +410 -22
  39. package/src/modules/StereoPanner.ts +1 -1
  40. package/src/modules/index.ts +142 -29
  41. package/src/processors/custom-envelope-processor.ts +125 -0
  42. package/src/processors/index.ts +10 -0
  43. package/src/processors/lfo-processor.ts +123 -0
  44. package/src/processors/scale-processor.ts +42 -5
  45. package/src/utils/WetDryMixer.ts +123 -0
  46. package/src/utils/expandPatternSequence.ts +18 -0
  47. package/src/utils/index.ts +2 -0
package/README.md CHANGED
@@ -227,20 +227,40 @@ const master = engine.addModule({
227
227
  });
228
228
  ```
229
229
 
230
- #### MidiSelector
230
+ #### MidiInput
231
231
 
232
232
  Handles MIDI input from keyboards or controllers.
233
233
 
234
234
  ```typescript
235
235
  const midi = engine.addModule({
236
236
  name: "MIDI",
237
- moduleType: ModuleType.MidiSelector,
237
+ moduleType: ModuleType.MidiInput,
238
238
  props: {
239
239
  selectedId: "your-midi-device-id",
240
240
  },
241
241
  });
242
242
  ```
243
243
 
244
+ #### MidiOutput
245
+
246
+ Sends MIDI events to external hardware devices (keyboards, controllers, DAWs).
247
+
248
+ ```typescript
249
+ const midiOut = engine.addModule({
250
+ name: "MIDI Out",
251
+ moduleType: ModuleType.MidiOutput,
252
+ props: {
253
+ selectedId: "your-midi-device-id",
254
+ },
255
+ });
256
+
257
+ // Connect a step sequencer to MIDI output
258
+ engine.addRoute({
259
+ source: { moduleId: stepSeq.id, ioName: "midi out" },
260
+ destination: { moduleId: midiOut.id, ioName: "midi in" },
261
+ });
262
+ ```
263
+
244
264
  #### Constant
245
265
 
246
266
  Creates a fixed value for modulation.