public Color GetDefaultColor(EightNightsMgr.GroupID g) { LightGroupConfig lg = FindGroupConfig(g); if (lg != null) return lg.DefaultColor; return Color.white; }
public bool IsGroupCrescendoingReversed(EightNightsMgr.GroupID group) { ButtonConfig c = FindButtonConfig(group); if (c != null) return c.IsReversed(); return false; }
void OnButtonTriggered(object sender, EightNightsMgr.ButtonTriggeredEventArgs e) { if (TriggerEvent != TriggerEvents.ButtonPress) return; if (e.Group == Group) Trigger(); }
public float GetCrescendoTimeRemainaingForGroup(EightNightsMgr.GroupID group) { ButtonConfig c = FindButtonConfig(group); if (c != null) return c.CrescendoTimeRemaining(); return 0.0f; }
public float GetCrescendoProgressForGroup(EightNightsMgr.GroupID group) { ButtonConfig c = FindButtonConfig(group); if (c != null) return c.CrescendoProgress(); return 0.0f; }
public MIDIConfig FindMIDIConfig(EightNightsMgr.GroupID group) { foreach (MIDIConfig c in MIDIConfigs) { if (c.Group == group) return c; } return null; }
public SpectroConfig GetSpectroDataForGroup(EightNightsMgr.GroupID group) { foreach (SpectroConfig c in SpectroConfigs) { if (c.Group == group) return c; } return null; }
public GroupStateData GetStateForGroup(EightNightsMgr.GroupID group) { foreach (GroupStateData d in _groupState) { if (d.Group == group) return d; } return null; }
void OnLightEffectTriggered(object sender, EightNightsMgr.LightTriggeredEventArgs e) { if (TriggerEvent != TriggerEvents.NoteOnLight) return; float weight = ApplyNoteVelocity ? e.Weight : 1.0f; if ((e.Light == Light) && (e.Group == Group)) Trigger(weight); }
void OnOld8NightsLightChanged(object sender, EightNightsMgr.LightEventArgs e) { if ((e.Group == Group) && (e.Light == Light)) { if (RendererWithMat != null) { RendererWithMat.material.color = Color.Lerp(Color.grey, e.Data.LightColor, e.Data.LightIntensity); } } }
//get latency for the given light. Meaning this is how long it takes to set a value, and have it appear on the lights. public float GetLatency(EightNightsMgr.GroupID gID, EightNightsMgr.LightID lID) { LightConfig lc = FindLightConfig(gID, lID); if (lc != null) { if (lc.LightType == LightTypes.Hue) return HueMessenger.Instance.GetCurLatency(); else return LightJamsMgr.Instance.GetCurLatency(); } return 0.0f; }
void OnLightChanged(object sender, EightNightsMgr.LightEventArgs e) { if(_animator == null) return; if (SyncFromLightEffect != null) return; if ((e.Group == Group) && (e.Light == Light)) { float val = e.Data.LightIntensity; UpdateWithScrubValue(val); } }
public void TriggerGroup(EightNightsMgr.GroupID group) { //we are going to exclusively sync with the state of each candle //so lets trigger the candle instead of the audio directly //toggle the light state, and the stem will respond next update Nights2Beacon b = GetBeaconForGroup(group); if (b != null) { b.SetLit(!b.IsLit()); } /*GroupStateData stateData = GetStateForGroup(group); if (stateData != null) { stateData.CaptureTimestamp(); //reset decay timers //If track already on, then we toggle it off if (stateData.LoopState == StemLoopState.Sustaining) { stateData.LoopState = StemLoopState.Releasing; } }*/ }
public float GetNarrationTimeForGroup(EightNightsMgr.GroupID group) { return MusicPlayer.GetNarrationTimeForGroup(group); }
public FMOD_StudioEventEmitter GetNarrationForGroup(EightNightsMgr.GroupID group) { return MusicPlayer.GetNarrationForGroup(group); }
public void SendCrescendoEndEvent(EightNightsMgr.GroupID group) { if (OnCrescendoEnd != null) OnCrescendoEnd(this, new ButtonCrescendoEventArgs(group, 0.0f)); }
public float GetVolumeForGroup(EightNightsMgr.GroupID group) { AudioLayer layer = GetLayerForGroup(group); EightNightsLayerDetails layerDetails = GetLayerDetailsForGroup(group); if ((layer != null) && (layerDetails != null)) { return Mathf.InverseLerp(0.0f, layerDetails.MixVolume, layer.Volume); } return 0.0f; }
public EightNightsLayerDetails GetLayerDetailsForGroup(EightNightsMgr.GroupID group) { //look up which layer foreach (EightNightsLayerDetails d in EightNightsDetails) { if (d.Group == group) return d; } return null; }
public EightNightsMIDIEventArgs(int midiNote, float beat, float durationBeats, float velocity, EightNightsMgr.GroupID g) { Group = g; MidiNote = midiNote; NoteBeat = beat; DurationBeats = durationBeats; Velocity = velocity; }
public ButtonCrescendoEventArgs(EightNightsMgr.GroupID g, float ct) { Group = g; CrescendoTime = ct; }
public bool IsGroupCrescendoing(EightNightsMgr.GroupID group) { float progress = GetCrescendoProgressForGroup(group); return (progress > 0.0f) && (progress < 1.0f); }
void Awake() { Instance = this; }
public void TriggerSoundForGroup(EightNightsMgr.GroupID group, bool shouldReverseCrescendo) { ButtonConfig c = FindButtonConfig(group); if ((c != null) && (c.MusicPlayer != null)) { if (EightNightsMgr.Instance != null) EightNightsMgr.Instance.SendButtonTriggeredEvent(group); if (!IsGroupCrescendoing(group)) //ignore if group already crescendoing { if (!c.AlignToDownBeat) //just fire off one-off { //TODO: should spawn these things so we don't have to cut anything off c.MusicPlayer.Stop(); c.MusicPlayer.Play(); } else { c.ScheduleForDownBeat(shouldReverseCrescendo); } } } }
float GetLatency(EightNightsMgr.GroupID g, EightNightsMgr.LightID l) { if (LightMgr.Instance != null) return LightMgr.Instance.GetLatency(g, l); else if (EightNightsMgr.Instance != null) return EightNightsMgr.Instance.GetLatency(g, l); return 0.0f; }
ButtonConfig FindButtonConfig(EightNightsMgr.GroupID group) { foreach (ButtonConfig c in ButtonConfigs) { if (c.Group == group) return c; } return null; }
public Nights2Beacon GetBeaconForGroup(EightNightsMgr.GroupID group) { GroupStateData stateData = GetStateForGroup(group); if (stateData != null) { Nights2Beacon b = Nights2Mgr.Instance.GetBeacon(stateData.CandleIdx); return b; } return null; }
public AudioLayer GetLayerForGroup(EightNightsMgr.GroupID group) { //look up which layer foreach (EightNightsLayerDetails d in EightNightsDetails) { if (d.Group == group) return playbackMusic.GetLayer(d.LayerIdx); } return null; }
public float GetGroupVolume(EightNightsMgr.GroupID g) { if (MusicPlayer != null) { return MusicPlayer.GetVolumeForGroup(g); } return 0.0f; }
public void SetVolumeForGroup(EightNightsMgr.GroupID group, float volume) { //look up which layer EightNightsLayerDetails layerDetails = GetLayerDetailsForGroup(group); if (layerDetails != null) { AudioLayer layer = playbackMusic.GetLayer(layerDetails.LayerIdx); layer.Volume = Mathf.Lerp(0.0f, layerDetails.MixVolume, volume); } }
public void SendCrescendoBeginEvent(EightNightsMgr.GroupID group, float crescendoTime) { if (OnCrescendoBegin != null) OnCrescendoBegin(this, new ButtonCrescendoEventArgs(group, crescendoTime)); }