* wip
This commit is contained in:
parent
dbaeb8d996
commit
ca9e3706c7
|
|
@ -141,12 +141,35 @@ module JamRuby
|
|||
|
||||
recording.recorded_tracks.each do |recorded_track|
|
||||
manifest["files"] << { "filename" => recorded_track.sign_url(one_day), "codec" => "vorbis", "offset" => 0 }
|
||||
mix_params << { "level" => 100, "balance" => 0 }
|
||||
mix_params << { "level" => 1.0, "balance" => 0 }
|
||||
end
|
||||
|
||||
recording.recorded_backing_tracks.each do |recorded_backing_track|
|
||||
manifest["files"] << { "filename" => recorded_backing_track.sign_url(one_day), "codec" => "vorbis", "offset" => 0 }
|
||||
mix_params << { "level" => 100, "balance" => 0 }
|
||||
mix_params << { "level" => 1.0, "balance" => 0 }
|
||||
end
|
||||
|
||||
recording.recorded_jam_track_tracks.each do |recorded_jam_track_track|
|
||||
manifest["files"] << { "filename" => recorded_jam_track_track.jam_track_track.sign_url(one_day), "codec" => "vorbis", "offset" => 0 }
|
||||
# let's look for level info from the client
|
||||
level = 1.0 # default value - means no effect
|
||||
if recorded_jam_track_track.timeline
|
||||
|
||||
timeline_data = JSON.parse(recorded_jam_track_track.timeline)
|
||||
|
||||
# always take the 1st entry for now
|
||||
first = timeline_data[0]
|
||||
|
||||
if first["mute"]
|
||||
# mute equates to no noise
|
||||
level = 0.0
|
||||
else
|
||||
# otherwise grab the left channel...
|
||||
level = first["vol_l"]
|
||||
end
|
||||
end
|
||||
|
||||
mix_params << { "level" => level, "balance" => 0 }
|
||||
end
|
||||
|
||||
manifest["timeline"] << { "timestamp" => 0, "mix" => mix_params }
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@
|
|||
e.stopPropagation();
|
||||
|
||||
var $fader = $(this);
|
||||
|
||||
var sessionModel = window.JK.CurrentSessionModel || null;
|
||||
|
||||
var mediaControlsDisabled = $fader.data('media-controls-disabled');
|
||||
if(mediaControlsDisabled) {
|
||||
var mediaTrackOpener = $fader.data('media-track-opener');
|
||||
|
|
@ -28,11 +29,16 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
if(sessionModel && sessionModel.areControlsLockedForJamTrackRecording() && $control.closest('.session-track').data('track_data').type == 'jam_track') {
|
||||
window.JK.prodBubble($fader, 'jamtrack-controls-disabled', {}, {positions:['top'], offsetParent: $fader.closest('.screen')})
|
||||
return false;
|
||||
}
|
||||
|
||||
if($fader.data('showHelpAboutMediaMixers')) {
|
||||
if(window.JK.CurrentSessionModel) {
|
||||
if(!window.JK.CurrentSessionModel.hasShownAudioMediaMixerHelp()) {
|
||||
if(sessionModel) {
|
||||
if(!sessionModel.hasShownAudioMediaMixerHelp()) {
|
||||
window.JK.prodBubble($fader, 'volume-media-mixers', {}, {positions:['top'], offsetParent: $fader.closest('.screen')})
|
||||
window.JK.CurrentSessionModel.markShownAudioMediaMixerHelp()
|
||||
sessionModel.markShownAudioMediaMixerHelp()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -138,10 +144,16 @@
|
|||
|
||||
var mediaControlsDisabled = $draggingFaderHandle.data('media-controls-disabled');
|
||||
var mediaTrackOpener = $draggingFaderHandle.data('media-track-opener');
|
||||
|
||||
var sessionModel = window.JK.CurrentSessionModel || null;
|
||||
|
||||
if(mediaControlsDisabled) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(sessionModel && sessionModel.areControlsLockedForJamTrackRecording() && $draggingFaderHandle.closest('.session-track').data('track_data').type == 'jam_track') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -249,6 +249,7 @@
|
|||
$(sessionModel.recordingModel)
|
||||
.on('startingRecording', function(e, data) {
|
||||
displayStartingRecording();
|
||||
lockControlsforJamTrackRecording();
|
||||
})
|
||||
.on('startedRecording', function(e, data) {
|
||||
if(data.reason) {
|
||||
|
|
@ -294,13 +295,16 @@
|
|||
{
|
||||
displayStartedRecording();
|
||||
displayWhoCreated(data.clientId);
|
||||
lockControlsforJamTrackRecording();
|
||||
}
|
||||
})
|
||||
.on('stoppingRecording', function(e, data) {
|
||||
displayStoppingRecording(data);
|
||||
unlockControlsforJamTrackRecording();
|
||||
})
|
||||
.on('stoppedRecording', function(e, data) {
|
||||
|
||||
unlockControlsforJamTrackRecording();
|
||||
if(sessionModel.selfOpenedJamTracks()) {
|
||||
|
||||
var timeline = context.jamClient.getJamTrackTimeline();
|
||||
|
|
@ -1776,6 +1780,7 @@
|
|||
}
|
||||
var template = $('#template-session-track').html();
|
||||
var newTrack = $(context.JK.fillTemplate(template, trackData));
|
||||
newTrack.data('track_data', trackData)
|
||||
var audioOverlay = $('.disabled-track-overlay', newTrack);
|
||||
var $trackIconMute = newTrack.find('.track-icon-mute')
|
||||
$trackIconMute.muteSelector().on(EVENTS.MUTE_SELECTED, trackMuteSelected)
|
||||
|
|
@ -1818,6 +1823,7 @@
|
|||
|
||||
var template = $('#template-session-track').html();
|
||||
var newTrack = $(context.JK.fillTemplate(template, trackData));
|
||||
newTrack.data('track_data', trackData);
|
||||
$otherAudioContainer.append(newTrack);
|
||||
if(trackData.preMasteredClass) {
|
||||
context.JK.helpBubble($('.track-instrument', newTrack), 'pre-processed-track', {}, {offsetParent: newTrack.closest('.content-body')});
|
||||
|
|
@ -2059,6 +2065,11 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
if(sessionModel.areControlsLockedForJamTrackRecording() && $control.closest('.session-track').data('track_data').type == 'jam_track') {
|
||||
context.JK.prodBubble($control, 'jamtrack-controls-disabled', {}, {positions:['bottom'], offsetParent: $control.closest('.screen')})
|
||||
return false;
|
||||
}
|
||||
|
||||
if($control.data('showHelpAboutMediaMixers')) {
|
||||
if(!sessionModel.hasShownAudioMediaMixerHelp()) {
|
||||
context.JK.prodBubble($control, 'volume-media-mixers', {}, {positions:['bottom'], offsetParent: $control.closest('.screen')})
|
||||
|
|
@ -2066,6 +2077,8 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$.each(mixerIds, function(i,v) {
|
||||
var mixerId = v;
|
||||
// behavior: if this is the user's track in personal mode, then we mute the track globally
|
||||
|
|
@ -2297,6 +2310,14 @@
|
|||
$('#recording-status').text("Make a Recording");
|
||||
}
|
||||
|
||||
function lockControlsforJamTrackRecording() {
|
||||
sessionModel.lockControlsforJamTrackRecording();
|
||||
}
|
||||
|
||||
function unlockControlsforJamTrackRecording() {
|
||||
sessionModel.unlockControlsforJamTrackRecording();
|
||||
}
|
||||
|
||||
function displayWhoCreated(clientId) {
|
||||
if(app.clientId != clientId) { // don't show to creator
|
||||
sessionModel.findUserBy({clientId: clientId})
|
||||
|
|
@ -2657,6 +2678,18 @@
|
|||
}
|
||||
|
||||
function startStopRecording() {
|
||||
|
||||
// check first if a jamtrack is loaded, and playing; if so, tell user to stop the play
|
||||
if(sessionModel.jamTracks() && context.jamClient.isSessionTrackPlaying()) {
|
||||
app.notify(
|
||||
{ title: "Can't Recording a Play JamTrack",
|
||||
text: "Stop the JamTrack before trying to recording." },
|
||||
null,
|
||||
true);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(sessionModel.recordingModel.isRecording()) {
|
||||
sessionModel.recordingModel.stopRecording();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
var previousBackingTracks = [];
|
||||
var openBackingTrack = null;
|
||||
var shownAudioMediaMixerHelp = false;
|
||||
var controlsLockedForJamTrackRecording = false;
|
||||
|
||||
var mixerMode = MIX_MODES.PERSONAL;
|
||||
|
||||
|
|
@ -157,6 +158,18 @@
|
|||
return inSession;
|
||||
}
|
||||
|
||||
function lockControlsforJamTrackRecording() {
|
||||
controlsLockedForJamTrackRecording = true;
|
||||
}
|
||||
|
||||
function unlockControlsforJamTrackRecording() {
|
||||
controlsLockedForJamTrackRecording = false;
|
||||
}
|
||||
|
||||
function areControlsLockedForJamTrackRecording() {
|
||||
return controlsLockedForJamTrackRecording;
|
||||
}
|
||||
|
||||
function onMixerModeChanged(newMixerMode)
|
||||
{
|
||||
mixerMode = newMixerMode;
|
||||
|
|
@ -357,6 +370,7 @@
|
|||
previousBackingTracks = []
|
||||
openBackingTrack = null
|
||||
shownAudioMediaMixerHelp = false
|
||||
controlsLockedForJamTrackRecording = false;
|
||||
}
|
||||
|
||||
// you should only update currentSession with this function
|
||||
|
|
@ -836,6 +850,9 @@
|
|||
this.isPersonalMixMode = isPersonalMixMode;
|
||||
this.getMixMode = getMixMode;
|
||||
this.selfOpenedJamTracks = selfOpenedJamTracks;
|
||||
this.areControlsLockedForJamTrackRecording = areControlsLockedForJamTrackRecording;
|
||||
this.lockControlsforJamTrackRecording = lockControlsforJamTrackRecording;
|
||||
this.unlockControlsforJamTrackRecording = unlockControlsforJamTrackRecording;
|
||||
|
||||
// ALERT HANDLERS
|
||||
this.onBackendMixerChanged = onBackendMixerChanged;
|
||||
|
|
|
|||
|
|
@ -199,6 +199,9 @@ script type="text/template" id="template-help-media-controls-disabled"
|
|||
| Only the person who opened the recording can control the volume levels.
|
||||
| {% } %}
|
||||
|
||||
script type="text/template" id="template-help-jamtrack-controls-disabled"
|
||||
| During a recording, volume and mute controls for JamTracks are disabled. So, get the session volume levels right before starting the recording.
|
||||
|
||||
|
||||
script type="text/template" id="template-help-volume-media-mixers"
|
||||
| Audio files only expose master mix controls, so any change here will also affect everyone in the session.
|
||||
|
|
|
|||
Loading…
Reference in New Issue