File: Archive.schelp

package info (click to toggle)
supercollider 1%3A3.7.0~repack-4%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 34,364 kB
  • sloc: cpp: 197,140; ansic: 72,013; lisp: 63,505; sh: 14,009; python: 1,992; perl: 766; makefile: 679; java: 677; xml: 326; yacc: 309; lex: 175; ruby: 173; objc: 65
file content (52 lines) | stat: -rw-r--r-- 1,529 bytes parent folder | download | duplicates (2)
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
CLASS::Archive
summary::storing objects to file
categories:: Collections, Files
related::Classes/Library, Classes/Object, Classes/LibraryBase

DESCRIPTION::
Archives can write any object to disk and read from file again. Compex structures of objects can thus be restored. Writing an object to file as a strong::compile string:: is usually more readable, but does not account for the internal structure of the object.

There is only one global instance: Archive.global, which is initialized automatically.

CLASSMETHODS::

private::initClass

method::global
set or get the global archive instance

method::archiveDir
set or get the directory that the archive is written to.
Default: link::Classes/Platform::.userAppSupportDir.

method::write
write the global archive now. This is called automatically when SuperCollider quits.
The default filename is "/archive.sctxar"

method::read
read the global archive now. This is called automatically when SuperCollider recompiles or starts.
The default filename is "/archive.sctxar"

EXAMPLES::

code::
// make a storage place for various objects:
q = (); // Event

q[\a_long_array] = Array.rand(128, 0.0, 1.0);
q[\pi_squared] = pi * pi;
q[\favourite_sound] = { { SinOsc.ar([300, 330]).sum * LFPulse.kr(2 + [0, 0.01]) * 0.1 }.play };
q[\same_long_array] = q[\a_long_array]; // same objects may appear several times

Archive.global.put(\myData, q);


Archive.global.at(\myData).postcs;

// after a recompile:
s.boot;

q = Archive.global.at(\myData);
q.postcs;
q[\favourite_sound].value;
::