parent
cf72bf4330
commit
b94a9b7112
@ -0,0 +1,50 @@
|
|||||||
|
(defun create-scd-project ()
|
||||||
|
"Create a new project directory with a samples subdirectory and a main.scd file containing SuperCollider code."
|
||||||
|
(interactive)
|
||||||
|
(let* ((project-path (read-directory-name "Project path: " default-directory))
|
||||||
|
(project-name (read-string "Project name: "))
|
||||||
|
(full-path (expand-file-name project-name project-path))
|
||||||
|
(samples-path (expand-file-name "samples" full-path))
|
||||||
|
(main-file (expand-file-name "main.scd" full-path))
|
||||||
|
(supercollider-code (format
|
||||||
|
"(
|
||||||
|
s.options.memSize_(2.pow(20));
|
||||||
|
s.waitForBoot({
|
||||||
|
~makeBuffers = { |path, event, mono = false|
|
||||||
|
var dir = PathName.new(path);
|
||||||
|
var contents = dir.entries;
|
||||||
|
if (contents.select({ |n| n.isFile }).size > 0)
|
||||||
|
{
|
||||||
|
var files, bufArray;
|
||||||
|
files = contents.select({ |n| n.isFile });
|
||||||
|
files = files.select({ |n|
|
||||||
|
[\"aif\", \"aiff\", \"wav\"].includesEqual(n.extension)
|
||||||
|
});
|
||||||
|
if (event[dir.folderName.asSymbol] != nil)
|
||||||
|
{ \"duplicate subfolder name ignored\".warn; }
|
||||||
|
{
|
||||||
|
bufArray = files.collect({ |n|
|
||||||
|
if(mono)
|
||||||
|
{ Buffer.readChannel(s, n.fullPath, channels:[0]) }
|
||||||
|
{ Buffer.read(s, n.fullPath) };
|
||||||
|
});
|
||||||
|
event[dir.folderName.asSymbol] = bufArray;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if (contents.select({ |n| n.isFolder }).size > 0)
|
||||||
|
{
|
||||||
|
var folders = contents.select({ |n| n.isFolder });
|
||||||
|
folders.do({ |n| ~makeBuffers.(n.fullPath, event, mono) });
|
||||||
|
};
|
||||||
|
event;
|
||||||
|
};
|
||||||
|
~samples = ~makeBuffers.(\"%s\", ());
|
||||||
|
});
|
||||||
|
)"
|
||||||
|
samples-path)))
|
||||||
|
(make-directory full-path t)
|
||||||
|
(make-directory samples-path t)
|
||||||
|
(with-temp-file main-file
|
||||||
|
(insert supercollider-code))
|
||||||
|
(find-file main-file)
|
||||||
|
(save-buffer)))
|
||||||
Loading…
Reference in new issue