live_set 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/lib/als_delta/{ als_delta_class.rb → als_delta_class.rb} +18 -6
- data/lib/als_delta/als_delta_options.rb +1 -1
- data/lib/live_set/live_set_all_tracks.rb +18 -0
- data/lib/live_set/live_set_audio_clip.rb +4 -0
- data/lib/live_set/live_set_audio_track.rb +4 -0
- data/lib/live_set/live_set_class_private.rb +12 -3
- data/lib/live_set/live_set_options.rb +4 -4
- data/lib/live_set/version.rb +1 -1
- data/lib/live_set.rb +0 -1
- data/live_set.gemspec +1 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc8a391b89faff33b3611d93ff5223d28d14c9a87359bc98a9005b93908db8d9
|
4
|
+
data.tar.gz: a2aab3005d94ad93eaf5f94bd61af6770b1656ce1addc8d54a83bab20e3faeb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54672b577455e31011165d8c78e1402ac74754f67d53ae07ca9fff123af8263c06650960fa8ce372511f8c26f6d206a9ab829253d4951a9eb7bfa08cd9c5cb6f
|
7
|
+
data.tar.gz: 24c3db212c86904c2935c6ea4bad27c80e6ed2e2ca535f4e32cd83b9828f96bdadf3bc1a62bb0f6ae9dc2b7c40a85821aa3db5b79bfe18f3dacd4d3ec4f8bbc5
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,19 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.2.2
|
4
|
+
|
5
|
+
* Displays `Ready for transfer to Push 3 Standalone` in green if Live set is ready,
|
6
|
+
or displays the reasons for not being ready in red.
|
7
|
+
|
8
|
+
## 0.2.1
|
9
|
+
|
10
|
+
* Corrected missing help method for the `live_set` command.
|
11
|
+
* Prompts user if they want the extra directory renamed to `Ableton Project Info-`.
|
12
|
+
|
13
|
+
|
3
14
|
## 0.2.0
|
4
15
|
|
5
16
|
* Checks `Ableton Project Info` validity all up the directory tree.
|
6
|
-
* Prompts user if they want the extra directory renamed to `Ableton Project Info-`.
|
7
17
|
* Reports the clips in the set, and their sizes.
|
8
18
|
* Generates a warning if the total size of the clips might cause freezing to fail.
|
9
19
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'date'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'highline'
|
4
|
+
require 'shellwords'
|
3
5
|
require_relative '../common/run'
|
4
6
|
|
5
7
|
class AlsDelta
|
@@ -26,6 +28,7 @@ class AlsDelta
|
|
26
28
|
|
27
29
|
def backup_set
|
28
30
|
@backup_name = backup_name
|
31
|
+
puts "Backing up Live set to '#{@backup_name}'"
|
29
32
|
FileUtils.cp @set_name, @backup_name
|
30
33
|
end
|
31
34
|
|
@@ -33,16 +36,25 @@ class AlsDelta
|
|
33
36
|
return if @options[:keep] || !@backup_name
|
34
37
|
return unless File.exist? @backup_name
|
35
38
|
|
36
|
-
puts "Deleting #{@backup_name}"
|
39
|
+
puts "Deleting '#{@backup_name}'"
|
37
40
|
File.delete @backup_name
|
38
41
|
end
|
39
42
|
|
40
43
|
def show
|
41
|
-
|
42
|
-
|
43
|
-
puts '
|
44
|
-
|
45
|
-
|
44
|
+
backup_set
|
45
|
+
loop do
|
46
|
+
puts 'Press any key to display the changes to the Live set XML file, or press Esc to exit.'
|
47
|
+
character = $stdin.getch
|
48
|
+
exit if character.ord == 27
|
49
|
+
output = run_capture_stdout "GZIP=--no-name zdiff #{@set_name.shellescape} #{@backup_name.shellescape}"
|
50
|
+
if output.empty?
|
51
|
+
puts 'There were no changes to the saved live set.'
|
52
|
+
else
|
53
|
+
puts output.join("\n")
|
54
|
+
backup_set
|
55
|
+
end
|
56
|
+
rescue StandardError => e
|
57
|
+
puts e
|
46
58
|
end
|
47
59
|
end
|
48
60
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'colorator'
|
2
2
|
require 'optparse'
|
3
3
|
|
4
|
-
VERBOSITY = %w[trace debug verbose info warning error fatal panic quiet].freeze
|
4
|
+
VERBOSITY = %w[trace debug verbose info warning error fatal panic quiet].freeze unless defined? VERBOSITY
|
5
5
|
|
6
6
|
def common(command)
|
7
7
|
@options = parse_options command
|
@@ -16,6 +16,23 @@ class AllTracks
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
def ready_for_p3s
|
20
|
+
@track_instances.all?(&:clips_collected?) && all_frozen
|
21
|
+
end
|
22
|
+
|
23
|
+
def p3s_tx_msg
|
24
|
+
return 'Ready for transfer to Push 3 Standalone'.green if ready_for_p3s
|
25
|
+
|
26
|
+
response = []
|
27
|
+
response << 'Some tracks are not frozen'.red unless all_frozen
|
28
|
+
@track_instances.each do |track|
|
29
|
+
track.audio_clips.each do |clip|
|
30
|
+
response << "Clip '#{clip.relative_path}' has not been collected".red unless clip.relative_path.start_with?('Samples/Imported/')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
response.join "\n"
|
34
|
+
end
|
35
|
+
|
19
36
|
def summary
|
20
37
|
all_frozen_msg = all_frozen ? ' (All are frozen)'.yellow : ''
|
21
38
|
push_warning = all_frozen ? '' : "\nWarning: some tracks are not frozen, so this set should not be transferred to Push 3 Standalone.".red
|
@@ -27,6 +44,7 @@ class AllTracks
|
|
27
44
|
end
|
28
45
|
total_set_size = "Total set size: #{human_file_size total_size}".yellow
|
29
46
|
<<~END_MSG
|
47
|
+
#{p3s_tx_msg}
|
30
48
|
#{total_set_size}#{size_warning}#{push_warning}
|
31
49
|
#{@track_instances.count} tracks#{all_frozen_msg}:
|
32
50
|
END_MSG
|
@@ -20,6 +20,10 @@ class LiveAudioClip
|
|
20
20
|
@relative_path_type = @file_ref.RelativePathType['Value'] # What do these values mean?
|
21
21
|
end
|
22
22
|
|
23
|
+
def collected?
|
24
|
+
@relative_path.start_with? 'Samples/Imported/'
|
25
|
+
end
|
26
|
+
|
23
27
|
def show_clip
|
24
28
|
[" #{@relative_path}", human_file_size(@file_size).rjust(8, ' '), @last_modified.strftime('%Y-%m-%d %H:%M:%S')]
|
25
29
|
end
|
@@ -19,6 +19,10 @@ class LiveAudioTrack
|
|
19
19
|
@track_size = @audio_clips.sum(&:file_size) || 0
|
20
20
|
end
|
21
21
|
|
22
|
+
def clips_collected?
|
23
|
+
@audio_clips.all?(&:collected?)
|
24
|
+
end
|
25
|
+
|
22
26
|
def show_track(all_frozen)
|
23
27
|
name = @audio_track.Name.EffectiveName['Value']
|
24
28
|
frozen = !all_frozen && @audio_track.frozen? ? ' **frozen**' : ''
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'colorator'
|
2
|
+
require 'highline'
|
3
|
+
|
1
4
|
class LiveSet
|
2
5
|
private
|
3
6
|
|
@@ -9,12 +12,18 @@ class LiveSet
|
|
9
12
|
|
10
13
|
cur_dir = Pathname.new(set_directory).parent
|
11
14
|
while cur_dir
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
+
project_info_path = File.join(cur_dir, 'Ableton Project Info')
|
16
|
+
add_dash_suffix(project_info_path) if File.exist? project_info_path
|
15
17
|
break if cur_dir.to_path == '/'
|
16
18
|
|
17
19
|
cur_dir = cur_dir.parent
|
18
20
|
end
|
19
21
|
end
|
22
|
+
|
23
|
+
def add_dash_suffix(cur_dir, path)
|
24
|
+
puts "Warning: 'Ableton Project Info' exists in parent directory '#{cur_dir.to_path}'".red
|
25
|
+
return unless HighLine.agree("\nDo you want the directory to be disabled by suffixing a dash to its name? ", character = true)
|
26
|
+
|
27
|
+
File.rename path, "#{path}-"
|
28
|
+
end
|
20
29
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'colorator'
|
2
2
|
require 'optparse'
|
3
3
|
|
4
|
-
VERBOSITY = %w[trace debug verbose info warning error fatal panic quiet].freeze
|
4
|
+
VERBOSITY = %w[trace debug verbose info warning error fatal panic quiet].freeze unless defined? VERBOSITY
|
5
5
|
|
6
|
-
def
|
6
|
+
def help_live_set(msg = nil)
|
7
7
|
printf "Error: #{msg}\n\n".yellow unless msg.nil?
|
8
8
|
msg = <<~END_HELP
|
9
|
-
|
9
|
+
Live_set displays information about an Ableton Live set or converts a Live 12 set to Live 11 format.
|
10
10
|
If the special folder called 'Ableton Project Info' is not present in the same folder as the .als file, a warning is generated.
|
11
|
-
Similarly, if 'Ableton Project Info' is present in any parent folder, a warning is issued.
|
11
|
+
Similarly, if 'Ableton Project Info' is present in any parent folder, a warning is issued and the user is asked if the directory should be renamed.
|
12
12
|
|
13
13
|
Syntax: live_set OPTIONS PATH_TO_ALS_FILE
|
14
14
|
|
data/lib/live_set/version.rb
CHANGED
data/lib/live_set.rb
CHANGED
data/live_set.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: live_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Slinn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bytesize
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: highline
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: nokogiri
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -71,7 +85,7 @@ files:
|
|
71
85
|
- als_notes.md
|
72
86
|
- exe/als_delta
|
73
87
|
- exe/live_set
|
74
|
-
- lib/als_delta/
|
88
|
+
- lib/als_delta/als_delta_class.rb
|
75
89
|
- lib/als_delta/als_delta_options.rb
|
76
90
|
- lib/common/common.rb
|
77
91
|
- lib/common/run.rb
|