@jamshark70 the reason why I mentioned firewall was because nufets was suggesting what to do if firewall was the problem.
What’s the difference between doing it like this and pasting the folder in extensions?
@jamshark70 the reason why I mentioned firewall was because nufets was suggesting what to do if firewall was the problem.
What’s the difference between doing it like this and pasting the folder in extensions?
You can install/uninstall by clicking a couple buttons in the interface, rather than opening a folder and physically copying or deleting files.
In terms of running code, there’s no difference, only convenience. So the distinction is not anything to lose sleep over.
hjh
@jamshark70 I opened up Preferences > Interpreter and does not show anywhere to add library path. Heres how it looks like:
Where do I add it?
@jamshark70 I followed what you said, and opened LiveModularInstrument.scd.
i did ctrl+b, waited till green lights are on and tried running ln 34:
LiveModularInstrument.boot(8, startChan+[1,2,3,4,5,6,7,8], (128!7).add(2)/*sets the blockSize*/, 'normal', [OSCReceiver_Mod, Joystick_Mod.setPaths(["logitech-extreme-3d-pro2"]), TypeOSCFunc_Mod, MIDI_Mod], "/Users/spluta1/Library/Application Support/SuperCollider/saved LMI Sessions/Oct_27_23");
and this is the error i get:
Execution warning: Class 'MKtl' not found
WARNING: keyword arg 'multiIndex' not found in call to Object:doesNotUnderstand
ERROR: Message 'new' not understood.
RECEIVER:
nil
ARGS:
Instance of String { (00000298D7A17DC8, gc=E8, fmt=07, flg=00, set=02)
indexed slots [5]
0 : l
1 : o
2 : g
3 : i
4 : 0
}
Instance of String { (00000298D7A17508, gc=E8, fmt=07, flg=10, set=02)
indexed slots [24]
0 : l
1 : o
2 : g
3 : i
4 : t
5 : e
6 : c
7 : h
8 : -
9 : e
10 : x
11 : t
12 : r
13 : e
14 : m
15 : e
16 : -
17 : 3
18 : d
19 : -
20 : p
21 : r
22 : o
23 : 2
}
PATH: C:/Users/[USER]/Downloads/LiveModularInstrument-main/LiveModularInstrument.scd
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Object:doesNotUnderstand
arg this = nil
arg selector = 'new'
arg args = [*2]
< FunctionDef in Method Meta_Joystick_Mod:setPaths > (no arguments or variables)
ArrayedCollection:do
arg this = [*1]
arg function = <instance of Function>
var i = 0
Meta_Joystick_Mod:setPaths
arg this = <instance of Meta_Joystick_Mod>
arg pathsIn = [*1]
var nintCount = 0
var logiCount = 0
< closed FunctionDef >
var blackChans = 16
var analogChans = 0
var micChans = 0
var aesADAT = 0
var startChan = 16
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "(
var blackChans = 16;
var a..."
var doc = nil
var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'new' not understood.
RECEIVER: nil
What could be causing this?
MKtl must be defined in another package.
Since LiveModularInstrument isn’t my software, and I’ve never used it or looked into its code, I don’t know which package or where to get it.
You could perhaps go to the repository’s issue-reporting page, and add a bug report to the effect that MKtl is an unmet dependency.
hjh
Looks like modality:
But also you are referencing “/Users/spluta1/…” Which is probably not your user directory? And looks like you are trying to connect to a very specific joystick model, which also might not be your intention.
Ah – I didn’t see all of the long line.
If you don’t have a “logitech-extreme-3d-pro2” joystick, then it doesn’t make sense to ask the instrument to open a connection to it.
It looks like the line is asking for some specific resources that you don’t have. So, simplify.
EDIT: To be more specific, the list of controllers can go away (replace the array with nil). And as Eric pointed out, the pathname at the end needs to be either removed or updated to match an actual patch file on your HDD.
LiveModularInstrument.boot(8,
startChan+[1,2,3,4,5,6,7,8],
(128!7).add(2)/*sets the blockSize*/,
'normal',
nil, // was array of controllers
nil // was a path to a patch file
);
hjh
Sam already said he doesnt support it for others to use, so Im not sure if he would try to fix that.
Thanks, Ill try this out.
Its not my directory. And my intention is to not connect to a joystick, but to use the software as he demonstrated.
I’m totally cool with you trying to get my software to work, but as you are seeing, the code is designed for my personal setup and is in constant flux. It isn’t designed to be stable or welcoming for others to use.
Sam
I think the point that Eric was driving at is: if you know in advance that this pathname doesn’t point to an existing file in your system, then the likely result of including the pathname in the instruction is a “file not found” error.
Therefore it’s not a good idea to include the pathname in the instruction.
That is, it’s not enough to copy/paste an instruction from Sam’s repository. Those examples aren’t provided with any expectation that they will work as written on any computer other than Sam’s own. If you want to try this instrument, then it’s up to you to edit the boot code to suit your environment.
Then the problem is understanding what those items mean, and which ones of them can change in what ways. It may take some experience to suss that out (which is why spacechild1 advised against beginning with this project). The SC forum can’t help very much with this instrument, tbh, since it’s a personal project that’s not in wide use. Not that people don’t want to help, it’s just a big chunk of code and nobody except Sam knows what’s in it.
Other ways to begin are the Getting Started tutorial series (SC help), or a PDF that’s floating around in various versions called “A Gentle Introduction to SuperCollider” – searched it for you – https://ccrma.stanford.edu/~ruviaro/texts/A_Gentle_Introduction_To_SuperCollider.pdf
hjh
@Sam_Pluta Yes, I understand that. I appreciate you giving out your project for free. I was just wondering if i could get it to work as it does seem like an interesting project.
I saw your video that you uploaded in 2013 where you demonstrated the project, and as far as i can see you don’t mention any joystick device like logitech extreme 3d pro 2, so i was wondering if i could get it to work without it. As you said in the video, “I dont use my mouse and keyboard” and instead use external controllers. So it is possible to use it without it, but understandably you dont do that.
Yes, I know that it is referring to a directory that isnt on my computer. That’s why it says
PATH: C:/Users/[USER]/Downloads/LiveModularInstrument-main/LiveModularInstrument.scd
CALL STACK:
DoesNotUnderstandError:reportError...
in the post win.
But what about the rest? Is there a way to make it work without an external controller?
Yes, I know its not straightforward. Thats why I was asking to see if there was a way to make it work.
My suggestion from four days ago was to remove the controller array and the path to the nonexistent patch.
LiveModularInstrument.boot(8,
startChan+[1,2,3,4,5,6,7,8],
(128!7).add(2)/*sets the blockSize*/,
'normal',
nil, // was array of controllers
nil // was a path to a patch file
);
What isn’t stated in this thread is – 1/ did you try this? 2/ what exactly happened when you did?
For 2/, if there are errors, please repost the entire error dump without editing, except for things like usernames. The 3-line “path” and “call stack” don’t provide any useful troubleshooting information. The path is the location of the code file that you’re executing, not the path that the instrument is trying to load. The very top of the call stack is boilerplate relating to error reporting – it isn’t the error itself. See the Understanding errors help file.
hjh
@jamshark70 Yes, I did follow your suggestion, but i was responding to what you and Sam said and I forgot to add it. Ill post it when i get the chance.
If your referring to the error I posted above that starts with
Execution warning: Class 'MKtl' not found
then that’s the entire error i got except for the server booting information.
MKtl is the Modality Toolkit, which is an awesome quark for mapping controllers.
The biggest issues with getting the software to work is getting all the dependencies, which I haven’t documented. The simplest version to start the software would be:
LiveModularInstrument.boot(1, 1, [128], 'normal', [], nil);
What you had posted before would have booted 8 servers. This boots 1.
Sam
I see – that’s old news, though, since the direction to take it is to remove the reference to the joystick and thereby not try to access MKtl at all at this point. (Edit: Also, Eric pointed you toward the Modality toolkit several days ago – with a link – you could have installed it at that time, and then you’d have already resolved the “nil doesn’t understand ‘new’” error – I’m curious, did you follow that link?)
Sam just told you the simplest boot instruction, so use that instead of my suggestion.
hjh
I mentioned it because you said
I know you know about it, but you implied that it wasn’t the full error, though it was. And yes, I did check the link eric provided.
@Sam_Pluta
I tried out what you said and despite some errors, it ran and opened a pop up that says ‘which interface?’ which gives me a couple of options: MME: Microsoft Sound mapper - output, MME: Speaker Realtek Audio, etc. And then there’s another drop down that is automatically selected with ‘88200’. Should I leave the number as it is?
Ok, I see.
I thought you had moved on – since the original statement didn’t work, and Sam provided you with an alternative, there’s no need to continue with the first error dump. It’s already understood: it’s saying that you need to install Modality (still unclear whether you did or didn’t).
So I guessed that your “path / call stack” post was about a different code statement and then would be a new error dump.
See Audio device selection: Windows to understand the menu options.
Probably the sample rate (88200 is one of the standard sample rates) should match the setting in the Windows audio control panel.
hjh
@jamshark70 I did not install modality.
I checked the audio device selection and do you think its better to use ASIO instead of MME, because it says that MME’s typical latency is high.
Is this located in speakers properties?
Yes, avoid MME and DirectSound. Always use ASIO when you have a device with an ASIO driver, otherwise use WASAPI.