-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathlorenz.js
96 lines (80 loc) · 3.43 KB
/
lorenz.js
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
// RPD framework initialization
window.Kefir = require('kefir');
window.d3 = require('d3-selection');
require('./node_modules/rpd/src/render/svg.css');
require('./node_modules/rpd/src/render/shared.js');
require('./node_modules/rpd/src/render/svg.js');
require('./node_modules/rpd/src/style/ableton/svg.css');
require('./node_modules/rpd/src/style/ableton/svg.js');
window.RpdUtils = require('./node_modules/rpd/src/toolkit/util/shared.js');
require('./node_modules/rpd/src/toolkit/util/toolkit.js');
require('./node_modules/rpd/src/toolkit/util/svg.js');
window.Rpd = require('./node_modules/rpd/src/rpd.js');
// console.log(Rpd);
var elmLorenz = null;
Rpd.renderNext('svg', document.getElementById('patch-target'),
{ style: 'ableton' });
var patch = Rpd.addPatch('Lorenz').resizeCanvas(1400, 1400);
var sigmaNode = patch.addNode('util/knob', 'Sigma').move(60, 10);
sigmaNode.inlets['min'].receive(0);
sigmaNode.inlets['max'].receive(100);
var betaNode = patch.addNode('util/knob', 'Beta').move(60, 100);
betaNode.inlets['min'].receive(0);
betaNode.inlets['max'].receive(15);
var rhoNode = patch.addNode('util/knob', 'Rho').move(60, 200);
rhoNode.inlets['min'].receive(0);
rhoNode.inlets['max'].receive(100);
var stepNode = patch.addNode('util/knob', 'Step').move(60, 300);
stepNode.inlets['min'].receive(0);
stepNode.inlets['max'].receive(0.1);
var thicknessNode = patch.addNode('util/knob', 'Thickness').move(60, 400);
thicknessNode.inlets['min'].receive(0.1);
thicknessNode.inlets['max'].receive(2);
var numVerticesNode = patch.addNode('util/knob', 'NumVertices').move(60, 500);
numVerticesNode.inlets['min'].receive(100);
numVerticesNode.inlets['max'].receive(2000);
var lorenzNode = patch.addNode('core/basic', 'Lorenz', {
inlets: {
'sigma' : { type: 'util/number', 'default': 10 },
'beta' : { type: 'util/number', 'default': 2.6 },
'rho' : { type: 'util/number', 'default': 28 },
'step' : { type: 'util/number', 'default': 0.005 },
'thickness': { type: 'util/number', 'default': 1 },
'numVertices': { type: 'util/number', 'default': 2000 }
},
process: function(inlets) {
if (elmLorenz) {
elmLorenz.ports.modifyLorenz.send({
sigma: inlets.sigma || 10,
beta: inlets.beta || 2.6,
rho: inlets.rho || 28,
step: inlets.step || 0.005,
thickness: inlets.thickness || 1.0,
numVertices : Math.floor(inlets.numVertices) || 2000
});
};
}
}).move(240, 10);
var layersNode = patch.addNode('jb/layers').move(80, 700);
var sigmaInlet = lorenzNode.inlets['sigma'];
var betaInlet = lorenzNode.inlets['beta'];
var rhoInlet = lorenzNode.inlets['rho'];
var stepInlet = lorenzNode.inlets['step'];
var thicknessInlet = lorenzNode.inlets['thickness'];
var numVerticesInlet = lorenzNode.inlets['numVertices'];
sigmaNode.outlets['number'].connect(sigmaInlet);
betaNode.outlets['number'].connect(betaInlet);
rhoNode.outlets['number'].connect(rhoInlet);
stepNode.outlets['number'].connect(stepInlet);
thicknessNode.outlets['number'].connect(thicknessInlet);
numVerticesNode.outlets['number'].connect(numVerticesInlet);
sigmaInlet.receive(10);
betaInlet.receive(2.6);
rhoInlet.receive(28);
stepInlet.receive(0.005);
thicknessInlet.receive(1.0);
numVerticesInlet.receive(2000);
layersNode.inlets['count'].receive(2);
module.exports = function(elmLorenzInstance) {
elmLorenz = elmLorenzInstance;
};