i to usb cable and was able to connect Grasshopper with my digital piano realtime through a simple VB.NET component, no need for any other intermediate software. I used this library http://midiservices.codeplex.com/ (but there are several others).
The VB component outputs a list of 88 values that correspond to the intensity of each piano key at the current time (if the pedal is on and a key is depressed the value is halved, if the pedal is off the value is 0).
The rest of the definition is just to do something with this data. It uses these values to display each note as different floating colors that move with the wind (using Kangaroo). The strength of the wind changes as the music dynamics change.
If there are several devices connected you might have to change the line device.Open(0) to another number.
Definition: piano_midi.gh
…
an be given as 88° and 95°. All three angles must sum up to 180, and we're already 3 degrees over balance. Or maybe the user specifies three edge-lengths: 21, 12 and 8. 21 is bigger than 12+8, so even if the triangle was stretched flat, the two short edges cannot reach the ends of the long edge. The above is easy to test for and I add errors to the component if an invalid triangle is provided. However there are also many angle+edge length combinations which result in invalid triangles.
I could of course test for these as well, but the problem is now tolerance. What if the user specifies a redundant angle of 54.7°, whereas the mathematics tell us that the actual angle is 54.7002°. Is that an error? If so, is the angle wrong or is perhaps one of the edges wrong? Or has the triangle simply been over-constrained? Is there a mathematically robust way of dealing with this? And if so, would that also be the most user-friendly way of dealing with it?…
Added by David Rutten at 2:23pm on August 23, 2014
s are identical to those in Grasshopper so I am getting an ambiguous reference error when loading the OpenStudio.dll into my component and using the Point type hint.
private void RunScript(Point3d pt, ref object os3DVector)
{
OpenStudio.Point3dVector points = new OpenStudio.Point3dVector();
points.Add(pt);
}
Error: 'Point3d' is an ambiguous reference between 'Rhino.Geometry.Point3d' and 'OpenStudio.Point3d' (line 88)
Is there any particular reason the Grasshopper reference to Point3D is implicit rather than explicit Is this something that can be changed on my end as it appears to be locked down.
Would like it to read as follows:
private void RunScript(Rhino.Geometry.Point3d pt, ref object os3DVector)
{
OpenStudio.Point3dVector points = new OpenStudio.Point3dVector();
points.Add(pt);
}
Awesome, thanks!…
te some implications and questions so I will go one by one:
"Now I would like to use a single VRay material as a template for creating multiple identical materials"I hope this will work, but as VRay does not expose any SDK, I would not guarantee any specific result.
"Now I need to add them to the document material table"This is done with a reference to a document instance, such as the one you get with the code doc.Materials (both in C# and Vb.Net).
"I'm not going to learn C# to modify his script"That's a pity, it would be nice to pass on this troublemaker to somebody else! :)Btw, C# and Vb.Net are very very similar. This script could be written in Vb.Net too.
"Reference to a non-shared member requires an object reference. (line 96)"This only means that you need to access the Materials property on an instance, not on the type (class) name. Change that line using what is written at point 2.
"Do I understand that the material has to be assigned to a particular object in order to enter the Material Table?"No it does not. But if you call the _Purge command it will be removed if it does not have an object that references it.
"Can I assign it to a Layer instead?"You do not need to. But this would be achieved with doc.Layers[whichLayer].RenderMaterialIndex = materialIndex; in C# or doc.Layers(whichLayer).RenderMaterialIndex = materialIndex in Vb.Net.
"Any ideas? A better way to do this?"If you found a way to bypass the VRay SDK not being there, this should work.
"Giulio's component has a type hint defined as a Material"It does not any longer. The hint was there in earlier versions of Grasshopper, but now the hint has disappeared. This is not so bad, and it is also the only way you would be able to use either a Material instance already or a string for a material name.
"How was that done?"Probably it was done in an older version of Grasshopper. But which version are you using?
"I can't figure out how to cast the input as a Rhino.DocObjects.Material, so you can see that I have cast it as a compatible type in the first 2 lines... is there a cleaner way?"That sounds like a good way actually. Be sure your component responds properly when something wrong is inputted, though.Dim mTemp As Rhino.DocObjects.Material = CType(M, Rhino.DocObjects.Material)in one line might also work. See msdn for more conversion operators and functions.
I hope this helps,
- Giulio_______________giulio@mcneel.com…
itual:
dll and gha files unblocked
Rhino5 64bit SR11 and GH 0.9.0076 (evaluation version)
.NET framework 4.5 or later
COFF loading turned off (either the global setting or just for Kangaroo2, following the instructions above)
I´v my kagaroo2 dll and gha files in local machine
I worked at windows 8.1 (64 )and windows 7 (86)
The kagarro2 work´s in these machines without problems
only the Grap component does not work...
I´d an educational lab licence for Rhino, and I´ll try to work with another one maybe it does not work with newest release, my licence is SR 7
I install the Rhno 5 version SR11 but will expire in 30 days…
energyPerYear... however, I can't get the shading visualization to show up under the SunpathShading component. The surface normal is correct. It works fine with a horizontal surface - has anyone else discovered this problem and been able to make it work?
I attached a couple screen shots of what the sunpathshading looks like with a vertical and horizontal PV surface.
Outputs, AC Energy per year (I tested a very small surface which is why the value is so low)
Horizontal: 0.022671 kWh
Vertical: 0.005322 kWh
Thanks in advance for your advice!
Cheers,
Maria…
roof model with pv, to make a optimal choice of pv arrangement by the best renewable energy production optimization. How to make the shading and array tilt, density and orientation of the pv panels into consideration? As photovoltaics surface component can make the output of tilt angle , azimuth angle and AC energy per year, how to visualize the performance difference on the form?
…
rkup) as below:
float coeff_perez [] is from Perez's paper in solar energy vol. 50, No.3. pp235-245, 1993.
i would like to adjust A3, A4, A5, A6 and A7 using measurement irradiance data over a whole year for every minute or hour, and update these coefficients under the file perezlum.cal. It means i may need to re-compile gendaylit.exe, which i have no idea how to do it.
i found radiance has another version on gendaymtx.c v2.13. it includes static const double PerezCoeff[8][20]. I am wondering which version of gendaymtx does ladybug GenCumulativeSkyMtx use.
Thanks for your suggestions on honeybee plugin. I will take a look and see how.
Cheers,
Le
…
h exergy/low entropy to dispersed/disordered/low exergy/high entropy. AC or DC electricity is a very highly ordered form of energy and thus is very valuable while thermal energy is a very disordered form of energy and thus not so valuable (or just much easier to obtain). Accordingly, it is really not correct to draw an equivalence between thermal and electrical energy, which is what you are doing when you add them together.
You can always use the "Separate Data" component and the native grasshopper math components to add the E+ results together but I wanted users to be aware that this is not a method favored by the scientific community.
From what I understand, the daylight threshold had never really been implemented on the back end. We might do this at some point.
-Chris…