void Start() { // find scripts sampleInfo_JSONParsed = GameObject.Find("loadJSON_fromMax").GetComponent <LoadJSON_FromMax>().sampleInfo_JSONParsed; globalEvolution_script = GameObject.Find("globalEvolution").GetComponent <GlobalEvolution>(); oscOutScript = GameObject.Find("osc").GetComponent <OscOut>(); cameraExplorerParent_script = GameObject.Find("camera_explorer_parent").GetComponent <CameraExplorerParent_Movement>(); voidsAllInfo_script = GameObject.Find("voidsAllInfo").GetComponent <VoidsAllInfo>(); // init new() shit mixer = new Mixer(); void_static_onOffCn = new OnOff_Cn(); void_static_onOffTracker = new OnOffTracker(); void_upsideDownReveal_onOffCn = new OnOff_Cn(); void_upsideDownReveal_onOffTracker = new OnOffTrackerWeighted(); // evolution and mixer globalEvolutionState = GlobalEvolution.GlobalEvolutionState.begin; EvolutionParams(); MixerValues_Init(); // get the methods goin' New_Qbit_Qtype1_Transposition(); New_Qbit_Brownian_State(); // init Prevs // json data void_upsideDownReveal_prerecorded_brownianBufferDur = sampleInfo_JSONParsed["upsideDownReveal/1/duration"]; // start over for Methods() start = false; }
void Update() { if (firstFrame == true) { GameObject[] lightDiscGOs = GameObject.FindGameObjectsWithTag("disc"); foreach (GameObject lightDiscGO in lightDiscGOs) { lightDiscScripts.Add(lightDiscGO.GetComponent <LightDiscMovement>()); } firstFrame = false; } globalEvolutionState = globalEvolution_script.globalEvolutionState; if (globalEvolutionState == GlobalEvolution.GlobalEvolutionState.lowerAndRougher) { lightDiscs_numBusyFlare = 0; foreach (LightDiscMovement lightDiscMovement in lightDiscScripts) { if (lightDiscMovement.busyFlare == true) { lightDiscs_numBusyFlare++; } } // Debug.Log("numbusy " + lightDiscs_numBusyFlare); } }
void Update() { globalEvolutionState = globalEvolution_script.globalEvolutionState; EvolutionParams(); lerp_deltaTime = Time.time - lerp_startTime; if (stayPut == true) { lerp_phase = lerp_deltaTime / stayPut_duration; if (lerp_phase > 1f) { New_Change(); } } else { lerp_phase = lerp_deltaTime / change_duration; if (lerp_phase > 1) { New_StayPut(); } else { exposure = Mathf.Lerp(change_exposureInitial, change_exposureTarget, lerp_phase); skybox.SetFloat("_Exposure", exposure); aud_ampLocal = Scale(exposure, 0f, 8f, 0f, 1f); } } ReportOscUpdate(); }
void Update() { voidsAllInfo = voidsAllInfo_script.voidsAllInfo; //<-- for whether to sned upsideDownReveal or not globalEvolutionState = globalEvolution_script.globalEvolutionState; EvolutionParams(); // rolly transposition if (Time.time - qbit_qtype1_transposition_timeStart >= qbit_qtype1_transposition_durTilNext) { qbit_qtype1_getNewTranspositionRange = true; New_Qbit_Qtype1_Transposition(); } else { qbit_qtype1_getNewTranspositionRange = false; } // brownian state if (Time.time - qbit_brownianState_timeStart >= qbit_brownianState_durTilNext) { qbit_brownianState_getNew = true; New_Qbit_Brownian_State(); } else { qbit_brownianState_getNew = false; } // void static on/off Void_Static_OnOff(); // void upsideDownReveal on/off - don't do it in the actual upsideDown if (cameraExplorerParent_script.aud_upsideDown == false) { Void_UpsideDownReveal_OnOff(); } ReportOsc(); }
void Update() { // ><> ><> ><> ><> globalEvolutionState = globalEvolution_script.globalEvolutionState; EvolutionParams(); // ><> ><> ><> ><> selectedGO = UnityEditor.Selection.activeGameObject; // flares cannot interrupt other flares or spins // beginCeiling, geyser collisions cause the lightFlareEvents to begin // lowerAndRougher, geyser collisions do nothing - see its BusyFlare_lowerAndRougher for both beginnings and proceedings // this delegate structure is left here in case want to make the geysers do something during lowerAndRougher, i.e. see GeyserCollision_lowerAndRougher() if (busyFlare == false && busySpin == false) { if (collisionGeyser == true) { del_geyserCollision(); } } // spins can interrupt flares and other spins if (collisionQbit == true) { StartLightSpinEvent(); } // flares add all freqs at event beginning ( including beatings ) // spins add diff freqs every frame del_flareHandling(); if (busySpin == true) { BusySpin(); } ReportOsc(); globalEvolutionStatePrev = globalEvolutionState; }
void Start() { oscOutScript = GameObject.Find("osc").GetComponent <OscOut>(); sampleInfo_JSONParsed = GameObject.Find("loadJSON_fromMax").GetComponent <LoadJSON_FromMax>().sampleInfo_JSONParsed; floor = GameObject.Find("floor"); floorY = floor.transform.position.y; floorMin = floor.GetComponent <Renderer>().bounds.min; floorMax = floor.GetComponent <Renderer>().bounds.max; self_height = GetComponent <Renderer>().bounds.size.y; self_material = GetComponent <Renderer>().material; self_rigidbody = GetComponent <Rigidbody>(); lifeOnFloorDuration = UnityEngine.Random.Range(4.0f, 11.0f); fading_duration = (1 - fading_beginsAtPercentFloorDuration) * lifeOnFloorDuration; voidsAllInfo_script = GameObject.Find("voidsAllInfo").GetComponent <VoidsAllInfo>(); globalEvolution_script = GameObject.Find("globalEvolution").GetComponent <GlobalEvolution>(); globalEvolutionState = GlobalEvolution.GlobalEvolutionState.begin; mixer = new Mixer(); MixerValues_Init(); EvolutionParams(); self_voidIgniterType_randomWeighted = UnityEngine.Random.Range(0f, 1f); self_colorSaturated = self_material.color; // the IgniterType is determined here...the VoidMesh writes my igniterType to VoidAllInfo if I am inside the VoidMesh if (self_voidIgniterType_randomWeighted < qbitIgniter_threshold) { self_voidIgniterType = Void_Cn.HitByVoidIgniterType.staticAndQbit; //self_colorSaturated = new Color( .051f, .511f, .953f, 1f ); qbitIgniterFlicker_startTime = Time.time; qbitIgniterFlicker_startColor = self_colorSaturated; self_colorFadedFlicker = new Color(self_colorSaturated.r, self_colorSaturated.g, self_colorSaturated.b, 0.8f); qbitIgniterFlicker_targetColor = self_colorFadedFlicker; this.transform.localScale = new Vector3(.3f, this.transform.localScale.y, .3f); } else if (self_voidIgniterType_randomWeighted >= qbitIgniter_threshold) { self_voidIgniterType = Void_Cn.HitByVoidIgniterType.staticOnly; } self_colorFadedCompletely = new Color(self_colorSaturated.r, self_colorSaturated.g, self_colorSaturated.b, 0.0f); self_material.color = self_colorSaturated; aud_GO_born = true; aud_falling_begin = true; aud_falling_bufferStartDur = UnityEngine.Random.Range(0f, sampleInfo_JSONParsed["igniterFalling/1/duration"]); aud_curving_casetopRolly_bufferStartDur = UnityEngine.Random.Range(0f, sampleInfo_JSONParsed["igniterCurving/1/duration"]); aud_curving_figure8s_1_bufferStartDur = UnityEngine.Random.Range(0f, sampleInfo_JSONParsed["igniterCurving/2/duration"]); aud_curving_figure8s_2_bufferStartDur = UnityEngine.Random.Range(0f, sampleInfo_JSONParsed["igniterCurving/3/duration"]); aud_falling_globalAmp = UnityEngine.Random.Range(falling_ampGlobalRange[0], falling_ampGlobalRange[1]); float curving_globalAmp = UnityEngine.Random.Range(curving_ampGlobalRange[0], curving_ampGlobalRange[1]); aud_curving_casetopRolly_globalAmp = curving_globalAmp; aud_curving_figure8s_1_globalAmp = curving_globalAmp; aud_curving_figure8s_2_globalAmp = curving_globalAmp; destroyWhileFalling_random = UnityEngine.Random.Range(0f, 1f); // Debug.Log("prob " + destroyWhileFalling_prob + " value " + destroyWhileFalling_random); if (destroyWhileFalling_random <= destroyWhileFalling_prob) { destroyWhileFalling = true; destroyWhileFalling_fallingStartTime = Time.time; destroyWhileFalling_durTilFade = UnityEngine.Random.Range(destroyWhileFalling_durTilFadeRange[0], destroyWhileFalling_durTilFadeRange[1]); // Debug.Log(destroyWhileFalling_durTilFade); } New_FallingTranspRange(); New_Curving_figure8s_1_TranspRange(); New_Curving_figure8s_2_TranspRange(); InstantiateOscLists(); ReportOscStart(); }
void Update() { if (voidMeshScript.iAmOpen == true) { globalEvolutionState = globalEvolution_script.globalEvolutionState; voidsNumOpen = 0; foreach (Void_Cn voidEntry in voidsAllInfo_script.voidsAllInfo) { voidsNumOpen++; } shapeModule.position = voidMeshScript.self_voidAllInfo.centroid; numParticles = particleSystem1.particleCount; if (firstGeyserEvent == true) { if (firstGeyserEvent_recordStartTime == true) { firstGeyserEvent_recordStartTime = false; firstGeyserEvent_postponeStartTime = Time.time; firstGeyserEvent_postponeDuration = Random.Range(2.0f, 4.0f); } else { if (Time.time - firstGeyserEvent_postponeStartTime >= firstGeyserEvent_postponeDuration) { NewGeyserEvent(); firstGeyserEvent = false; } } } else { // the following ways, we only report 1 value for each of geyser on and off if (currentGeyser_deltaTime >= durationBetweenGeysers) { NewGeyserEvent(); } currentGeyser_deltaTime = Time.time - currentGeyser_startTime; if (aGeyserIsActive == true) { // stop before ceiling: if (currentGeyser_stopB4Ceiling == true) { CheckFading_stopAfterDur(); } // hits ceiling: else { CheckFading_hitsCeiling(); } ReportOsc(); if (aud_geyserOnEvent == true) { aud_geyserOnEvent = false; } if (aud_geyserOffEvent == true) { aud_geyserOffEvent = false; } } } numParticlesPrev = numParticles; } }
void Update() { globalEvolutionState = globalEvolution_script.globalEvolutionState; EvolutionParams(); currentState_numHarmonies = scoreDiscs.currentState_numHarmonies; if (firstFrame == true) { allDiscGOs = GameObject.FindGameObjectsWithTag("disc"); allDiscGOs_movementScripts = new List <LightDiscMovement>(); foreach (GameObject discGO in allDiscGOs) { allDiscGOs_movementScripts.Add(discGO.GetComponent <LightDiscMovement>()); } firstFrame = false; } del_checkIfNewModel(); if (makeNewModel == true) { // SCORE GetCurrentHarmonyParamsFromScore(); harmonyLookupIndex = (harmonyLookupIndex + 1) % currentState_numHarmonies; // augment harmonyLookupIndex counter for next time around fundamentals_pool = new List <float>(); fundamentals_discs = new List <float>(); discsModel = new List <DiscModel_Cn>(); makeNewModel = false; // **************** // pool of fundamentals that reflects model, but with no deviation yet added this_fundamental = funds_lowest; funds_loopCounter = 1; while (this_fundamental <= funds_highestAllowed) { // Carmine Cella's generalized series for the fundamentals' relationship across discs: this_fundamental = funds_lowest * (Mathf.Pow(funds_loopCounter, funds_harmonicity) * Mathf.Pow(funds_deformation, funds_loopCounter) + funds_size); fundamentals_pool.Add(this_fundamental); funds_loopCounter++; } // **************** // we have, say, 6 at most fundamentals, but 36 discs // randomly assign one to each for (int i = 0; i < numDiscs; i++) { fundamentals_discs.Add(fundamentals_pool[Random.Range(0, fundamentals_pool.Count)]); } // **************** // randomly deviate from each fundamental according to what's requested for (int i = 0; i < numDiscs; i++) { this_deviation = Random.Range(0.0f, funds_MIDIdeviation_range); float midi = ftom(fundamentals_discs[i]); if (funds_MIDIdeviation_mode == FundsDeviationMode.above) { midi += this_deviation; } else if (funds_MIDIdeviation_mode == FundsDeviationMode.below) { midi -= this_deviation; } else if (funds_MIDIdeviation_mode == FundsDeviationMode.bothSides) { int randomSign = Random.Range(0, 2) * 2 - 1; // <---- COOL way to get a random plus or minus this_deviation *= randomSign; midi += this_deviation; } fundamentals_discs[i] = mtof(midi); } // **************** // from each disc / fundamental, make partials for (int d = 0; d < numDiscs; d++) { freqs = new List <float>(); amps = new List <float>(); decays = new List <float>(); this_fundamental = fundamentals_discs[d]; this_partial = 0; freqs.Add(this_fundamental); amps.Add(mx_fund_amp); decays.Add(mx_fund_decay); parts_loopCounter = 2; parts_include_thresholdValue = Mathf.RoundToInt(Scale(parts_include_prob, 0.0f, 1.0f, 0, 1999)); while (this_partial <= parts_highestAllowed) { // **************** // whether to even include this partial parts_include_selectedValue = Random.Range(0, 2000); if (parts_include_selectedValue <= parts_include_thresholdValue) { // the generalized series for the partials' relationships within a disc: this_partial = this_fundamental * (Mathf.Pow(parts_loopCounter, parts_harmonicity) * Mathf.Pow(parts_deformation, parts_loopCounter) + parts_size); // **************** // randomly deviate from each partial according to what's requested this_deviation = Random.Range(0.0f, parts_MIDIdeviation_range); float midi = ftom(this_partial); if (parts_MIDIdeviation_mode == PartsDeviationMode.above) { midi += this_deviation; } else if (parts_MIDIdeviation_mode == PartsDeviationMode.below) { midi -= this_deviation; } else if (parts_MIDIdeviation_mode == PartsDeviationMode.bothSides) { int randomSign = Random.Range(0, 2) * 2 - 1; this_deviation *= randomSign; midi += this_deviation; } freqs.Add(mtof(midi)); amps.Add(Random.Range(mx_partials_ampsRange[0], mx_partials_ampsRange[1])); decays.Add(mx_partials_decay); parts_loopCounter++; } } // discsModel is a list of the class DiscModel with as many entries as there are lightdiscs on the ceiling // so discsModel is a class containing, e.g. 36, soundsrandomly baked according to the desired Generalized Series // in addition, each lightdisc GO randomly selects which of these entries to play when they are stuck by a geyser discsModel.Add(new DiscModel_Cn { freqs = freqs, amps = amps, decays = decays, modelTransposition = _modelTransposition, ampGlobal = _ampGlobal }); } } discsBusyPrev = discsBusy; globalEvolutionStatePrev = globalEvolutionState; }
public DiscModelParams_Cn CurrentHarmonyParams(GlobalEvolution.GlobalEvolutionState globalEvolutionState, int harmonyLookupIndex) { if (globalEvolutionState == GlobalEvolution.GlobalEvolutionState.beginCeiling || globalEvolutionState == GlobalEvolution.GlobalEvolutionState.begin || globalEvolutionState == GlobalEvolution.GlobalEvolutionState.beginSpin) { // to add a case, add it, and update the total # of cases here; that's it // the MakeDiscsModel script steps through this and loops based on the number entered here currentState_numHarmonies = 8; // because C# is stateful, just enter what changes for each index - else the previous values remain switch (harmonyLookupIndex) { case 0: funds_harmonicity = 1.3f; funds_deformation = 1.0f; funds_size = 0.0f; funds_lowest = 400.0f; funds_highestAllowed = 3000.0f; funds_MIDIdeviation_range = 2.1f; parts_harmonicity = 1.0f; parts_deformation = 1.0f; parts_size = 0.0f; parts_highestAllowed = 9000.0f; parts_MIDIdeviation_range = .4f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); break; case 1: funds_harmonicity = 1.05f; funds_MIDIdeviation_range = 0.0f; funds_lowest = 110; funds_highestAllowed = 1000.0f; parts_highestAllowed = 5000.0f; parts_MIDIdeviation_range = .2f; parts_include_prob = .8f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); break; case 2: funds_harmonicity = 1.07f; funds_lowest = 200f; funds_highestAllowed = 1000.0f; parts_highestAllowed = 2000.0f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); break; case 3: funds_lowest = 421; funds_highestAllowed = 3000.0f; parts_highestAllowed = 7000.0f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .1f); funds_harmonicity = 1.1f; break; case 4: funds_lowest = 50; funds_highestAllowed = 1000.0f; parts_highestAllowed = 3000.0f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); funds_harmonicity = .9f; break; case 5: funds_lowest = 100; funds_highestAllowed = 1000.0f; parts_highestAllowed = 3000.0f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .3f); funds_harmonicity = .5f; break; case 6: funds_harmonicity = .3f; funds_MIDIdeviation_range = 0f; funds_lowest = 40; funds_highestAllowed = 3000.0f; parts_highestAllowed = 8000.0f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); break; case 7: funds_harmonicity = 1.05f; funds_MIDIdeviation_range = 0.0f; funds_lowest = 110; funds_highestAllowed = 1000.0f; parts_highestAllowed = 5000.0f; parts_MIDIdeviation_range = .2f; parts_include_prob = .8f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); break; } } else if (globalEvolutionState == GlobalEvolution.GlobalEvolutionState.lowerAndRougher) { // to add a case, add it, and update the total # of cases here; that's it: currentState_numHarmonies = 18; switch (harmonyLookupIndex) { case 0: funds_harmonicity = 1.01f; funds_deformation = 1.0f; funds_size = 0.0f; funds_lowest = 800.0f; funds_highestAllowed = 3000.0f; funds_MIDIdeviation_range = .05f; parts_harmonicity = 1.0f; parts_deformation = 1.0f; parts_size = 0.0f; parts_highestAllowed = 9000.0f; parts_MIDIdeviation_range = .1f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrTwoOctavesLower; ampGlobal = .6f; break; case 1: funds_harmonicity = .99f; funds_lowest = 400.0f; funds_highestAllowed = 3000.0f; funds_MIDIdeviation_range = .05f; parts_harmonicity = 1.0f; parts_highestAllowed = 9000.0f; parts_MIDIdeviation_range = .1f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .3f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrTwoOctavesLower; ampGlobal = .6f; break; case 2: funds_harmonicity = 1.02f; funds_lowest = 700.0f; funds_highestAllowed = 3000.0f; funds_MIDIdeviation_range = .05f; parts_harmonicity = 1.0f; parts_highestAllowed = 6000.0f; parts_MIDIdeviation_range = .1f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); modelTransposition = DiscModelParams_Cn.ModelTransposition.oneOctaveLower; ampGlobal = .6f; break; case 3: funds_harmonicity = .98f; funds_lowest = 350.0f; funds_highestAllowed = 3000.0f; funds_MIDIdeviation_range = .1f; parts_harmonicity = 1.0f; parts_highestAllowed = 6000.0f; parts_MIDIdeviation_range = .2f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); modelTransposition = DiscModelParams_Cn.ModelTransposition.oneOrTwoOctavesLower; ampGlobal = .6f; break; case 4: funds_harmonicity = 1.5f; funds_lowest = 650.0f; funds_highestAllowed = 2000.0f; funds_MIDIdeviation_range = .1f; parts_harmonicity = 1.1f; parts_highestAllowed = 6000.0f; parts_MIDIdeviation_range = .3f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .6f); modelTransposition = DiscModelParams_Cn.ModelTransposition.oneOrTwoOctavesLower; ampGlobal = .8f; break; case 5: funds_harmonicity = .75f; funds_lowest = 300.0f; funds_highestAllowed = 2000.0f; funds_MIDIdeviation_range = .1f; parts_harmonicity = 1.4f; parts_highestAllowed = 8000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveLower; ampGlobal = .9f; break; case 6: funds_harmonicity = 1.03f; funds_lowest = 600.0f; funds_highestAllowed = 1500.0f; funds_MIDIdeviation_range = .1f; parts_harmonicity = 1.4f; parts_highestAllowed = 7000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .4f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveLower; ampGlobal = 1f; break; case 7: funds_harmonicity = 1.3f; funds_lowest = 250.0f; funds_highestAllowed = 2000.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .9f; parts_highestAllowed = 7000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .3f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 1f; break; case 8: funds_harmonicity = .97f; funds_lowest = 500.0f; funds_highestAllowed = 1500.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = 1.3f; parts_highestAllowed = 6000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveLower; ampGlobal = 1f; break; case 9: funds_harmonicity = 1.04f; funds_lowest = 200.0f; funds_highestAllowed = 1000.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = 1.2f; parts_highestAllowed = 4000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .8f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveHigher; ampGlobal = 1.1f; break; case 10: funds_harmonicity = .97f; funds_lowest = 410.0f; funds_highestAllowed = 1000.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .9f; parts_highestAllowed = 2500.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .8f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveHigher; ampGlobal = .6f; break; case 11: funds_harmonicity = .55f; funds_lowest = 410.0f; funds_highestAllowed = 1000.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 2000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveLower; ampGlobal = 2.5f; break; case 12: funds_harmonicity = .4f; funds_lowest = 150.0f; funds_highestAllowed = 600.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .7f; parts_highestAllowed = 2000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .9f); modelTransposition = DiscModelParams_Cn.ModelTransposition.noneOrOneOctaveHigher; ampGlobal = 3f; break; case 13: funds_harmonicity = .968f; funds_lowest = 130.0f; funds_highestAllowed = 600.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 1000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .2f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 5.5f; break; case 14: // too large? funds_harmonicity = .94f; funds_lowest = 110.0f; funds_highestAllowed = 600.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 1000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .2f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 5.5f; break; case 15: funds_harmonicity = .91f; funds_lowest = 90.0f; funds_highestAllowed = 400.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 1000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .1f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 10.5f; break; case 16: funds_harmonicity = .45f; funds_lowest = 90.0f; funds_highestAllowed = 300.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 1000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .5f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 9.5f; break; case 17: funds_harmonicity = .25f; funds_lowest = 87.0f; funds_highestAllowed = 300.0f; funds_MIDIdeviation_range = 0f; parts_harmonicity = .5f; parts_highestAllowed = 1000.0f; parts_include_prob = .6f; lightFlareEvent_shimmer_percentOfCriticalBandRange = new Vector2(0.0f, .95f); modelTransposition = DiscModelParams_Cn.ModelTransposition.none; ampGlobal = 11.5f; break; } } // above we define all the local vars and then assign it to our DiscModelParams class ( which have the same names ) // the DiscModelParams class is the container to return all this shit to to the MakeDiscsModel script discModelParams = new DiscModelParams_Cn { funds_harmonicity = funds_harmonicity, funds_deformation = funds_deformation, funds_size = funds_size, funds_lowest = funds_lowest, funds_highestAllowed = funds_highestAllowed, funds_MIDIdeviation_range = funds_MIDIdeviation_range, parts_harmonicity = parts_harmonicity, parts_deformation = parts_deformation, parts_size = parts_size, parts_highestAllowed = parts_highestAllowed, parts_MIDIdeviation_range = parts_MIDIdeviation_range, parts_include_prob = parts_include_prob, lightFlareEvent_shimmer_percentOfCriticalBandRange = lightFlareEvent_shimmer_percentOfCriticalBandRange, modelTransposition = modelTransposition, ampGlobal = ampGlobal }; return(discModelParams); }