~ubuntu-branches/ubuntu/raring/ecasound2.2/raring

« back to all changes in this revision

Viewing changes to Documentation/archived/edi-19.txt

  • Committer: Bazaar Package Importer
  • Author(s): Junichi Uekawa
  • Date: 2009-05-06 15:18:46 UTC
  • mfrom: (5.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090506151846-dvp8mirqmxwhve66
Tags: 2.6.0-1
* New upstream release
- 08_fix_header_install: remove
- 07_configure_in_maintainer_mode: update
- do not install manpage copies, and just install symlinks for
  ecatools.1
* Build-Depend on texlive-latex-recommended too for ecrm1000 font.
  (closes: #526535)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
------------------------------------------------------------------------
 
2
Status: FROZEN
 
3
 
 
4
(edi-19) Separate file format for multitrack setups (.emt).
 
5
        - submitted: kaiv, 18.10.2001
 
6
        - frozen: kaiv, 20.08.2003
 
7
        - migrated to sf.net -> sffeat:2134201
 
8
 
 
9
------------------------------------------------------------------------
 
10
Reason for the frozen status:
 
11
 
 
12
- there's already too many alternatives on how to use ecasound; a new
 
13
  file format would jus add confusion and bloat (even though the idea
 
14
  itself is not a bad one)
 
15
 
 
16
------------------------------------------------------------------------
 
17
- kaiv, 18.10.2001
 
18
 
 
19
--cut--
 
20
What if ecasound could understand the following file format:
 
21
 
 
22
file "my_next_big_hit.emt"
 
23
--cut--
 
24
[globals]
 
25
input = /dev/dsp
 
26
output = /dev/dsp
 
27
options = -t:20
 
28
[tracks]
 
29
# name          mon/rec gain-%  pan-%   chain ops
 
30
drums.wav       mon     100     50      -efl:4000
 
31
303line.wav     mon     120     50      -etr:60,0,7
 
32
lead.wav        rec     100     50      
 
33
--cut--
 
34
 
 
35
You'd write the above (or use a separate frontend app that can save to
 
36
.emt), and then use it like:
 
37
 
 
38
ecasound my_next_big_hit.emt -c
 
39
[...]
 
40
ecasound ('h' for help)> start
 
41
 
 
42
... and so on. The benefits of .emt would be:
 
43
 
 
44
- easier to use (hides ecasound's input, output and chain concepts);
 
45
  anyone who knows how to use cakewalk, cooledit or an analog 
 
46
  4-track should be able to understand how the above works (perhaps 
 
47
  a gui is needed, but that doesn't change the concept)
 
48
- faster changing between mix-to-dsp, mix-to-file and
 
49
  record-new-track modes (only one .emt file instead of 
 
50
  multiple ecs-files)
 
51
 
 
52
Negative things:
 
53
 
 
54
- conversion from .ecs to .emt might prove to be trickier 
 
55
  (.emt cannot express all chainsetup configurations), 
 
56
  which again means that changes made in iactive 
 
57
  mode are not (necessarily) stored to .emt files
 
58
 
 
59
Internally ecasound would convert the .emt files to chainsetup (.ecs)
 
60
files before loading. So something like:
 
61
 
 
62
--cut--
 
63
# ecasound chainsetup file
 
64
 
 
65
# general
 
66
-sr:44100 -t:20 -z:noxruns -z:nopsr
 
67
 
 
68
# audio inputs
 
69
-a:mon1 -i:drums.wav
 
70
-a:mon2 -i:303line.wav
 
71
 
 
72
# audio outputs
 
73
-a:mon1,mon2 -o:/dev/dsp
 
74
 
 
75
# chain operators and controllers
 
76
-a:mon1 -ea:100.00 -epp:50.00 -efl:4000.00
 
77
-a:mon2 -ea:120.00 -epp:50.00 -etr:60.00,0.00,7.00
 
78
-a:rec1 -ea:100.00 -epp:50.00
 
79
--cut--
 
80
 
 
81
--cut--
 
82
 
 
83
------------------------------------------------------------------------
 
84
- Luis Pablo Gasparotto, 18.10.2001
 
85
 
 
86
--cut--
 
87
What do you think about this?
 
88
 
 
89
# name          mon/rec Start time      gain-%  pan-%   chain ops
 
90
drums.wav       mon      00:00          100     50      -efl:4000
 
91
303line.wav     mon      00:00          120     50      -etr:60,0,7
 
92
lead.wav        rec      01:30          100     50
 
93
 --cut--
 
94
 
 
95
------------------------------------------------------------------------
 
96
- S. Massy, 19.10.2001
 
97
 
 
98
--cut--
 
99
> What if ecasound could understand the following file format:
 
100
Very interesting...
 
101
 
102
> file "my_next_big_hit.emt"
 
103
> --cut--
 
104
> [globals]
 
105
> input = /dev/dsp
 
106
> output = /dev/dsp
 
107
> options = -t:20
 
108
> [tracks]
 
109
> # name                mon/rec gain-%  pan-%   chain ops
 
110
> drums.wav     mon     100     50      -efl:4000
 
111
> 303line.wav   mon     120     50      -etr:60,0,7
 
112
> lead.wav      rec     100     50      
 
113
> --cut--
 
114
- I like the way you divide it into either rec (read `input' and write to 
 
115
  `name) and mon (read from `name' and write to `output')
 
116
- Why use up fields for gain and pan while they can be expressed as cops?
 
117
  To make it look like an analog multitrack recorder?
 
118
- You'd need a field to specify the format for each file.
 
119
- Cruel lack of identifiers. (see below)
 
120
 
 
121
 
122
> You'd write the above (or use a separate frontend app that can save to
 
123
> .emt), and then use it like:
 
124
 
125
> ecasound my_next_big_hit.emt -c
 
126
> [...]
 
127
> ecasound ('h' for help)> start
 
128
While I agree that it's nice for a new user to have a more simple format to 
 
129
specify a cs, I only see it as I side benefit (if the user is into asci files 
 
130
he might as well write an .ecs.) The real benefit in such format I deem would 
 
131
be for front-ends.
 
132
- Ability to store information into a file format already understood by 
 
133
  ecasound.
 
134
- Ability to store information in a way that is compatible between different 
 
135
  front-ends.
 
136
  (You can have a simple shell script to create a multitrack spec and then 
 
137
  load it into a full-featured x-based c++ program.)
 
138
You'll say that programs might as well write directly to .ecs and do the 
 
139
vulgarization on its own; that may be true, but .emt would simplify the job 
 
140
greatly.
 
141
 
 
142
So here we come to my point which is the need for identifiers in an 
 
143
hypothetical .emt file; wouldn't it be nice if you could always reuse the 
 
144
template of an .emt file, only changing the filenames? Also, identifiers 
 
145
help make it more concrete (names) and more coherent between different 
 
146
front-ends (you load your .emt file in another app and the tracks are still 
 
147
described the same way.)
 
148
So here's my idea of an .emt format with a setup that is frequent to me (it
 
149
uses braces though, be warned, I know some don't like braces.):
 
150
 
 
151
my_next_big_hit.emt
 
152
----------
 
153
guitar_recording_stage {
 
154
   # Always have comments allowed in a file format.
 
155
   input = /dev/dsp
 
156
   output = /dev/dsp
 
157
   format = 16,2,44100
 
158
   options = -t:500
 
159
 
 
160
   rt_monitor {
 
161
      type = mon
 
162
      target = /dev/dsp
 
163
      operators = -erc:1,2 -ea:120
 
164
   }
 
165
 
 
166
   bass_monitor {
 
167
      type = mon
 
168
      target = bass/take2.wav
 
169
      format = 16,1,44100
 
170
      operators = -pn:bassboost
 
171
   }
 
172
 
 
173
   drums_monitor {
 
174
      type = mon
 
175
      target = drums/drums.ewf
 
176
   }
 
177
 
 
178
   metronome {
 
179
      type = mon
 
180
      target = null
 
181
      operators = -pn:metronome,120
 
182
   }
 
183
 
 
184
   guitar_rec {
 
185
      type = rec
 
186
      target = guitar/take1.raw
 
187
      operators = -erc:1,2
 
188
   }
 
189
}      
 
190
 
 
191
Of course, you seldom need a metronome when you already have other tracks 
 
192
to monitor, I'm just trying to show what we need to have to be happy. :)
 
193
 
 
194
One thing that I'd like to see would be the ability to set offsets directly 
 
195
from the command-line (and from a file like .emt) because, to quote Janne in 
 
196
an approximate way, "You need to take a breath between the moment you hit 
 
197
start and the moment you start to play." Also, while a metronome isn't 
 
198
altogether required while monitoring with other tracks, some sort of clicks 
 
199
at the beginning would be quite welcome, but right now there aren't any 
 
200
simple way to do it, is there? Apart from wrapping every file into an ewf?
 
201
Wouldn't it be nice if we could do:
 
202
----------
 
203
my_project {
 
204
   [...]
 
205
   offset = 25 # 25 seconds to go from the keyboard to the guitar.
 
206
   [...]
 
207
   clicks {
 
208
      type = mon
 
209
      target = null
 
210
      length = 4 # 8 clicks
 
211
      operators = -pn:metronome,120
 
212
   }
 
213
 
 
214
   monitor {
 
215
      [...]
 
216
      offset = 4 # += general offset
 
217
      [...]
 
218
   }
 
219
 
 
220
   recording {
 
221
      [...]
 
222
      offset = 4 # += general offset
 
223
      [...]
 
224
   }
 
225
}
 
226
----------
 
227
 
 
228
 
229
> ... and so on. The benefits of .emt would be:
 
230
 
231
> - easier to use (hides ecasound's input, output and chain concepts);
 
232
>   anyone who knows how to use cakewalk, cooledit or an analog 
 
233
>   4-track should be able to understand how the above works (perhaps 
 
234
>   a gui is needed, but that doesn't change the concept)
 
235
> - faster changing between mix-to-dsp, mix-to-file and
 
236
>   record-new-track modes (only one .emt file instead of 
 
237
>   multiple ecs-files)
 
238
I'm not sure to understand what you mean here...
 
239
 
240
> Negative things:
 
241
 
242
> - conversion from .ecs to .emt might prove to be trickier 
 
243
>   (.emt cannot express all chainsetup configurations), 
 
244
>   which again means that changes made in iactive 
 
245
>   mode are not (necessarily) stored to .emt files
 
246
Ah, well, that's the price to pay for gained simplicity.
 
247
 
248
> Internally ecasound would convert the .emt files to chainsetup (.ecs)
 
249
> files before loading. So something like:
 
250
BTW, with the format I described above, you could store multiple templates 
 
251
in one .emt file, possibly describing each stage of a recording. Then, it 
 
252
would be transformed into multiple cs by ecasound and you'd only have to 
 
253
select the appropriate one.
 
254
 
255
> --cut--
 
256
> # ecasound chainsetup file
 
257
 
258
> # general
 
259
> -sr:44100 -t:20 -z:noxruns -z:nopsr
 
260
 
261
> # audio inputs
 
262
> -a:mon1 -i:drums.wav
 
263
> -a:mon2 -i:303line.wav
 
264
 
265
> # audio outputs
 
266
> -a:mon1,mon2 -o:/dev/dsp
 
267
 
268
> # chain operators and controllers
 
269
> -a:mon1 -ea:100.00 -epp:50.00 -efl:4000.00
 
270
> -a:mon2 -ea:120.00 -epp:50.00 -etr:60.00,0.00,7.00
 
271
> -a:rec1 -ea:100.00 -epp:50.00
 
272
> --cut-- 
 
273
Here comes again the problem of identifiers that I spoke of earlier, in 
 
274
this way, how would the front-end app know which chain is which?
 
275
--cut--
 
276
 
 
277
------------------------------------------------------------------------
 
 
b'\\ No newline at end of file'