context = window ChannelGroupIds = context.JK.ChannelGroupIds MixerActions = @MixerActions ptrCount = 0 @SessionTrackVolumeHover = React.createClass({ # example: 'music' when it represent the gainer that controls all non-chat inputs propTypes: { gainType: React.PropTypes.string } mixins: [Reflux.listenTo(@SessionMyTracksStore,"onInputsChanged")] iCheckMaint: false closeHover: (e) -> e.preventDefault() $container = $(this.getDOMNode()).closest('.react-holder') $container.data('bt').btOff() onInputsChanged: (sessionMixers) -> mixers = sessionMixers.mixers newMixers = mixers.refreshMixer(@state.mixers) newMixers = {} unless newMixers? this.setState({mixers: newMixers}) getInitialState: () -> {mixers: this.props.mixers, ptr: "STVH#{ptrCount++}" } handleMute: (e) -> e.preventDefault() muting = $(e.currentTarget).is('.enabled') # if it's a chat, my input, or media track, or jam track, or media track group, then do both mixers at the same time if @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputMusicGroup || @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputChatGroup || @state.mixers.mixer.group_id == ChannelGroupIds.MediaTrackGroup || @state.mixers.mixer.group_id == ChannelGroupIds.JamTrackGroup || ((@state.mixers.mixer.group_id == ChannelGroupIds.MonitorCatGroup || @state.mixers.mixer.group_id == ChannelGroupIds.MasterCatGroup) && @state.mixers.mixer.name == CategoryGroupIds.MediaTrack) MixerActions.mute([this.state.mixers.mixer, this.state.mixers.oppositeMixer], muting) else MixerActions.mute(this.state.mixers.mixer, muting) handleMuteCheckbox: (e) -> return if @iCheckMaint muting = $(e.target).is(':checked') # if it's a chat, my input, or media track, or jam track, or media track group, then do both mixers at the same time if @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputMusicGroup || @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputChatGroup || @state.mixers.mixer.group_id == ChannelGroupIds.MediaTrackGroup || @state.mixers.mixer.group_id == ChannelGroupIds.JamTrackGroup || ((@state.mixers.mixer.group_id == ChannelGroupIds.MonitorCatGroup || @state.mixers.mixer.group_id == ChannelGroupIds.MasterCatGroup) && @state.mixers.mixer.name == CategoryGroupIds.MediaTrack) MixerActions.mute([this.state.mixers.mixer, this.state.mixers.oppositeMixer], muting) else MixerActions.mute(this.state.mixers.mixer, muting) render: () -> muteMixer = @state.mixers?.muteMixer if muteMixer && $.isArray(muteMixer) muteMixer = muteMixer[0] muteMixerId = muteMixer?.id mixer = @state.mixers?.mixer if mixer && $.isArray(mixer) mixer = mixer[0] volume_left = mixer.volume_left classes = classNames({ 'track-icon-mute': true 'enabled' : !muteMixer?.mute 'muted' : muteMixer?.mute }) `
Use this slider to control the volume of this track in your personal mix.
This will not affect the volume of this track for other musicians in the session.
To adjust master levels for all musicians for recordings and broadcasts, use Mixer button in the toolbar.