[ANSWERED] File browser to open data array files?
-
does anyone know a way of opening a previously saved data array file in the same way one might import a media file? i.e. to open a browser window, locate, select and load the data file in a convenient window, rather than typing the name in the actor input & hoping it's loaded.
thanks all!
-
@nic said:
does anyone know a way of opening a previously saved data array file in the same way one might import a media file? i.e. to open a browser window, locate, select and load the data file in a convenient window, rather than typing the name in the actor input & hoping it's loaded.
Use a Control panel with a User actor ? The Data Array actor gives quite some feedback regarding or a file is loaded.
-
You can even use a Second data array to store the filepaths live and then load in the prev one when you open the file again for example..
-
@nic said:
does anyone know a way of opening a previously saved data array file in the same way one might import a media file? i.e. to open a browser window, locate, select and load the data file in a convenient window, rather than typing the name in the actor input & hoping it's loaded.
We will add the ability to open a file dialog when you click on inputs like this for the next release.
But it's actually really simple if you place your data file in the same folder as your Isadora document. When you do this, the file will be found automatically by simply typing the file name. You do not need to type the full path.
For example, if the file temp.izz has a Data Array actor, you only need to enter example-data.txt into the 'file path' input and it will be found. No path necessary.
It actually says this in the help for the 'file path', but given this has come up for several users, I guess it's not as friendly as it should be. (If you hover over the 'file path' input, you'll see the following at the end of the help text: "Paths that do not begin this way are considered to be partial paths, specified relative to the location of the Isadora document that contains this actor.)
Finally, I assume that a "File Open" dialog as shown below is what you mean by a "browser window" -- is that right?
Best Wishes,
Mark -
@mark Thanks Mark, actually I probably didn't phrase my quesion quite right. I'm making a patch which records keyboard inputs over a set time, stores the data and then plays them back in the same time. the user needs to be able to record and name various sequences and then have the option of choosing which he wants for playback by picking the name of the recording. The files can all be stored in the same folder as the patch, it's more that I need a way of presenting the files to be loaded like, as you say, a File Open dialog.
Nic
-
@nic said:
the user needs to be able to record and name various sequences and then have the option of choosing which he wants for playback
Can you not use a series of 'Trigger Text' actors to feed the 'file path' input of the Data Array actor?
Or even a 'Selector' actor :)
Assuming you have a set of txt files in place, you could then switch between them easily. -
@dusx Yes that's sort of what I'm doing at the moment but it's prone to problems as I'm making the patch for a client with a simple control panel interface - they only need it for a specific use & they aren't skilled with Isadora:
First the client need records the data, names the file & hits save. This is ok apart from the fact that they need to remember not to hit carriage return after typing the name into a text field (which is usual for most save dialogue boxes). This is a minor detail though, the main issue comes on loading as they could have previously named the file anything which means I can't set preset Trigger Texts as you suggest. There's also no real feedback on loading data files. After they've typed a file name in and pressed load there isn't anything to say if they've actually uploaded the correct data and even if it's been uploaded at all (they may have mistyped the name). I suppose we take the complexities of these Save/Open dialogue boxes for granted.
-
Kinda a weird workaround, but if you tell them to always save the file into the same folder as the Isadora file (or the desktop), you can have an Automater Applescript waiting for files to be saved into that folder. When they are, the script can check all the names of the .txt files in the folder and save the names into another "Master List" .txt file (with a set name) formatted so that each file your client saves is added as a new line to the "Master List" .txt file. That way, you can have a Data Array actor looking for the Master File that will allow your client to use the Control Panel to select which file name they want to load in. You may want to put this "Master List" Data Array actor and Control Panel in a separate Scene with a separate Control Panel so that you can add a button on your normal Control Panel that jumps you into the Master List/File Select Scene. Either that or always keep it active as a background Scene and add Controls so that you can always use it to select which Data Array actor file your client wants to select for your main Scene.
-
@woland said:
Kinda a weird workaround, but if you tell them to always save the file into the same folder as the Isadora file (or the desktop), you can have an Automater Applescript waiting for files to be saved into that folder. When they are, the script can check all the names of the .txt files in the folder and save the names into another "Master List" .txt file (with a set name) formatted so that each file your client saves is added as a new line to the "Master List" .txt file. That way, you can have a Data Array actor looking for the Master File that will allow your client to use the Control Panel to select which file name they want to load in. You may want to put this "Master List" Data Array actor and Control Panel in a separate Scene with a separate Control Panel so that you can add a button on your normal Control Panel that jumps you into the Master List/File Select Scene. Either that or always keep it active as a background Scene and add Controls so that you can always use it to select which Data Array actor file your client wants to select for your main Scene.
Here's a zip file with an example file, some sample text files, and an Applescript with some instructions for setup at the beginning.
Applescript:
(* Script written by L Wilson-Spiro, 2020-12-09 Lucaswilsonspiro.wordpress.com Technical design consultations for installations, interactive technology, and live performance Projection and lighting design Show Control and video programming Theatrical electrics and carpentry Please direct questions to lucaswilsonspiro@gmail.com I do my best to answer emails as soon as possible. 1) You'll need to put this folder (IsadoraFolder) on your desktop in order for this to work. 2) Whenever you save a new text file with the "File Selection" Data Array actor, make sure that it's saved to the folder "IsadoraFolder" on the desktop. 3) You'll need to follow the instructions here to monitor the folder "IsadoraFolder" on the Desktop in order to run this script whenever a file is added to the folder: https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/WatchFolders.html You may need to give this script permission to perform changes. 1) Go to System Preferences > Security & Privacy > Accessibility 2) Click the lock (bottom left) > enter password 3) Click the "+" button 4) In the resulting dialog, locate and select this script (FileNameList) 5) Click the "+" button 6) In the resulting dialog, go to Applications > locate and select "Script Editor" 7) Click the lock again Resources used: Applescript find Username: https://discussions.apple.com/thread/3152534 Applescript list of files in folder without extension: https://stackoverflow.com/questions/37299815/applescript-how-do-i-get-get-a-file-list-of-files-in-folder-and-remove-extensio Applescript list of files in folder with extensions: https://apple.stackexchange.com/questions/342773/can-applescript-get-folder-contents-with-file-extension-exclusion Applescript write text to file: https://stackoverflow.com/questions/3780985/how-do-i-write-to-a-text-file-using-applescript Applescript File paths: https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/ReferenceFilesandFolders.html Getting AppleScript to output multiple lines to shell https://gist.github.com/hynkle/7432418 *) -- FIND USERNAME -- set userName to short user name of (system info) -- SET FILEPATH TO FOLDER -- set theFolder to "/Users/" & userName & "/Desktop/IsadoraFolder" as POSIX file -- SET FILEPATH TO FILENAMELIST.TXT -- set textFile to "Users/" & userName & "/Desktop/IsadoraFolder/FileNameList.txt" -- CREATE MULTI-LINE STRING WITH .TXT FILE NAMES -- tell application "Finder"
-- Get full list of names of .txt files in the folder set fileList to name of every file in folder theFolder whose name extension is "txt" -- Start process of making each file name on a new line set myString to "" as text -- Put each file name on a new line repeat with myItem in fileList set myString to myString & myItem & linefeed end repeat
end tell
list folder theFolder
-- WRITE LIST OF FILE NAMES TO FILENAMELIST.TXT --
do shell script "echo " & quoted form of myString & " > " & quoted form of textFile