hardware and software for electronic music 

chrisbob12's Recent Posts

Fri, Dec 21, 2012, 00:49

scaling the prototype

Very interesting paper, and I'm interested in building one. From looking at the Board product, it's clear that aesthetic appreciation is a consideration ;) I'd like to build the prototype into a 6-7" square box to match a monome kit. I think that scaling down the antenna dimensions would impair or stop it functioning, and the best way to do this would be to reduce the number of strips to make something like a 6 x 6 matrix, although that might be musically useless. Could you advise?

How feasible would it be to give it tuned onboard oscillators to drive the antenna and mix the output into one audio output stream?

Tue, Oct 29, 2013, 02:08

@Randy

Very useful to hear about the ground foil; that makes the build much easier! I was going to etch a PCB to do the antennae on the base too, so it's nice to see that thinking confirmed. I've just ordered some 1.5mm EPDM foam to move this thing on. Looking forward to progressing this.

Tue, Apr 30, 2013, 03:23

Nice one! It certainly stimulated some DIY thought. It looks like the elastic layer has simple air gaps for each junction, which, if that is the case, is quite surprising. More interesting for me, is that it appears to have a PCB for the lower receiver layer, which I'd been thinking of doing anyway.

Thanks for putting that up.

Wed, Mar 06, 2013, 15:01

Hi Randy, You're right about the code side being frustrating, but I think it's fair game if I'm going to mess my n00b hands in the murky depths of C. I have a list of things to check through to see if I can resolve these external objects (finally trying the microsoft site's advice).

However, I have also started researching the materials to build a prototype, and I have MOTU traveller, so there shouldn't be problems in doing the audio tricks to test it. And I need to figure out the design aspects of getting things into the case of my choice (to match my old monome kit, of course).

I shall be interested to see what you do with the soundplane software. Thanks for releasing this stuff!

Sun, Feb 24, 2013, 07:46

Hi Randy,
Thanks for the advice.

I wanted to confirm which objects I should focus on compiling and so tried loading the max patches into Max5 (without any objects to see which errors it gave for unfound objects. It couldn't find the mesh~ and process~ objects. From this I deduce, these are the only objects I need to build, with centroids being unnecessary, and the jit-utils.h file being the only item needed from that folder. Should have done that first eh? :-\

I commented out the ProcMeshWGM.h include.

Exec summary
compile for both mesh~ and process~ stop with a load of unresolved symbol errors, whilst the compiler is compiling a library and object. I'm pretty much out of my depth with that.

TL;DR

I have compiled a number of the examples in the SDK, and they all compiled fine, and I checked in Max that they do actually work. I did a jitter object as well just to be sure.

So: process~ and mesh~. What I've done is start with the 'collect' example in the SDK, and replaced text 'collect' with 'ml_k1_mesh~/process~' as appropriate, and renamed files as appropriate. Then brought in your source files, renaming .cp as .cpp for process and .c for mesh~ (just to see if it made a difference - changing all the references as appropriate in the 'collect-originated' files.

Next I use VCC express to open the solution file (originating from 'collect' but with new text), following which it goes through a conversion process. mesh~ converted with five benign errors, process~ looked a little murkier, but progressable.

I had to go to project properties and add the jit-includes folder to the max and msp-includes the VCC-general properties and Linker properties. jit-related errors are eliminated.

So I have a couple of folders with the files all dressed up and nowhere to go.

Happy to share the results so far. I really don't know where to start looking for the unresolved symbol errors.

Mon, Feb 11, 2013, 04:16

Following on from my previous post, I've got a couple of specific questions:
You have a folder and files called "ml_jit_utils.h" but also #include "ml_k1_jit_utils.h" in some other files. Am I right in thinking these are one and the same file?

ml_k1_mesh~.c includes this file "ProcMeshWGM.h" but it is not present in the downloads. Could you clarify how I should proceed with this? Is it something that is generated from an initial compile of something?

Regards, Chris.

Mon, Feb 11, 2013, 00:36

Just touching base to let you know I haven't given up on porting the code; bit of a journey though.
I've switched to using MS VC++ 2010 express and am using the Max 5.1.7 SDK, and am compiling by a process of elimination: follow the compiler output, and address the code issues. It feels like progress, and I've found at least one blooper in the SDK.

I'd appreciate some guidance; your source provides four folders for jit_utils, mesh, process, and centroids - I'm trying to compile the .cp files in each of the folders:
Should I compile them in a particular order?
Do any of them depend on another to compile?

Regards, Chris.

Sat, Dec 29, 2012, 17:27

Obviously, I wasn't clear; I did download the MaxSDK (for Max5) and compiled the simplemax example using MinGW (containing MSYS) following the C74 instructions for using Cygwin.

I have now replaced the Max5 SDK with that for Max6 - the directory structure seems slightly different, but I think I got past that.

As you suggested, I have compiled the 'collect' source. It appears to have compiled and works (stacking up the inputs in the order in which they are clicked until banged via collect into the message box, or giving a count of how many input clicks since the last bang). Simple stuff, but I'm quite chuffed to see it working.

The SDK collect example includes some instruction, the key thing being that one simply gives a 'make' command in the MinGW CLI, rather than a long string of commands and modifiers, because this is a C++ file.

I tried my new tricks on ml_jit_utils.cpp

It looks like I will need to create a makefile, and have busked one from the collect example to try and compile ml_jit_utils, since this one has readable source files. The process falls over in trying to find jit.common.h and z_dsp.(file extension) which are in the jit_includes and msp_includes folders of the SDK. I suspect there is unnecessary content from the collect makefile, as well.

This may take a while.


[edit 30 12 12]
note edit in earlier post.
VCC 2010 beckons as the way to build and link the project.

Fri, Dec 28, 2012, 15:26

Hi Randy, Thanks for sticking with this.

I'm happy to experiment with materials and signals, but see the Max Patch as equally important as the hardware. Compiling the Max objects is the big unknown for me, so I would like to know that there is a destination.

If you can dig up something better, I would be grateful, and give it my best shot.

In your current source files, the jit-utils folder seem to have ordinary c++ files, which I can read in notepad++, and will have a go at compiling next. The other three folders have stuff which I don't recognise, and can't open in human-readable form in a text editor, so I'm not confident that they provide anything that can be compiled in Windows.


[edit - 30 12 12] scratch the above para. I can open the .cp files in notepad++ - not sure why it failed the first time.


I'll be happy to share back any working Max objects that emerge for Windows.

Regards, Chris.

Thu, Dec 27, 2012, 06:06

I now have visual c++ installed and running, so it could be part of the solution.

Wed, Dec 26, 2012, 14:37

Hi Randy, I thought I'd get the difficult stuff out of the way first, and generate the objects for Max: as luck would have it I run Windows XP and have only ever compiled one thing in C.

So I had a go with the simplest example in the Max 5 SDK and using the instructions for cygwin here:

http://cycling74.com/sdk/MaxSDK-5.1.7/html/chapter__platform.html

this appears to compile fine with MSYS (left over from abortive attempts to compile something else) - which co-ordinates gcc compilation. Hurrah. However, not so straightforward with the objects downloaded from here, and I could use a little hand-holding.
Lacking a centroids.c file, I can get it to 'engage' with the centroids~.cp file, but it throws up a shedload of errors, including not being able to find some jit stuff. Potentially, there's a lot of combinations of file in folder which I can try, but if I'm doing something obviously wrong, I'd like to know. If the answer == use MS visual C++ express that will be possible, though burdensome.

Additional info:
I put the ml_k1_centroids~ folder, and the ml_jit_utils folder in the SDK examples folder

I used the Max 5 SDK because I had it on a hard drive, happy to use 6 or 4 though.

Regards, Chris.

Mon, Dec 24, 2012, 02:13

@randy
Thanks for the advice. I acquired the remnants of some adhesive copper tape some years ago, and this looks like a good way of using it.
I note you used aluminium foil for the ground planes: presumably, there's no reason why this couldn't be done with adhesive copper too.
I'm unsure as to whether or not the ground planes need to be on separate layers relative to the antenna strips. The diagram in the paper suggests that a ground plane and antenna strips can all sit on a polyester sheet, but the layer listing suggests the aluminium foil may be a separate layer.
I quite fancy covering it with a piece of hide as used on traditional drums: an experiment needs to be done!