-
Notifications
You must be signed in to change notification settings - Fork 17
/
Roadmap
270 lines (147 loc) · 5.04 KB
/
Roadmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
Infrastructure
--------------
tools
The scons build system.
tmp
Build products.
The system will run directly from this directory
after a build.
bld.cmd
Windows wrapper for calling scons.
bld.cmd will build a runnable system in tmp.
bld.cmd target-mpkg will build installers in tmp/pkg
executables are in tmp/bin. GUI executables are
built as both GUI subsystem executables (ie, eigend)
and Console subsystem versions (ie, eigend_con)
Makefile
MacOS/Linux wrapper for calling scons.
make will build a runnable system in tmp.
make mpkg will build installers
GUI apps are built in tmp/app, command line executables
in tmp/bin.
SConscript.first
Top level Scons file defining basic release information.
tools/SConstruct is the root build file, discovering and
executing all SConscript/SConscript.first files from the
tree.
Fundamental Libraries and Tools
-------------------------------
app_pip
Simple Python wrapper generator that converts pip files
into standalone .cpp files which implement a python wrapper.
picross
Cross platform abstractions and fundamental utility
classes.
No dependencies.
piembedded
Some basic message handling stuff which was written for
use in the kernel and on DSP's
Does depend on picross.
lib_alpha1
Basic abstractions for handling an alpha version 1 (an
early non production version)
Plus a few test and utility programs.
Depends on picross only.
lib_alpha2
Basic abstractions for handling alpha version 2 (Production
versions) and Tau's.
Plus a few test and utility programs.
Depends on picross only.
lib_micro
Basic abstractions for handling Micro's (an early version of
pico)
Plus a few test and utility programs.
Depends on picross only.
lib_pico
Basic abstractions for handling Pico's
Plus a few test and utility programs.
Depends on picross only.
lib_fftw
The MIT fftw library.
The build depends on picross, but only for the pic_config
header to choose the correct build configuration.
lib_juce
The JUCE toolkit, built as a DLL.
lib_lo
The liblo OSC library.
The build depends on picross, but only for the pic_config
header to choose the correct build configuration.
lib_samplerate
the SRC sample rate conversion library.
The build depends on picross, but only for the pic_config
header to choose the correct build configuration.
High Level Libraries
--------------------
pibelcanto
some basic protocol level constants, the C api used by agents,
and the current language lexicon.
piw
Wraps the agent side of the agent API in C++, and implements
many C++ utility classes for dealing with data flow and
agent ports.
via piw.pip, provides python wrappers for many of these
utilities.
Depends on all the low level libraries, and pibelcanto.
Much of the code in here makes the assumption that it is running
inside EigenD.
Also depends on juce (which is a problem)
piagent
Library which forms the core of EigenD. Implements the
host side API used in agents (from pibelcanto)
Depends on all the low level libraries, and pibelcanto.
pi
More high level agent oriented utility functions
pigui
Some utilities for writing python wx.
pisession
Utilities for writing standalone programs embedding piagent, and
EigenD's setup upgrade logic.
Agents
------
plg_arranger
The Arranger
plg_clock
Old Metronome Agent, not used any more.
plg_convolver
Convolver agent, used by the cello.
plg_host
AU/VST hosting
plg_keyboard
Alpha and Tau agents
plg_language
Interpreter Agent
plg_loop
Drummer, Metronome, Clicker
plg_macosx
Mac and Windows audio
plg_midi
Midi input, output, and conversion
plg_osc
OSC example agent
plg_pkbd
Pico agent.
plg_recorder
Recorder agent.
plg_sampler2
Sampler agent.
plg_simple
Agents that consist of only 1 file and rely entirely on
facilities in pi/piw.
plg_stk
Stk (Synthesis toolkit) based agents; Cello and Clarinet.
plg_synth
Modular synthesis agents (oscillators and envelope generators)
plg_ukbd
Micro keyboard agent.
resources
Non free resource files and dll's.
sys_init
Release related stuff.
app_browser2
The (Python/Wx) based Browser
app_cmdline
Command line utility programs.
app_commander
The (Python/Wx) based Commander
app_eigend2
The eigend GUI