aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/xsample/readme.txt
blob: 777453b5ece91677f51ac7a501f8e367be3c6916 (plain)
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
xsample - extended sample objects for Max/MSP and pd (pure data)

Copyright (c)2001-2004 Thomas Grill (t.grill@gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.  

----------------------------------------------------------------------------

Maximum care has been taken to prepare a delightful experience for you electronic artists.
Donations for further development of the package are HIGHLY APPRECIATED.

Visit https://www.paypal.com/xclick/business=t.grill%40gmx.net&item_name=xsample&no_note=1&tax=0&currency_code=EUR

----------------------------------------------------------------------------

IMPORTANT INFORMATION for all MaxMSP users:

1) 
For Mac OSX it is best to put the max-osx/xsample.mxd file into the folder 
/Library/Application Support/Cycling '74/externals
and the file maxmsp/xsample-objectmappings.txt into the folder 
/Library/Application Support/Cycling '74/init .

For Windows put the max-msvc\xsample.mxe file into the folder
C:\program files\common files\Cycling '74\externals (english version)
and the file maxmsp/xsample-objectmappings.txt in
C:\program files\common files\Cycling '74\init (english version)

Put the maxmsp/xsample.help file into the max-help folder.

2) 
Alternatively (or for OS9) it is advisable to put the xsample.mxd or xsample.mxe file 
into the "max-startup" folder. Hence it will be loaded at Max startup.

----------------------------------------------------------------------------

IMPORTANT INFORMATION for all PD users:

xsample is a library containing several external objects. You should load it at PD startup
by adding "-lib xsample" to the PD command line.
(If you forgot to do that, you can load the library by creating an [xsample] dummy object.

----------------------------------------------------------------------------

You will need the flext C++ layer for PD and Max/MSP externals to compile this.
see http://www.parasitaere-kapazitaeten.net/ext


Package files:
- readme.txt: this one
- gpl.txt,license.txt: GPL license stuff
- main.h,main.cpp,inter.cpp,inter.h: base class definition for all the other objects
- record.cpp: xrecord~
- play.cpp: xplay~
- groove.cpp: xgroove~

----------------------------------------------------------------------------

BUILDING XSAMPLE from source
----------------------------

The package should at least compile (and is tested) with the following compilers:

pd - Windows:
-------------
o Microsoft Visual C++ 6 or .NET command line: edit "config-pd-msvc.txt" and run "build-pd-msvc.bat"

o BCC: edit "config-pd-bcc.txt" and run "build-pd-bcc.bat"

o Cygwin GCC: edit "config-pd-cygwin.txt" and run "sh ./build-pd-cygwin.sh"
> various versions of GCC die during compile with template optimization turned on 

o MinGW: edit "config-pd-mingw.txt" and run "build-pd-mingw.bat"
> MinGW binary folder must be included in the system path!

pd - linux:
-----------
o GCC: edit "config-pd-linux.txt" and run "sh ./build-pd-linux.sh"
> various versions of GCC die during compile with template optimization turned on 

pd - OSX:
-----------
o GCC: edit "config-pd-darwin.txt" and run "sh ./build-pd-darwin.sh"
> various versions of GCC die during compile with template optimization turned on 

o XCode: use "xsample.xcode" project

Max/MSP - MacOS9:
----------------
o Metrowerks CodeWarrior: "xsample.cw" project file

o Apple MPW-PR: edit & use the "flext.mpw" makefile

Max/MSP - MacOSX:
----------------
o Metrowerks CodeWarrior: "xsample.cw" project file

o XCode: use "xsample.xcode" project

Max/MSP - Windows:
----------------
o Microsoft Visual C++ 6 or .NET command line: edit "config-max-msvc.txt" and run "build-max-msvc.bat"


----------------------------------------------------------------------------

Goals/features of the package:

- portable and effective sample recording/playing objects for pd and Max/MSP
- MSP-like groove~ object for PD 
- message- or signal-triggered recording object with mix-in capability
- avoid the various bugs of the original MSP2 objects
- multi-channel capability 
- live update of respective buffer/array content
- switchable 4-point or linear interpolation for xplay~/xgroove~ object
- cross-fading loop zone for xgroove~

----------------------------------------------------------------------------

Version history:

0.3.1:
- added mixmode=2 to Max/MSP help files
- fixed limit consideration for loopmode=0 and 2.
- fixed buggy sampling in crossfade zones (and simplified it a lot)
- different initialization on buffer absence
- renew units and scalemode on buffer change
- fixed looped recording bug (thanks to Tatama Suomo)

0.3.0:
- added resources to MaxMSP build
- xgroove~, xrecord~: introduced a loop/end bang outlet 
- added MaxMSP buffer resize recognition
- xgroove~: introduced crossfading loop zones
- adapted source for flext 0.4.1 - most methods within class scope
- introduced attributes
- restructured make procedures
- corrected names of PD makefile, set help names
- fixed scale mode bug with xgroove~
- added validity check for buffers
- Max/MSP OSX: new file xsample-objectmappings.txt fixes load of library on finding correct helpfiles!
- makefiles for command line MSVC++, BCC, cygwin GCC
- better handling of non-existent buffers
- fixed flext-related error on setting buffers
- xrecord~: mixmode has now 3 states (off, mix-in, add)

0.2.4:
- according to flext 0.2.3 changed sample type to t_sample (S)
- xrecord~: fixed mix mode bug
- fixed argument buffer problem

0.2.3:
- using flext 0.2.2 - xsample is now a library under MaxMSP
- cleaner gcc makefile
- xgroove~, xrecord~: added "all" message to select entire buffer length
- xgroove~, xplay~: revisited dsp methods, restructured the code, fixed small interpolation bugs 
- xgroove~, xplay~: added linear interpolation (message "interp 2") 
- enabled 0 output channels -> xgroove~: position output only
- xgroove~: added bidirectional looping (message "loop 2")

0.2.2:
- using flext 0.2.0
- xrecord~ for PD: new flext brings better graphics update behavior
- xrecord~: recording position doesn't jump to start when recording length is reached
- fixed bug with refresh message (min/max reset)
- xgroove~: position (by pos message) isn't sample rounded anymore
- reset/refresh messages readjust dsp routines to current buffer format (e.g. channel count)
- corrected Max/MSP assist method for multi-channel
- fixed xplay~ help method 
- changed syntax to x*~ [channels=1] [buffer] for future enhancements (MaxMSP only, warning for old syntax)
- fixed small bug concerning startup position in xgroove~ and xrecord~
- fixed deadly bug in xplay~ dsp code (only active with template optimization) 

0.2.1:
- no leftmost float inlet for position setting - use pos method
- changed dsp handling for flext 0.1.1 conformance
- workarounds for buggy/incomplete compilers
- prevent buffer warning message at patcher load (wait for loadbang)
- fixed bug: current pos is reset when changing min or max points

0.2.0: 
- first version for flext

---------------------------------------------------------------------------


TODO list:

general:

- do a smooth (line~) mixin in xrecord~ help patch

features:
- multi-buffer handling (aka multi-channel for pd)
- vasp handling
- performance comparison to respective PD/Max objects
- anti-alias filter? (possible?)

- delay min/max changes when cur pos in cross-fade zone

tests:
- reconsider startup sequence of set buffer,set units,set sclmode,set pos/min/max

bugs:
- PD: problems with timed buffer redrawing (takes a lot of cpu time) - flext bug?
- Apple MPW doesn't correctly compile template optimization 
- Max help files aren't correctly opened due to xsample objects residing in a library (FIXED for OSX!!!)