private void SetMusicSample(int trackID, int timeSample) { ClearMusicSample(trackID); MusicSample newMusicSample = new MusicSample(trackID, timeSample); oldMusicSamples.Add(newMusicSample); }
// Update is called once per frame void Update() { if (!musicPlayer.isPlaying) { return; } int sampleValue = Mathf.ClosestPowerOfTwo((int)Mathf.Pow(SampleCount, 2f)); if (sampleValue != lastSampleCount) { ShutdownVisuals(); lastSampleCount = sampleValue; lastSampleData = new float[lastSampleCount]; SetUpVisuals(sampleValue * musicClip.channels, sampleValue); } #if DOTS // if(!SampleData.IsCreated) // { // Debug.Log("SampleData is Null"); // return; // } int arrayLength = SampleData.Value.sampleArray.Length; if (arrayLength != lastSampleCount * musicClip.channels) { //TODO: Resize the Blob array arrayLength = lastSampleCount * musicClip.channels; //Dispose of the old blob array SampleData.Dispose(); using (BlobBuilder blobBuilder = new BlobBuilder(Allocator.Temp)) { ref MusicDataBlobAsset musicDataBlobAsset = ref blobBuilder.ConstructRoot <MusicDataBlobAsset>(); BlobBuilderArray <MusicSample> musicDataArray = blobBuilder.Allocate(ref musicDataBlobAsset.sampleArray, arrayLength); //Setup array data for (int i = 0; i < arrayLength; i++) { musicDataArray[i] = new MusicSample { Value = 0 }; } SampleData = blobBuilder.CreateBlobAssetReference <MusicDataBlobAsset>(Allocator.Persistent); for (int i = 0; i < entityVisualizers.Length; i++) { var viz = entityManager.GetComponentData <VisualizerData>(entityVisualizers[i]); viz.MusicData = SampleData; entityManager.SetComponentData <VisualizerData>(entityVisualizers[i], viz); } } }
public void WriteAll(MusicSample sample, TextWriter writer) { StartWrite(writer); for (int i = 0; i < sample.Notes.Count; i++) { if (NotesOnLine == MaxNotesOnLine) { WriteBreak(); NotesOnLine = 0; } WriteNote(sample.Notes[i]); } EndWrite(); }
protected override void OnUpdate() { Debug.Log("Music Data BLob constructor called"); BlobAssetReference <MusicDataBlobAsset> musicDataBlobAssetReference; using (BlobBuilder blobBuilder = new BlobBuilder(Allocator.Temp)) { ref MusicDataBlobAsset musicDataBlobAsset = ref blobBuilder.ConstructRoot <MusicDataBlobAsset>(); int sampleSize = 1024; BlobBuilderArray <MusicSample> musicDataArray = blobBuilder.Allocate(ref musicDataBlobAsset.sampleArray, sampleSize); //Set array data here for (int i = 0; i < sampleSize; i++) { musicDataArray[i] = new MusicSample { Value = 0 }; } musicDataBlobAssetReference = blobBuilder.CreateBlobAssetReference <MusicDataBlobAsset>(Allocator.Persistent); }