hindbaer 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,8 +1,8 @@
1
1
  Hindbær
2
2
  =======
3
3
 
4
- A [Hindenburg Journalist](http://hindenburgsystems.com/) client for parsing,
5
- modifying and generating audio session files.
4
+ Parse, modify and generate [Hindenburg Journalist](http://hindenburgsystems.com/)
5
+ audio session files.
6
6
 
7
7
  Installation
8
8
  ------------
@@ -30,6 +30,10 @@ Parse a session file:
30
30
 
31
31
  session.length # in seconds
32
32
 
33
+ Render Session object as xml:
34
+
35
+ session.to_xml
36
+
33
37
  Retrieve all tracks:
34
38
 
35
39
  tracks = session.tracks
@@ -45,6 +49,8 @@ Retrieve all track plugins:
45
49
  plugin.name
46
50
  plugin.uid
47
51
 
52
+ There is currently support for the four default plugins and their attributes.
53
+
48
54
  Retrieve all regions for a given track:
49
55
 
50
56
  regions = tracks.first.regions
data/hindbaer.gemspec CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/hindbaer/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Jamie Hodge"]
6
6
  gem.email = ["jamiehodge@me.com"]
7
- gem.description = %q{A Hindenburg Journalist client}
7
+ gem.description = %q{A Hindenburg Journalist parser}
8
8
  gem.summary = %q{Parse, modify and generate Hindenburg Journalist audio session files}
9
9
  gem.homepage = "http://github.com/jamiehodge/hindbaer"
10
10
 
data/lib/hindbaer/clip.rb CHANGED
@@ -22,6 +22,7 @@ module Hindbaer
22
22
  end
23
23
 
24
24
  def leq
25
+ return '-' if @doc['Leq'] == '-'
25
26
  @doc['Leq'].to_f
26
27
  end
27
28
  end
data/lib/hindbaer/info.rb CHANGED
@@ -53,6 +53,10 @@ module Hindbaer
53
53
  @doc['Date']
54
54
  end
55
55
 
56
+ def genre
57
+ @doc['Genre']
58
+ end
59
+
56
60
  def copyright
57
61
  @doc['Copyright']
58
62
  end
@@ -0,0 +1,23 @@
1
+ module Hindbaer
2
+ module Plugin
3
+ class Base
4
+
5
+ def initialize(fragment)
6
+ @doc = fragment
7
+ end
8
+
9
+ def id
10
+ @doc['Id'].to_i
11
+ end
12
+
13
+ def name
14
+ @doc['Name']
15
+ end
16
+
17
+ def uid
18
+ @doc['UID']
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module Hindbaer
2
+ module Plugin
3
+ class Compressor < Hindbaer::Plugin::Base
4
+
5
+ def uid
6
+ 'nhcl'
7
+ end
8
+
9
+ def name
10
+ 'Compressor'
11
+ end
12
+
13
+ def comp
14
+ @doc['Comp']
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,63 @@
1
+ module Hindbaer
2
+ module Plugin
3
+ class Equalizer < Hindbaer::Plugin::Base
4
+
5
+ def uid
6
+ 'nheq'
7
+ end
8
+
9
+ def name
10
+ 'Equalizer'
11
+ end
12
+
13
+ def bypass
14
+ @doc['Bypass']
15
+ end
16
+
17
+ def low_freq_freq
18
+ @doc['LF_Freq']
19
+ end
20
+
21
+ def low_freq_gain
22
+ @doc['LF_Gain']
23
+ end
24
+
25
+ def low_freq_q
26
+ @doc['LF_Q']
27
+ end
28
+
29
+ def low_freq_type
30
+ @doc['LF_Type']
31
+ end
32
+
33
+ def mid_freq_freq
34
+ @doc['MF_Freq']
35
+ end
36
+
37
+ def mid_freq_gain
38
+ @doc['MF_Gain']
39
+ end
40
+
41
+ def mid_freq_q
42
+ @doc['MF_Q']
43
+ end
44
+
45
+ def high_freq_freq
46
+ @doc['HF_Freq']
47
+ end
48
+
49
+ def high_freq_gain
50
+ @doc['HF_Gain']
51
+ end
52
+
53
+ def high_freq_q
54
+ @doc['HF_Q']
55
+ end
56
+
57
+ def high_freq_type
58
+ @doc['HF_Type']
59
+ end
60
+
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,63 @@
1
+ module Hindbaer
2
+ module Plugin
3
+ class VoiceProfiler < Hindbaer::Plugin::Base
4
+
5
+ def uid
6
+ 'nhft'
7
+ end
8
+
9
+ def name
10
+ 'Voice Profiler'
11
+ end
12
+
13
+ def low_freq_freq
14
+ @doc['LF_Freq']
15
+ end
16
+
17
+ def low_freq_gain
18
+ @doc['LF_Gain']
19
+ end
20
+
21
+ def low_freq_q
22
+ @doc['LF_Q']
23
+ end
24
+
25
+ def mid_freq_freq
26
+ @doc['MF_Freq']
27
+ end
28
+
29
+ def mid_freq_gain
30
+ @doc['MF_Gain']
31
+ end
32
+
33
+ def mid_freq_q
34
+ @doc['MF_Q']
35
+ end
36
+
37
+ def high_freq_freq
38
+ @doc['HF_Freq']
39
+ end
40
+
41
+ def high_freq_gain
42
+ @doc['HF_Gain']
43
+ end
44
+
45
+ def high_freq_q
46
+ @doc['HF_Q']
47
+ end
48
+
49
+ def high_pass_freq
50
+ @doc['HP_Freq']
51
+ end
52
+
53
+ def high_pass_gain
54
+ @doc['HP_Gain']
55
+ end
56
+
57
+ def comp
58
+ @doc['Comp']
59
+ end
60
+
61
+ end
62
+ end
63
+ end
@@ -1,20 +1,26 @@
1
+ require_relative 'plugin/base'
2
+ require_relative 'plugin/equalizer'
3
+ require_relative 'plugin/compressor'
4
+ require_relative 'plugin/voice_profiler'
5
+
1
6
  module Hindbaer
2
- class Plugin
7
+ module Plugin
8
+ extend self
3
9
 
4
- def initialize(fragment)
5
- @doc = fragment
10
+ def create(fragment)
11
+ case fragment['UID']
12
+ when 'nheq'
13
+ Hindbaer::Plugin::Equalizer.new(fragment)
14
+ when 'nhcl'
15
+ Hindbaer::Plugin::Compressor.new(fragment)
16
+ when 'nhlu'
17
+ Hindbaer::Plugin::Base.new(fragment)
18
+ when 'nhft'
19
+ Hindbaer::Plugin::VoiceProfiler.new(fragment)
20
+ end
6
21
  end
7
22
 
8
- def id
9
- @doc['Id'].to_i
10
- end
11
-
12
- def name
13
- @doc['Name']
14
- end
15
-
16
- def uid
17
- @doc['UID']
18
- end
19
23
  end
20
- end
24
+
25
+ end
26
+
@@ -45,6 +45,66 @@ module Hindbaer
45
45
  Hindbaer.tc_to_secs(r.length)
46
46
  end.max
47
47
  end
48
+
49
+ def to_xml
50
+ Nokogiri::XML::Builder.new do |xml|
51
+ xml.Session Version: software_version, Samplerate: sample_rate do
52
+ xml.Info Subtitle: info.subtitle, Album: info.album, Composer: info.composer, Track: info.album_track, Genre: info.genre, Author: info.author, Link: info.link, Email: info.email, Description: info.description, Artist: info.artist, Date: info.date, Title: info.title, Explicit: info.explicit? ? 'YES' : 'NO', Copyright: info.copyright, Identifier: info.identifier, Keywords: info.keywords.join(', '), Reference: info.reference
53
+ xml.AudioPool Path: audio_pool.path, Location: audio_pool.location do
54
+ audio_pool.files.each do |file|
55
+ xml.File Id: file.id, Name: file.name, Duration: file.duration, Channels: file.num_channels, Leq: file.leq do
56
+ xml.MetaData OriginalPath: file.original_path
57
+ end
58
+ end
59
+ end
60
+ xml.Tracks do
61
+ tracks.each do |track|
62
+ xml.Track Name: track.name, Pan: track.pan do
63
+ track.regions.each do |region|
64
+ xml.Region Ref: region.reference.id, Name: region.name, Start: region.start_time, Length: region.length, Offset: region.offset, FadeIn: region.fade_in, FadeOut: region.fade_out, Gain: region.gain, Leq: region.leq do
65
+ region.fades.each do |fade|
66
+ xml.Fade Start: fade.start_time, Length: fade.length, Gain: fade.gain
67
+ end
68
+ end
69
+ end
70
+ unless track.plugins.empty?
71
+ xml.Plugins do
72
+ track.plugins.each do |plugin|
73
+ case plugin.uid
74
+ when 'nheq'
75
+ xml.Plugin Id: plugin.id, Name: plugin.name, UID: plugin.uid, Bypass: plugin.bypass, LF_Freq: plugin.low_freq_freq, LF_Gain: plugin.low_freq_gain, LF_Q: plugin.low_freq_q, LF_Type: plugin.low_freq_type, MF_Freq: plugin.mid_freq_freq, MF_Gain: plugin.mid_freq_gain, MF_Q: plugin.mid_freq_q, HF_Freq: plugin.high_freq_freq, HF_Gain: plugin.high_freq_gain, HF_Q: plugin.high_freq_q, HF_Type: plugin.high_freq_type do
76
+ xml.cdata('')
77
+ end
78
+ when 'nhcl'
79
+ xml.Plugin Id: plugin.id, Name: plugin.name, UID: plugin.uid, Comp: plugin.comp
80
+ when 'nhlu'
81
+ xml.Plugin Id: plugin.id, Name: plugin.name, UID: plugin.uid
82
+ when 'nhft'
83
+ xml.Plugin Id: plugin.id, Name: plugin.name, UID: plugin.uid, LF_Freq: plugin.low_freq_freq, LF_Gain: plugin.low_freq_gain, LF_Q: plugin.low_freq_q, MF_Freq: plugin.mid_freq_freq, MF_Gain: plugin.mid_freq_gain, MF_Q: plugin.mid_freq_q, HF_Freq: plugin.high_freq_freq, HF_Gain: plugin.high_freq_gain, HF_Q: plugin.high_freq_q, HP_Freq: plugin.high_pass_freq, HP_Gain: plugin.high_pass_gain, Comp: plugin.comp
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ xml.Clipboard do
92
+ clipboard_groups.each do |group|
93
+ xml.Group Caption: group.caption, Used: group.num_clips_used do
94
+ group.clips.each do |clip|
95
+ xml.Clip Ref: clip.reference.id, Name: clip.name, Length: clip.length, Leq: clip.leq
96
+ end
97
+ end
98
+ end
99
+ end
100
+ xml.Markers do
101
+ markers.each do |marker|
102
+ xml.Marker Id: marker.id, Name: marker.name, Time: marker.time
103
+ end
104
+ end
105
+ end
106
+ end.to_xml
107
+ end
48
108
 
49
109
  end
50
110
  end
@@ -21,7 +21,7 @@ module Hindbaer
21
21
  end
22
22
 
23
23
  def plugins
24
- @doc.css('Plugin').map { |p| Hindbaer::Plugin.new(p.dup.unlink) }
24
+ @doc.css('Plugin').map { |p| Hindbaer::Plugin.create(p.dup.unlink) }
25
25
  end
26
26
  end
27
27
  end
@@ -1,3 +1,3 @@
1
1
  module Hindbaer
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/clip_spec.rb CHANGED
@@ -22,7 +22,7 @@ describe Hindbaer::Clip do
22
22
  end
23
23
 
24
24
  it 'must return long-term equivalent level' do
25
- @clip.leq.must_equal 0
25
+ @clip.leq.must_equal '-'
26
26
  end
27
27
 
28
28
  it 'must return parent group' do
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <Session Version="Hindenburg Journalist Pro 1.12.1752" Samplerate="44100">
3
- <Info Subtitle="Vestibulum Ante Ipsum Primis" Album="Nulla At Nulla" Composer="Quisque Eget Odio Ac" Track="1" Genre="Podcast" Author="Jamie Hodge" Link="http://" Email="user@example.com" Description="Etiam at risus et justo" Artist="Lorem Ipsum Dolor" Date="Today" Title="Suspendisse Dictum Feugiat Nisl Ut" Explicit="Yes" Copyright="2011" Identifier="Lorem Ipsum Dolor Sit" Keywords="In, Condimentum, Facilisis" Reference="Vivamus Hendrerit Arcu" />
2
+ <Session Version="Hindenburg Journalist Pro 1.10.1742" Samplerate="44100">
3
+ <Info Subtitle="Vestibulum Ante Ipsum Primis" Album="Nulla At Nulla" Composer="Quisque Eget Odio Ac" Track="1" Genre="Podcast" Author="Jamie Hodge" Link="http://" Email="user@example.com" Description="Etiam at risus et justo" Artist="Lorem Ipsum Dolor" Date="Today" Title="Suspendisse Dictum Feugiat Nisl Ut" Explicit="Yes" Copyright="2011" Keywords="In, Condimentum, Facilisis" Identifier="Lorem Ipsum Dolor Sit" Reference="Vivamus Hendrerit Arcu"/>
4
4
  <AudioPool Path="Example session Files" Location="/Users/jamiehodge/Desktop">
5
5
  <File Id="1" Name="file1.wav" Duration="2:51:09.025" Channels="2" Leq="-10.4">
6
6
  <MetaData OriginalPath="/path/to/file1.wav"/>
@@ -12,7 +12,7 @@
12
12
  <MetaData OriginalPath="/path/to/file3.wav"/>
13
13
  </File>
14
14
  <File Id="4" Name="file4.wav" Duration="1:12:23.850" Channels="2" Leq="-16.2">
15
- <MetaData OriginalPath="/path/to/file4.wav/>
15
+ <MetaData OriginalPath="/path/to/file4.wav"/>
16
16
  </File>
17
17
  </AudioPool>
18
18
  <Tracks>
@@ -22,16 +22,19 @@
22
22
  </Region>
23
23
  <Region Ref="1" Name="Speak 2" Start="44.171" Length="08.808" Offset="01:11.521" FadeIn="00.036" FadeOut="00.245" Gain="-0.8" Leq="-16.4"/>
24
24
  <Plugins>
25
- <Plugin Id="0" Name="Equalizer" UID="nheq" Bypass="1" MF_Q="0.1" LF_Gain="0.5" HP_Freq="0.00454545" HP_Gain="0.2" HF_Q="0.1" MF_Gain="0.5" HF_Gain="0.5" HF_Freq="0.363636" HF_Type="0" MF_Freq="0.0454545" LF_Freq="0.00909091" LF_Q="0.1" LF_Type="0">
25
+ <Plugin Id="0" Name="Equalizer" UID="nheq" MF_Q="0.1" LF_Gain="0.5" HP_Freq="0.00454545" HP_Gain="0.2" HF_Q="0.1" MF_Gain="0.5" HF_Gain="0.5" HF_Freq="0.363636" HF_Type="0" MF_Freq="0.0454545" LF_Freq="0.00909091" LF_Q="0.1" LF_Type="0">
26
26
  <![CDATA[]]>
27
27
  </Plugin>
28
+ <Plugin Id="1" Name="Compressor" UID="nhcl" Comp="0.275"/>
29
+ <Plugin Id="2" Name="Loudness Meter" UID="nhlu"/>
30
+ <Plugin Id="3" Name="Voice Profiler" UID="nhft" MF_Q="0.12" LF_Gain="0.398302" HP_Freq="0.00181818" HP_Gain="0.365926" HF_Q="0.03" MF_Gain="0.35" HF_Gain="0.569759" HF_Freq="0.454545" Comp="0.15" MF_Freq="0.0381288" LF_Freq="0.00502632" LF_Q="0.12"/>
28
31
  </Plugins>
29
32
  </Track>
30
33
  <Track Name="Interview" Pan="0.025">
31
34
  <Region Ref="2" Name="Interview 1" Start="10.758" Length="33.553" FadeIn="00.085" Gain="1.2" Leq="-21.1"/>
32
35
  <Region Ref="2" Name="Interview 2" Start="58.078" Length="05.636" Offset="05.840" FadeIn="00.773" FadeOut="00.140" Gain="-3.7"/>
33
36
  <Plugins>
34
- <Plugin Id="0" Name="Equalizer" UID="nheq" Bypass="1" MF_Q="0.1" LF_Gain="0.5" HP_Freq="0.00454545" HP_Gain="0.2" HF_Q="0.1" MF_Gain="0.5" HF_Gain="0.5" HF_Freq="0.363636" HF_Type="0" MF_Freq="0.0454545" LF_Freq="0.00909091" LF_Q="0.1" LF_Type="0">
37
+ <Plugin Id="0" Name="Equalizer" UID="nheq" Bypass="1" MF_Q="0.1" HP_Freq="0.00454545" LF_Gain="0.5" HP_Gain="0.5" HF_Q="0.1" MF_Gain="0.5" HF_Gain="0.5" HF_Freq="0.363636" HF_Type="0" MF_Freq="0.0454545" LF_Freq="0.00909091" LF_Q="0.1" LF_Type="0">
35
38
  <![CDATA[]]>
36
39
  </Plugin>
37
40
  </Plugins>
@@ -96,4 +99,4 @@
96
99
  <Marker Id="1" Name="In" Time="01:01.000"/>
97
100
  <Marker Id="2" Name="Out" Time="12:42.720"/>
98
101
  </Markers>
99
- </Session>
102
+ </Session>
data/spec/info_spec.rb CHANGED
@@ -55,6 +55,10 @@ describe Hindbaer::Info do
55
55
  @info.copyright.must_equal '2011'
56
56
  end
57
57
 
58
+ it 'must return genre' do
59
+ @info.genre.must_equal 'Podcast'
60
+ end
61
+
58
62
  it 'must return whether explicit' do
59
63
  @info.explicit?.must_equal true
60
64
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Hindbaer::Plugin do
3
+ describe Hindbaer::Plugin::Base do
4
4
 
5
5
  before do
6
6
  project = Hindbaer::Session.new('spec/fixtures/project.nhsx')
data/spec/session_spec.rb CHANGED
@@ -7,7 +7,7 @@ describe Hindbaer::Session do
7
7
  end
8
8
 
9
9
  it 'must return software version' do
10
- @session.software_version.must_equal 'Hindenburg Journalist Pro 1.12.1752'
10
+ @session.software_version.must_equal 'Hindenburg Journalist Pro 1.10.1742'
11
11
  end
12
12
 
13
13
  it 'must return sample rate' do
@@ -41,4 +41,11 @@ describe Hindbaer::Session do
41
41
  @session.length.must_equal 10269.025000000001
42
42
  end
43
43
 
44
+ it 'must render itself as xml' do
45
+ File.open('/Users/jamiehodge/Desktop/untitled.nhsx', 'w') do |file|
46
+ file << @session.to_xml
47
+ end
48
+ @session.to_xml.must_equal File.open('spec/fixtures/project.nhsx').read
49
+ end
50
+
44
51
  end
data/spec/track_spec.rb CHANGED
@@ -21,8 +21,8 @@ describe Hindbaer::Track do
21
21
  end
22
22
 
23
23
  it 'must return all plugins' do
24
- @track.plugins.first.must_be_kind_of Hindbaer::Plugin
25
- @track.plugins.size.must_equal 1
24
+ @track.plugins.first.must_be_kind_of Hindbaer::Plugin::Base
25
+ @track.plugins.size.must_equal 4
26
26
  end
27
27
 
28
28
  it 'must return parent session' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hindbaer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-24 00:00:00.000000000Z
12
+ date: 2011-08-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &70139580355740 !ruby/object:Gem::Requirement
16
+ requirement: &70144081230500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70139580355740
24
+ version_requirements: *70144081230500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard
27
- requirement: &70139580355160 !ruby/object:Gem::Requirement
27
+ requirement: &70144081230080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70139580355160
35
+ version_requirements: *70144081230080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-minitest
38
- requirement: &70139580354440 !ruby/object:Gem::Requirement
38
+ requirement: &70144081229620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70139580354440
46
+ version_requirements: *70144081229620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rb-fsevent
49
- requirement: &70139580353860 !ruby/object:Gem::Requirement
49
+ requirement: &70144081229180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70139580353860
57
+ version_requirements: *70144081229180
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: growl_notify
60
- requirement: &70139580353260 !ruby/object:Gem::Requirement
60
+ requirement: &70144081228620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70139580353260
68
+ version_requirements: *70144081228620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mocha
71
- requirement: &70139580352660 !ruby/object:Gem::Requirement
71
+ requirement: &70144081228000 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70139580352660
79
+ version_requirements: *70144081228000
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: nokogiri
82
- requirement: &70139580352240 !ruby/object:Gem::Requirement
82
+ requirement: &70144081227520 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,8 +87,8 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70139580352240
91
- description: A Hindenburg Journalist client
90
+ version_requirements: *70144081227520
91
+ description: A Hindenburg Journalist parser
92
92
  email:
93
93
  - jamiehodge@me.com
94
94
  executables: []
@@ -110,6 +110,10 @@ files:
110
110
  - lib/hindbaer/info.rb
111
111
  - lib/hindbaer/marker.rb
112
112
  - lib/hindbaer/plugin.rb
113
+ - lib/hindbaer/plugin/base.rb
114
+ - lib/hindbaer/plugin/compressor.rb
115
+ - lib/hindbaer/plugin/equalizer.rb
116
+ - lib/hindbaer/plugin/voice_profiler.rb
113
117
  - lib/hindbaer/region.rb
114
118
  - lib/hindbaer/session.rb
115
119
  - lib/hindbaer/track.rb
@@ -122,7 +126,7 @@ files:
122
126
  - spec/group_spec.rb
123
127
  - spec/info_spec.rb
124
128
  - spec/marker_spec.rb
125
- - spec/plugin_spec.rb
129
+ - spec/plugin_base_spec.rb
126
130
  - spec/region_spec.rb
127
131
  - spec/session_spec.rb
128
132
  - spec/spec_helper.rb
@@ -160,7 +164,7 @@ test_files:
160
164
  - spec/group_spec.rb
161
165
  - spec/info_spec.rb
162
166
  - spec/marker_spec.rb
163
- - spec/plugin_spec.rb
167
+ - spec/plugin_base_spec.rb
164
168
  - spec/region_spec.rb
165
169
  - spec/session_spec.rb
166
170
  - spec/spec_helper.rb