@grame/faustwasm 0.1.1 → 0.1.2

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.
@@ -661,6 +661,7 @@ export interface IFaustPolyWebAudioNode extends IFaustPolyWebAudioDsp, AudioNode
661
661
  export type SoundfileItem = {
662
662
  name: string;
663
663
  url: string;
664
+ index: number;
664
665
  basePtr: number;
665
666
  };
666
667
  export declare class FaustBaseWebAudioDsp implements IFaustBaseWebAudioDsp {
@@ -712,10 +713,13 @@ export declare class FaustBaseWebAudioDsp implements IFaustBaseWebAudioDsp {
712
713
  static splitNames(input: string): string[];
713
714
  private extractURLsFromJSON;
714
715
  /**
715
- * Load a soundfile possibly containing several parts.
716
+ * Load a soundfile possibly containing several parts in the DSP struct.
717
+ * Soundfile pointers are located at 'index' offset, to be read in the JSON file.
718
+ * The DSP struct is located at baseDSP in the wasm memory,
719
+ * either a monophonic DSP, or a voice in a polyphonic context.
716
720
  *
717
721
  * @param sfReader : the soundfile reader
718
- * @param sfOffset : the offset in the wasm memory
722
+ * @param baseDSP : the base DSP in the wasm memory
719
723
  * @param name : the name of the soundfile
720
724
  * @param url : the url of the soundfile
721
725
  */
@@ -723,8 +727,9 @@ export declare class FaustBaseWebAudioDsp implements IFaustBaseWebAudioDsp {
723
727
  /**
724
728
  * Init soundfiles memory.
725
729
  *
726
- * Soundfile pointers are located at the beginning of the DSP struct memory (one after the other),
727
- * so that the TS scode can setup them easily.
730
+ * @param allocator : the wasm memory allocator
731
+ * @param sfReader : the soundfile reader
732
+ * @param baseDSP : the DSP struct (either a monophonic DSP of polyphonic voice) base DSP in the wasm memory
728
733
  */
729
734
  protected initSoundfileMemory(allocator: WasmAllocator, sfReader: SoundfileReader, baseDSP: number): Promise<void>;
730
735
  protected updateOutputs(): void;
package/dist/cjs/index.js CHANGED
@@ -2285,7 +2285,7 @@ export default ${(_b = jsCode.match(jsCodeHead)) == null ? void 0 : _b[1]};
2285
2285
  }
2286
2286
  });
2287
2287
  } else if (item.type === "soundfile") {
2288
- this.fSoundfiles.push({ name: item.label, url: item.url, basePtr: -1 });
2288
+ this.fSoundfiles.push({ name: item.label, url: item.url, index: item.index, basePtr: -1 });
2289
2289
  }
2290
2290
  };
2291
2291
  }
@@ -2322,11 +2322,11 @@ export default ${(_b = jsCode.match(jsCodeHead)) == null ? void 0 : _b[1]};
2322
2322
  return [];
2323
2323
  }
2324
2324
  }
2325
- async loadSoundfile(sfReader, sfOffset, name, url) {
2325
+ async loadSoundfile(sfReader, baseDSP, name, url) {
2326
2326
  console.log(`Soundfile ${name} paths: ${url}`);
2327
- const sfDirectories = ["", ".", "http://127.0.0.1:8000"];
2328
2327
  const sfReaderURLs = this.extractURLsFromJSON();
2329
2328
  console.log(`sfReaderURLs ${sfReaderURLs}`);
2329
+ const sfDirectories = ["", ".", "http://127.0.0.1:8000"];
2330
2330
  sfDirectories.push(...sfReaderURLs);
2331
2331
  console.log(`sfDirectories ${sfDirectories}`);
2332
2332
  const sfPathNames = await sfReader.checkFiles(sfDirectories, FaustBaseWebAudioDsp.splitNames(url));
@@ -2335,16 +2335,15 @@ export default ${(_b = jsCode.match(jsCodeHead)) == null ? void 0 : _b[1]};
2335
2335
  if (item) {
2336
2336
  if (item.basePtr !== -1) {
2337
2337
  const HEAP32 = sfReader.getHEAP32();
2338
- console.log(`Soundfile ${name} loaded at ${item.basePtr} in wasm memory with sfOffset ${sfOffset}`);
2339
- console.log(`Soundfile CACHE ${url}}`);
2340
- HEAP32[sfOffset >> 2] = item.basePtr;
2338
+ console.log(`Soundfile CACHE ${url}} : ${name} loaded at ${item.basePtr} in wasm memory with index ${item.index}`);
2339
+ HEAP32[baseDSP + item.index >> 2] = item.basePtr;
2341
2340
  } else {
2342
2341
  const soundfile = await sfReader.createSoundfile(sfPathNames, MAX_CHAN, this.fSampleSize === 8);
2343
2342
  if (soundfile) {
2344
2343
  const HEAP32 = soundfile.getHEAP32();
2345
2344
  item.basePtr = soundfile.getPtr();
2346
- console.log(`Soundfile ${name} loaded at ${item.basePtr} in wasm memory with sfOffset ${sfOffset}`);
2347
- HEAP32[sfOffset >> 2] = item.basePtr;
2345
+ console.log(`Soundfile ${name} loaded at ${item.basePtr} in wasm memory with index ${item.index}`);
2346
+ HEAP32[baseDSP + item.index >> 2] = item.basePtr;
2348
2347
  } else {
2349
2348
  console.log(`Soundfile ${name} for ${url} cannot be created !}`);
2350
2349
  }
@@ -2354,10 +2353,8 @@ export default ${(_b = jsCode.match(jsCodeHead)) == null ? void 0 : _b[1]};
2354
2353
  }
2355
2354
  }
2356
2355
  async initSoundfileMemory(allocator, sfReader, baseDSP) {
2357
- let sfOffset = baseDSP;
2358
2356
  for (const { name, url } of this.fSoundfiles) {
2359
- await this.loadSoundfile(sfReader, sfOffset, name, url);
2360
- sfOffset += this.fPtrSize;
2357
+ await this.loadSoundfile(sfReader, baseDSP, name, url);
2361
2358
  }
2362
2359
  ;
2363
2360
  }