Saving preset logical outputs with dac~ channel outputs in Max standalone (or with adstatus?)


    Jun 03 2022 | 7:13 pm
    I have everything working in this patch, even selecting the appropriate driver, but I can't get the selected channel outputs to save and not sure how to trigger them on loadbang. I'm close but can't bring it home, any thoughts out there? I'm using set messages to set the logical outputs but this doesn't hold when I build the standalone. Using adstatus to select the driver - which indicates it could be used to select the channel outs as well (see snippet from Audio Status help in upper right of patch) but no go at the moment...help? thanks y'all!

    • Jun 04 2022 | 2:46 pm
      There is no need for any of that. Max and standalone store selected driver, channel routings and all other parameters from sample rate to vector sizes, etc when app quits. As first selected audio driver is stored, then all parameters that are set for THAT driver. If audio device is present on next start all gets loaded as set last time. You can send messages like dsp setdriver, or reroute channels etc on loadbang, but that interferes with idea of storing audio settings. You expect every user of your standalone to use same Motu interface ? By the way you have a mistake, you send set 3 to adc~ channel 1. if you need to do so, simple send a list with channel numbers to dac~ object, no need for individual set messages. dac~ 1 2 3 4 5 6 7 do output to hardware channels 1-7, so what do you need to reroute ?
    • Jun 08 2022 | 6:38 pm
      (Good eye! - the error in the set 3 mssg to dac~ 1 was a holdover from testing the settings and I forgot to switch it back for this post...)
      Thanks for your reply, it verifies what I expected - that settings are expected to be saved. However, this is not happening...I've tried a dozen times to set everything in the patch, built the standalone app, and open that app - no matter what I do, I'm getting the channel 1 and 2 set to the main outs when I boot the standalone. When I ONLY use the patch for my project, everything works as you say in terms of saving all settings once I set them by hand but the standalone doesn't preserve these channel routings. For example, the error you noted - I tried setting the outputs using a message, sending a "set 3" message to logical output 1 in the dac~ but no luck setting the "3 Analog 1-2" out for this dac~ output this way either.
      I would be happy to overpatch if I could find a way to set these routings on loadbang in the standalone...additional thoughts? Thanks
    • Jun 09 2022 | 7:26 am
      I noticed following bug in all WINDOWS max 8 versions:
      if one activates "Can't close top level patcher" in standalone inspector, Max Standalone DOES NOT store any audio settings on quit as it should. Same if one does so by setting noclose flag in thispatcher for main patcher. I asked few times about that on the forum, there was no reply. As I don't want to allow closing of Standalone main window, I built a routine which unlocks main window before quitting it. Then Max Standalone stores all audio driver settings as expected. You can verify that by openning /user/AppData/Roaming/Cycling '74/ Standalone Folder (named as set in Preference Name)/Settings Stupid enough, Windows hides that folders so you need to adjust folder view optins.
    • Jun 09 2022 | 1:39 pm
      Maybe bugs in latest Max 8 standalone? I have a similar problem here on a Mac mini M1: Made a small metering Max app to monitor my interface (dac– with 16 channels). noclose flag is NOT set. Audio or audio routing do not work in the app. First I thought the DSP is off and switched it on via loadbang-adstatus. But nope, no audio in the standalone.
      Btw, there is also another problem: When I want to open the original .maxpatch of my app, it opens as an app. The only way to open the .maxpatch is to move the app version to trash.
    • Jun 09 2022 | 3:17 pm
      No that bug is windows only, Mac problem is probably a permission problem, maybe your standalone failed to ask for access to audio driver. On windows all one sets works till next app start, then it gets reverted to default mme driver, because settings were not stored.
      That problem that standalone takes over .maxpat file extension is because you probably left Standalone app signature same as max itself, Standalone has newer creation date, all doubleclicked maxpat files get opened by that standalone,.
    • Jun 09 2022 | 5:37 pm
      Source Audio, I ran into that issue too but solved it by using adsstatus to select which driver -0 works as long as the hardware is hooked up that same each time, see my patch for example. I can imagine this might change if new hardware audio drivers get added tho since #2 driver might not remain #2.
      Another issue: When I open my standalone in Windows, there is no way to close it except by force quitting using Task Manager.
    • Jun 10 2022 | 6:00 am
      Sorry, but that is not a fix at all. You either solve that issue by making max store it's audio settings, or than have to enforce all audio settings using messages on app load to set the driver including sub settings destinations etc. That would take some time, because you first need to set the driver, than wait till driver options get published into adstatus objects, etc. But that will all fail in case a different audio device has to be used. ------- Max not quitting correctly - that is also often the case in Max app itself on windows.
      I must be true in that respect - I delete most stuff from Max which I dislike to use. That includes all databases, packages, node and java etc etc etc. That made Max on Windows behave for me as I want. But because of that I can't tell you if it is database scanning, checking for updates, packages ... or whatever else that prevents Max from quitting properly. If that problem persists for you, I would trust it does so in both Max and created standalones.
      In worst case one can force quit the app using some scripting. taskkill/im yourstandalone.exe
    • Jun 24 2022 | 8:07 pm
      Thank you Source Audio for the "taskkill/im yourstandalone.exe" that's very helpful! However, that made me think....
      I'm still not able to fix this as Max won't recall the settings - I think this night be because I AM force quitting instead of normally...perhaps when makes quits normally it grabs the audio settings and holds them for the next time the patch opens...can anyone confirm this?
      So my thought for now is to loadbang messages for all of the settings but I can't figure out the proper messaging to control the assignment of the logical outputs.
      I'm trying to create an automated situation where Max is one of several programs properly closed every evening and loaded on boot the following day AND it saves the audio routing settings as having someone do it by hand each day is onerous in this situation (and will likely lead to more issues as staff click random intimidating buttons...)
      thx all
    • Jun 24 2022 | 8:24 pm
      What about a text file with your settings, written in your "personal setup language"? A [coll] can read the file at startup and line by line you can have full timing control over the whole setup process.
      With a smart command synthax that includes pause times and such, you can refine the process just by manipulating the textfile.
    • Jun 25 2022 | 1:39 pm
      You do something wrong with that standalone, and so it can't write preferences correctly or even quit properly. You have 2 options 1- fix the standalone (I will be glad to help you with that) 2- automate driver and it's settings without max preferences.
      In this 2nd case, why do you need to remap output 1 to output 1 ??? it is anyway 1. 1:1 2:2 3:3 and so on, only if you want to scrumble max dac outputs and physical outputs, then yes. Read the reference of adc and dac and https://docs.cycling74.com/max8/vignettes/messages_to_dsp#outremap To simplify, you need Driver and any sub settings for the driver. to load motu ASIO driver
      ; dsp setdriver ad_asio "MOTU Audio ASIO" the rest with sr vector etc is pinuts. that is actually all.
      P.S. when you upload your patch, don't think that audio driver menu can preserve your drivers in the list, or any other adstatus items. It will get replaced by drivers found on computer that starts the patch. I extracted that motu thing by searching your patch in text editor without loading it in max. If you want to share that stuff, load the menues, than unlink them from adstatus objects and store them separately.
    • Jun 25 2022 | 2:41 pm
      ; dsp setdriver ad_asio "MOTU Audio ASIO"; dsp prefsr 44100; dsp prefiovs 512; dsp prefsigvs 64; dsp takeover 0; dsp cpulimit 0; dsp optimize 1; #AD clocksource 0; #AD output limit 0; dsp outremapname default -1; dsp outremap 1 1;
      paste this into a mesasage and loadbang. After few seconds delay bang ; dsp start you use remaping lines only if you really need to remap anything. example would be to output to analog out 1 2 3 4 5 6 instead of Main OUT 1 Main OUT 2 etc. same thing could be done using dac~3 4 5 6 7 8 instead of dac~ 1 2 3 4 5 6 in Max for example. or you want to route dac~ 7 & 8 to Phones which could be hardware 13 & 14 depending on model used, if optical out is SPDIF or ADAT etc -------
      just to make sure - on a Mac this would be a bit different.
    • Jun 27 2022 | 8:02 pm
      SOURCE AUDIO - the ;dsp messaging, esp outremap is EXACTLY what I was looking for and needed to set the proper logical to the physical outputs - and thank you for putting these messages together, it would've taken me quite some time likely.
      I tried to do so in the dac~ object but that wouldn't work, no idea why.... I included all your messages which seem to be ideal except I get this error: "ad_dostart: no audio driver set!" YET, the proper audio driver IS set! Hmmm...
      Also getting this error. "
      Still, one concern is that the standalone doesn't appear like most programs - the "X" to close the program in the upper right of the window is greyed out. I can still Exit rhough the File menu and plan to hace my tech guy add the kill tak option to the shutdown sequence.
      I guess I'm nearly there, your help has been excellent, thanks so much!
    • Jun 27 2022 | 10:01 pm
      have not read the thread, but just in case it applies: a standalone, when beeing ported to another machine or when you make it having individual prefs, cant keep track of IO channel assignments.
    • Jun 28 2022 | 6:12 am
      As I said, I will help you to fix te standalone in first place. If all there is is that patch you posted, and there is no need to keep something secret, post the patch exactly stored as you compile it. I will look at it, and let you know if anything needs to get adjusted. that error - "ad_dostart: no audio driver set!"
      how do you try to activate dsp ? and when ? Are you starting apps on windows boot using autostart ? Windows needs some time to activate drivers for devices so you maybe need some delay before starting your max standalone.
    • Jun 28 2022 | 6:02 pm
      That makes sense Answers to your questions: how do you try to activate dsp ? >I have most objects instantiated on loadbang ... and when ? >....but have had a 2 sec delay for starting the ~dac in there for some time now - but I also added another 2 sec delay to the DSP settings mssg you sent me - and this is what triggers the as_asio output error - this also bangs the START for the ~dac since it wasn't starting as expected after the recent update. Are you starting apps on windows boot using autostart ? > Not currently implemented but this is DEFINITELY the ultimate plan.
      Included in this message is the evolved patch with the recent updates - it is generous for you to offer to help with the standalone!
    • Jun 29 2022 | 5:51 am
      A short look at the patch: it can't possibly be ready to compile a standalone !? You don't have configured standalone object and also not thispatcher to set main patcher behaviour. That is why your standalone does not behave as it should.
      Delay 2000 to toggle and then 2000 again to set driver and start driver ??? how should that work ? Audio driver has to be set before one can activate it. There you could even use dspstatus to check presence of MOTU Asio and run dsp start when detected. ----- You have to clear playlist objects, otherwise standalone will compile with paths to audio files which maybe do, maybe do not exist and so throw errors etc etc ----- You use this complicated remaping of dac~ channels instead of using dac~ 3 4 5 6 7 8 9 instead. why ?
      or even set dac~ 4 3 6 5 8 7 9 for your reversed channels ----- Can you post some answers about this ? I am out for most of the day, but as soon as I have time I will post some suggestion for standalone etc Important would be to know if more objects need to be used in the patch, anything to do with java, node or such. If not, one can reduce standalone size a lot.
    • Jun 29 2022 | 3:18 pm
      Another look at the patch still quite few mistakes, unneeded stuff etc,
      If it were my project I would trash all, use 4 sfplay~objects, 4th bang on loop turnarround and send that one messages to udp 192.168.1.101 7403 all other udp objects are out of function in that patch. that reduced, add standalone object and thispatcher. ---- I asked you to post patch exactly the way you want it for standalone, sorry, but this one does not qualify.
      If you prefer to do this without my criticism,
      insert standalone object into patch and configure it exactly like this
      then add thispatcher object and set window properties the way you want it.
      Audio driver NEEDS NO REMAP use dac~ 3 4 5 6 7 8 9 Audio init sequence :
      But if you get standalone allright, there will be no need to enforce driver setup. ------ If you post the patch which is the final one, without mistakes, objects out of use etc and which includes loading of audio files (path etc) then I will compile it for you removing all unneeded resources for slick, small size standalone
    • Jun 29 2022 | 4:06 pm
      Yes, I'm still very much a beginner and this is my first attempt at a standalone so your guidance is priceless. I followed a tutorial regarding standalones and used the File > Build Collective / Application on Windows and it has worked fine for me. but thanks for the standalone object. I've added it and adjusted settings but now get a new error (see below causing the standalone to crash).
      To your questions: I doubt I have properly configured the standalone object but have made adjustments I can understand.
      I have edited the delays for proper triggering, you're right, it was poorly done as I added more functionality.
      Playloist and paths - this patch+standalone will always play on a computer in an installation with no interference the paths exist sp this is ideal so the standalone can load and play the files as expected.
      Why the complicated remaping of dac~ channels instead of using dac~ 3 4 5 6 7 8 9? Well, I understand that what you propose should work but it simply doesn't, and I've tried several times - the : dsp message seems like a great solution to me if imperfect.
      No Java, no node or anything else in the patch. I've unchecked CEF support and Max Reference in the standalone object. Still, size for this patch is of little importance.
      Current Errors
      method getposition called on invalid object (<this is on load from the standalone and causes it to crash a new problem...)
      playlist~: "0" is not a valid quality playlist~: "0" is not a valid mode (^both above have been persistent errors but have not caused any issues I can tell)
    • Jun 29 2022 | 4:34 pm
      Damn, I was replying to you when you sent this...I will add what you have here - and I welcome the criticism - although I'm well aware that this is a beginner version and has a lot of unnecessary and imperfect use of objects, trying to make the best with my skillset.
      Here are the implementations attached - BUT I cannot get dac~ 3 4 5 6 7 8 9 to work - it only works for 5 6 7 8 9, NOT 3 and 4, any idea as to why? This is my current mapping
      And there is a new (and old) error that comes with this "ad_asio: doesn't understand "output" but now it repeats infinitely and prevents everything from getting started...
      And when I make a standalone from this it also crashes.
      Sorry for the worsening...
    • Jun 29 2022 | 4:44 pm
      And not sure what you mean by " 4th bang on loop turnarround " for sfplay object although I'm sure this would be more streamlined for the purpose...
    • Jun 30 2022 | 11:36 am
      Ok, sorry that I took it you are much more advanced with max, usually beginners do not remap audio channels. Let's take it easy.
      As first to the errors: you are loadbanging things too early, like 1 to playlist~ objects, even before audio driver got activated . That produces this errors : playlist~: "0" is not a valid mode. playlist~: "0" is not a valid quality. You still loadbang that toggle to start dsp. if you want to use detection of MOTU then go only that path and order 1- detect MOTU 2- if found, bang that dspsettings list 3- after some delay activate dsp. AFTER that start playback if it should do so automatically, but use either int OR signal, NOT both. ------- If one starts fresh with one audio device - means there are no remapings of audio channels set in preferences for that device, per default ALL availale input and output channels will get populated in I/O mappings menus. like correctly shown on your input list, but output list got messed.
      I guess because you did not set custom name for settings folder in standalone inspector, WHICH IS A MUST when creating standalone. and standalone used Max settings for everything.
      So you need to reset that in Max to start with, setting ALL dac~ channels to their default outputs, as Driver lists them. that is a starting point.
      But depending on MOTU model used and how it is configured in Motu Audio settings, that list can change. --------- Follow this path to look into settings of Max and created Standalones on Windows: C:\Users\frazier\AppData\Roaming\Cycling '74\ inside you will see Max folder with Settings and also any standalone folder with it's settings.
      In Max/Settings/ you will find prefered audio driver and individual text files for each audio device ever used on your PC. Have a look into Motu file. Can you post which model it is and what did you set in it's own settings, like any phones routings, digital assignments and so on. That could help understand why using output channels 3 and 4 makes problems. I only have motu Audio Express at hand, maybe it's settings differ from one you use. It would be helpfull if you upload MOTU settings file from max settings. ------ Your standalone probably crashes as it misses few files, Audio Status and dspiomap patches for example are terribly stuffed with java shit, collor settings and other nonesense, that forces some dependencies. I allways trash them and make own settings patches using only adstatus objects and menus. In your case, I would trash them and place 7 output menus directly in the main patch as well as audio driver setup menus.
      I know this is a lot of information, and against official instructions, but that is the way I deal with it.
      Even more, I prefer to build Standalone once, clean it up from all unneeded things, then add all needed externals and build mxf file again without any embedded externals.
      That is absolutely best way to build standalones for me. you forgot to set this in standalone inspector :
      ---------- Question about playlist against sfplay - sfplay is simpler player, has less dependencies, and if you anyway only use 1 file per playlist i don't see a reason for it, other that to look at the waveform. You have fixed audio files you don't make any selections, or use play elements. All you need is to bang when player 4 restarts the loop. Can be done easily also with sfplay~. ------ why this :
      are you playing only a section of the audio files ? not entire ? --- playlist~: couldn't find C:\Users\frazier\Desktop\Soundscape Files\Tracks\Water Files\water-woosh_01.flac playlist~: couldn't find C:\Users\frazier\Desktop\Soundscape Files\Tracks\FRNT BUS.cm1.wav playlist~: couldn't find C:\Users\frazier\Desktop\Soundscape Files\Tracks\RS BUS.cm1.wav playlist~: couldn't find C:\Users\frazier\Desktop\Soundscape Files\Tracks\LS BUS.cm1.wav playlist~: can't find file C:\Users\frazier\Desktop\Soundscape Files\Tracks\SUB BUS.cm1.wav as first, convert ALL sounds to 441/16 waves. ANY compressed format needs to get CONVERTED in Max and at the end gets played as aiff on Mac or wave on Windows. it would be better to put ALL files into same folder. Standalone will need own path to them, if ever moved to different location I strongly advice NOT to store paths to audio files in standalone collective ! You can activate this in standalone inspector
      then audio files will get found if placed in there. One can also specify search paths, store / recall them etc. or use such simple text file : 1, "FRNT BUS.cm1.wav"; 2, "LS BUS.cm1.wav"; 3, "RS BUS.cm1.wav"; 4, "SUB BUS.cm1.wav"; 5, water-woosh_01.wav; to load audio files in case you want to use other ones than original... ------ Do you really need that spectroscopes ? meter~ would be a better choice if you need a visual level feedback... If you agree I will post a patch with sfplay version...
    • Jun 30 2022 | 3:29 pm
      I have compiled test standalone with Max 831 on windows 10, using MOTU automation, all works as expected and also stores audio settings properly, remembers remap chanels if one wants to ... one can quit it using OSC message /quit 1 . Audio file path in default location : ~/Desktop/Soundscape Files/Tracks/ or in a folder next to standalone exe. GUI can be further reduced to show only needed stuff, I am sure all this remap channels stuff is not needed. this is what it looks like :
      But you need to test that first.
    • Jul 01 2022 | 8:44 pm
      Thank you once again. Your patch is beautiful and tidy, nice. SO therefore sorry to mess it up again ...I've added Volume control for basics users in case there is a need.
      I've implemented most items, see patch.
      Bundle Identifier in standalone is not present in my inspector, I've searched and not found a solution to this, using Max 8 { "version" : "Version 8.3.1 (f487da5cc84) (x64 windows)", "platform" : "windows", "arch" : "x64", "osversion" : "Microsoft Windows 10 Professional (build 19044), 64-bit", "samplerate" : 44100, "iovs" : 512, "sigvs" : 64, "scheduler_in_audio_interrupt" : "off", "audio_drivername" : "ad_asio", "audio_driver_subname" : "MOTU Audio ASIO", "license" : "permanent full", "machine_id" : "fd7016004d1dc832ba22b26ffb5711b3", "eventinterval" : 2, "schedinterval" : 1.0, "overdrive" : "off", "pollthrottle" : 40, "queuethrottle" : 100, "sysqelemthrottle" : 1000, "refreshrate" : 30.0, "schedslop" : 25.0, "eventprobing" : 0, "mixerparallel" : "off", "mixercrossfade" : 0, "mixerlatency" : 30.0, "mixerramptime" : 10.0, "videoengine" : "viddll", "glengine" : "gl2", "packages" : { "__MACOSX" : "", "AudioMix" : "1.0.3", "BEAP" : "1.0.4", "CNMAT Externals" : "1.0.5", "gl3" : "0.3.0", "jit.mo" : "1.1.6", "Jitter Tools" : "1.0.3", "max-mxj" : "8.2.0", "maxforlive-elements" : "1.0.6", "Mira" : "1.2.1", "Node for Max" : "2.0.4", "odot" : "1.3.0", "VIDDLL" : "1.2.7", "Video & Graphics" : "7.2.0", "Vizzie" : "2.2.1" }
      }
      Couldn't we just play the file this way? sfplay~ 2 1 1 @audiofile "LS BUS.wav" @loop 1
      The "selectionms" is gone, it was a temp workaround until I could get improved files from audio guy. Where is this "s W-A" send going - to the Quit Soundscape I presume?
      I want to include the audio files in the standalone...it was set and happening this way - putting the audio files in the /resources/misc folder) but now it isn't including these dependent files. ( I know I would then need to update the setsearchpath mssg then...)
      Weird issue..I can't get the first sflpay~ to open the file and it is set up like the other four ("LS BUS.wav", open $1, sfplay~ 2 1 1 @loop 1) and I get the error "sfplay~: no open file"
      Also an issue is playing the "water-woosh sound" - I need it to play until completion before it gets triggered again by another OSC message, I'm lost there, could you help?
      Lastly, I know there is a way to open the standalone in presentation mode for the top level patcher but I can't seem to find this...
      Couldn't get to this until this afternoon, sorry. How am I doing?
    • Jul 01 2022 | 9:21 pm
      oops, here is the patcher
    • Jul 01 2022 | 11:30 pm
      And thank you so much for the major sfplay~ rework!
    • Jul 02 2022 | 7:54 am
      You are getting good progress. this is the mistake in player 1 :
      Try not to loadbang play before audio driver gets activated. I would do this for auto-play, as soon as dsp gets activated, playback starts
      to lock water_woosh player, add a gate for receiving OSC messages only when not playing. 100% sure is to use current position, like in BUS player, but also stop bang would do. here are few choices
      if you don't use position output, you can remove 2 1 1
      ----- you trigger /apple 3 OSC message twice ?
      --------- message W-A (I shorted Window and Audio) is sent to patch I added into standalone which stops dsp, enables window close status and closes main window which then makes sure audio settings get stored. one has to set flag quitonlastwindowclosed 1 which makes max and/or standalone quit . But - then one has to disable max console window ... Depending on how you want to deal with quitting/starting the app with windows boot and shutdown, one would adapt this. Here is control of main patch window, sent to thispatcher object
      It includes filepath detection for edit mode in Max or compiled standalone. --------- I did not upload anything, not knowing if you accept sfplay version at all. I can send you the patch, and compiled standalone, the way I do it. But now you added few things, so it needs update. ----- I must desribe my way of making standalone : I simply copy stuff from max installation into new folder and add all files needed to run manually. Then I compile mxf file using excludeexternals true line in standalone build window. That excludes any externals, which allows even to use that mxf on both mac and win or even different max versions. Next I rename the exe file (non CEF version) , edit it with resource hacker to set version infos, Preferences folder, custom icon, even to set execute with admin rights if needed. at the very end, I pack it using EnigmaVB into single exe file to lock it from being edited or prevents users to mess with it. ---- Back to the app, if you add volume control, it should also be possible to store it, otherwise it makes no sense for such installation.
      Set values, hit store, and on next start set volumes get loaded. simple autopattr / pattrstorage and volumes.json file would do. Master volume should SCALE and not SET individual volumes. Otherwise they make again no sense. Do you want individual volumes and master attenuator ? Or only master volume ? ------ other things : - You did not post any infos about MOTU model - true, bundle indentifier in standalone inspector is mac only, I posted screenshot from mac but you MUST set other items exactly as on screenshot, the last on you posted still has "Max 8 Preferences" set ! ------- To go further with this, please post the unanswered questions, and also describe the whole bundle, network setup, what other apps are involved, and how do you see boot, auto start and shutdown process. Maybe max could control everything using shell object and system commands.
    • Jul 02 2022 | 8:10 am
      there are more questions : you start water-woosh only per OSCmessage, but stop it together with all other players. Is that correct or a mistake ?
      I guess this app should run without any manual control, what exactly do you want to see on the screen ? and where should it be positioned, is there a need to make it as small as possible ? control volumes and playback remotely, using OSC ? Anything else ?
    • Jul 06 2022 | 5:34 am
      Thanks again - and I apologize for tardy reply....it took time to go to museum to make changes and create reply on my laptop (which was quite lengthy) but laptop crashed and lost reply so I'm trying to recreate it here ... while I'm on a planned, but inconveniently timed, vacation. But, I can remote into computer for ongoing updates.
      I definitely accepted your sfplay~ version, see attached. However, the other patchers and automations are WAY above my pay grade so I would need those from you (although I'm concerned about my ability to maintain anything I don't understand very well.) Responses in order of your post: - I fixed error in playing on first file. - I implemented your auto-play solution, thanks - I implemented your fix for locking the water-woosh audio sample - Fixed the error of triggering /apple 3 OSC message twice - Message W-A thispatcher - --- Again, this is the stuff way over my pay grade. I can probably recreate what I see in your screenshot but likely not without some back and forth with you since I will overlook some details and have no Max people here to help me look. If you upload something, I would love to apply it to my installation. - - - Your compiling process seems complex and I'm glad you have a solution for getting around some limitations or hiccups tho I'm anxious it would take me a while to implement it even if I don't have trouble - Volume - "... if you add volume control, it should also be possible to store it, otherwise it makes no sense for such installation." Yes but this again challenges my skillset to apply - I edited bundle identifier within the patch on my Mac and sent back, looks good but haven't tested. --- You said, "the last one you posted still has "Max 8 Preferences" set"...yes, I think I missed this concept but it is fixed now (tho the patch above will not have it, it IS there now.
      Questions, Bundle and Network setup: - This Workstation is powerful, primarily running Max and TouchDesigner (this will be TouchPlayer very soon) but also Google Remote Desktop (I could allow you access here.....), Windows camera app, and Team Viewer - Workstation is connected to a MOTU Ultralite 3 Hybrid, two webcams, and sends video to two projectors via Touch - Workstation is connected to MOTU which is connected to a 5.1 surround system (three stereo pairs of speakers and 1 subwoofer) - Network - there is a LAN alongside the workstation (workstation has internet into separate ETH port) ith three Raspberry Pis + LED controllers connected --- Max is accepting OSC messages from Touch and relaying them to two Rapsberry Pis to sync various parts of the installation - - Someone else is setting up Windows auto shutdown + reboot process, I've asked them to outline the process, will relay to you when I know more. Question: Maybe I'm missing something - why this complex patching when I could just use the bang from sfplay~ when it is finished playing the file to push out the /apple 3 OSC mssg when the main four files are complete (note: those four are all the same length, approx. 11.5mins)?
      the change~ etc objects....
      the change~ etc objects....
      Lastly, in reply to your "there are more questions :" - Yes, you're correct that the stop being sent to the water-woosh sample was an error, fixed now. - Yes, I want the app to run without NEEDING manual control BUT I do want there to be manual control for occasional situations where that is needed - I would like the standalone app to launch during the workstation autoboot and enter into presentation mode for simplicity's sake for museum staff - "Maybe max could control everything using shell object and system commands." Yes probably but, again, I wouldn't know where to begin here.... - The computer is powerful so no need for the standalone to be tiny - No need for control remote via OSC - the OSC+UDP bits you see in there
      You're attention to this project is generous, thank you. I see your forum profile has a lot of activity and now I'm curious what kinds of work you do - is there somewhere online where I can see what you've produced?
    • Jul 06 2022 | 7:18 am
      I will look into patch and let you know if I detect any mistakes. They happen easily if one gets tight with time. like this
      there is NO semicolon there - "MOTU Audio ASIO;" will never get matched and dsp startup process will not work. Each version you post is different, also all 3 players reversed dac~ outputs change every time. What is correct order ? You don't need any presentation mode in this simple setup, Simply hiding objects you don't want to see is enough. But main problem you had was storing of audio settings and MOTU channels. Is that ok now ? I see you removed mappings ? Are you using compiled standalone yet ? ------ ----- To make it short, I'll be glad to help you with this, and configure- compile the Standalone but as it takes some time and effort, I 'd prefer simple, clear facts, and I hope that you accept some decisions made on my side. Whenever time allows it, I'll offer to explain all parts of the patch, but for the time being, important is that you have a working standalone. If you send me that few infos : 1- dac~ output of all players like : LS BUS 1 2 to dac~ 2 1 FRNT BUS 1 2 to dac~ 4 3 RS BUS 1 2 to dac~ 6 5 SUB BUS 1 to dac~ 7 warterwash to all 6 channels L R etc then 2- volume control : individual per player and master attenuator using decibels, or only master attenuator ? Or maybe master attenuator and water-woosh individual pre master volume ? 3- what should be left visible on the gui ? 4- name of the folder with audio files like "Tracks" or "Audio" You say you need manual control, what woul that include ? Only Play, Stop and Volume, + Store Volume seem usable ... the rest is as is , nothing to change. ----- If you don't need Mac standalone, no need to insert bundle indentifier, upload ziped custom icon if you have one, otherwise I'll place colored "S" as icon. --------- Question about bang at play end : sfplay~will NOT bang if it loops. that is why this "complex" detection of play position ---- Setting auto-start sequence in windows is no problem, even timed order per scripting, so if you have someone do that, I don't need to know anything about it, unless you need help with that, but take care to manually quit the standalone first time, in order to let it store settings. ------- Do I understand correctly that you develop on Mac and compile on windows ? There are some differences that one needs to adjust in that case. ------- Sorry, but I don't publish any links to work I do or did. I prefer to stay anonymous in any kingd of online forums.
    • Jul 14 2022 | 8:25 pm
      I have a Mac laptop so I started doing most of the development on there but when I moved over to windows I’ve continued most of the development on there and sometimes I’m at the museum working directly on the computer and sometimes I’m editing the patch remotely from my Mac. Ultimately this is a Windows standalone and the subtleties between the two platforms are becoming clearer to me as we proceed .
      You’re right about the presentation mode so hiding is a good idea.
      I do have a custom icon and will upload that once I get back to my laptop.
      With my windows technical guy we figured out the auto start sequence Dash although the file and folder organization may need to be improved for clarity.
      I will certainly accept some decisions you make on your end, I’ll be able to answer the rest of your questions when I get back to my laptop, thank you for your patience and attention once again.
      And I understand your desire to remain anonymous, I was just curious because your skills are so high level you must make some interesting stuff with Max.
    • Jul 15 2022 | 6:55 am
      There are actually not that many differences for max-win versions, for your app it is more dealing with patcher screen look, and few other little things. You can compile mxf for it on mac and place it into standalone folder on windows, it would work without problems. That is what I do for my multiplatfom apps keep standalone structure as is and just replace mxf and add info version, in case new externls are needed, then simply add them. To do so, one needs to build collective with excludeexternals true line added to standalone build script.
    • Jul 18 2022 | 8:15 pm
    • Jul 18 2022 | 8:59 pm
      Finally some more answers and files for you - I'm back home and with my laptop and in and out of Museum til this is done, really crunch time now for me...answers in italics
      there is NO semicolon there - "MOTU Audio ASIO;" will never get matched and dsp startup process will not work. <For some reason, this was still working despite the flaw in syntax
      I included the Soundscape Preferences folder so you can review for accuracy, and an older one for comparison
      If you send me that few infos : 1- dac~ output of all players like : - LS BUS 1 2 to dac~ 2 1 - FRNT BUS 1 2 to dac~ 4 3 - RS BUS 1 2 to dac~ 6 5 - SUB BUS 1 to dac~ 7 - waterwash to all 6 channels L R ^This audio routing is correct as you have it here
      2- volume control : individual per player and master attenuator using decibels, or only master attenuator ? Or maybe master attenuator and water-woosh individual pre master volume ? <I think you get what I'm trying to do here - I want to be able to control all volumes at once from the GUI in the event that this capability is needed - you no doubt have a more efficient way to do it - your latter suggestion above seems best to me
      3- what should be left visible on the gui ? < Start, Stop, Pause, and a master volume control 4- name of the folder with audio files like "Tracks" or "Audio" You say you need manual control, what would that include ? Only Play, Stop and Volume, + Store Volume seem usable ... the rest is as is , nothing to change < Start, Stop, Pause, and a master volume control ---- If you don't need Mac standalone, no need to insert bundle indentifier, upload ziped custom icon if you have one, otherwise I'll place colored "S" as icon. < I've uploaded my .ico file
      Filepath question: My windows autostart guy wants everything to be contained on a separate partition (D: drive) so I would like to include the /tracks folder in the .exe build but when I add it in the "build dialog box" it ins't found in the .exe build folder afterwards. I know I will need to update this: ; max setsearchpath 5 "~/Desktop/Soundscape Files/Tracks/" <none> to this in my new setup.: ; max setsearchpath 5 "~/Desktop/SOUNDSCAPE/Tracks/" <none>
      Another question is what can I/my Windows guy add to the scripting to send a message to Max to shutdown appropriately? Would it still be the "killtask" cmd?
      Thanks!
    • Jul 19 2022 | 7:54 am
      Thanks for all the infos. Here short answers - path to Tracks Folder will work without any problem on any partition, but it needs to be placed next to mxf file in standalone. Forget any build scripts and such, copy it manually. Or full path to standalone needs to be created on load. But make sure that in the path no chars other than normal letters, numbers, and - _ exist. The search path to "~/Desktop/SOUNDSCAPE/Tracks/" was included in the patch, so that you can use samples at original location while editing. One can remove that now and use absolute path to Tracks folder, both for editing and standalone. ------ - Volumes Master volume for all tracks, and waterwoosh pre master attenuator would give you enough control. ------ Quit max .... as all is done using system scripting, taskkill seems only option for you... But you must let max quit once normally in order to create audio preferences. ------ Let me get the files you posted and try to do the rest.
      I'll be back soon.
    • Jul 19 2022 | 8:01 am
      P.S. old settings show that audio driver selection was not stored correctly. New settings looks perfectly ok, and I think you don't need that startup messages to selesct MOTU asio any more, but maybe should be left there in case once MOTU disconnects, and audio driver switches to built in mme. Soundscape logo is too small for icon, can you not post original graphic with 512 x 512 pixels ?
    • Jul 19 2022 | 2:11 pm
      download link files.fm/u/vvffvpnjh#
      2 compiled versions, 1 normal Standalone folder with all files, second one is packed into single exe file using enigmavb exe packer.
      both versions should remain in own folder , just place audio files into Tracks folder. Max patch is uploaded too,
      you have to unlock it and make toggle that switches main window mode visible.
      here it is allready unlocked
      to quit Soundscape.exe letting it store the settings hold "Quit Soundscape" button > 1000 ms and release it. few extra dll files in Standalone are needed to run it also on pcs without installed Max and VB runtimes.
    • Jul 19 2022 | 3:15 pm
      Woah, yes, this is excellent! I've downloaded the files and will go over to the museum this morning to place in the appropriate location, move the audio files, and test.
      I can update the logo myself no problem.
      I agree that the startup messages to select MOTU asio should be left alone.
      Since I don't have enigmavb I think the former version is best in this instance so I can place the tracks in the folder - but I love this solution
      The search path to "~/Desktop/SOUNDSCAPE/Tracks/"... in my new case, I would simply change the current 'open "FRNT BUS.cm1.wav" ' to 'open "~/Soundscape/FRNT BUS.cm1.wav" ' for each file, correct?
      It appears that the solo patch you sent (I'm briefly looking this over before I go to museum) does't auto start the DSP and play the files - I think this may have something to do with not having the files where they need to be so I'm going to go to museum now, be back on here SOON.
    • Jul 19 2022 | 3:46 pm
      you don't need to do anything except to put audio files named EXACTLY as visible in standalone into Tracks folder.
      Enigmavb is no big deal to use, makes standalones safer. In am off now, but post any questions etc, will look into it tomorrow
      patch activates motu driver and plays files only if both things exist...
    • Jul 19 2022 | 3:57 pm
      Okay, I supposed so - thanks again, I'll post an update!
    • Jul 19 2022 | 7:02 pm
      Looks like everything is good to go here! Well maybe one small thing - the window can't be moved from the extreme upp left hand corner of the screen, therefore it hides some content beneath the screen - is there a setting I can 1) change to be able to have a menubar so the window can be moved or resized? or... 2) update to get the screen to open in a more convenient location?
    • Jul 20 2022 | 6:13 am
      Sure, moved but no need to be resized, it can't get smaller with current gui, unless you really want minimal size and gui, one could reduce it to that few buttons, sliders and driver menus. Screen coordinates can be fixed, or one can detect screen size and place the patch at any location, top left, bottom right, middle ? depending on task bar size and visibility. Just tell me what you prefer, but moving it by hand every time is not really handy option, uness one stores last window position and recalls it on next app start, ... all possible.
      I tend to hide the menubar to avoid unwanted app quit, but you can have it whatever way you prefer. -------- packing standalones using enigmaVB ... have a look in this old thread: https://cycling74.com/forums/fyi-successfully-protected-a-standalone-max-app-on-pc
      instructions remain more or less the same, I could make a short tutorial for you too...
    • Jul 20 2022 | 3:25 pm
      update
      https://files.fm/u/y6vw66x8c
      boxed exe version. store button now also saves window position, which gets restored on next app start. patch used :
    • Jul 20 2022 | 4:31 pm
      Oh man, this is great...I've just gotten it put in place and everything seems working fine. I'm doing it remotely but all indications are good and the menubar access for moving the window is perfect.
      So this .exe is "boxed" meaning it contains ALL relevant files for the entire software rather than the typical .exe, .mxf, .dll and other files, correct? So then I can remove all extraneous files and folders currently on my installation workstation drive, yes? And, now is there no way for me to get into any of the .exe files to edit as I would in the "unboxed" setup, correct?
      I reviewed your post about boxing in the forum, impressive and great for advanced users and protecting patches that deserve it - I hope I get there someday!
      You have my thanks - is there any other way I can show my appreciation Source Audio??
    • Jul 21 2022 | 6:28 am
      Yes, you need only this boxed exe and folder with Tracks next to it.
      I was a bit short on time yesterday, that's why I uploaded boxed version only. I'll upload unboxed version later today, you have the patch allready.
      I know it is not so easy to follow, but I'll explain every bit of it if you have any questions.
      If you want to changeor add something, important are 2 things
      1- to allways build mxf file using excludeexternals true line on top of build script
      that way you can even edit and build mxf file on mac, place it in windows standalone. 2- to check if any externals not allready copied to standalone are used, then copy them. ----- File paths : on app or patch start it checks if it runs as patch in max or a standalone. If a patch, it builds a path to itself and folder Tracks in same folder, and also Volumes.json file is stored and read from there. In case it is a standalone, it does all this related to exe file location. So best practice is to allways use this method, a folder with main patch with all needed subpatches, media etc inside. Same when run as standalone. ----- I was glad to help, trust me it did not take me too much tme to modify your patch to your likes, no need for any thanks or so.
    • Jul 21 2022 | 10:06 am
      unboxed standalone download link
      https://files.fm/u/k4p9pdcss
    • Jul 21 2022 | 3:54 pm
      Wonderful, this is perfect! And, I don't think I will be making any additional alterations but wanted to have the final version unboxed so I can dig into it in the future and be able to understand it better IF any mods down the road are necessary.
      You've been amazing assistance Source Audio 🤘
    • Aug 08 2022 | 1:50 pm
      After implementing and visiting several times to verify the installation is working as expected, there appears to be a couple small problems 1- with the UDP/OSC messaging - The motion trigger camera was triggering an OSC msg to Max that triggered the water-woosh sound AND then routed that message to a raspberry Pi to trigger and LED sequence - this is no longer happening. In earlier patches I had this msg printing so I could verify it was coming thru as expected but you took that out when finalizing the package. I'm not sure why this is happening now - maybe my Touch Designer guy made an error in his software but I want to be able to verify that the message is coming through on my end.
      -I tried opening the .mxf file but Max is crashing each time - I thought I could edit this on my end.
      - I added the unboxed max patch to the Soundscape folder and opened it. I'm thinking I could add back the print object so I can see if the OSC msgs are making it TO the patch, then I can know that the error is on my programmers end, not mine (he has been difficult to work with on this). - It still has the window pinned to the top left and I can't resize it making it more challenging to edit. Could you edit this patch to contain the menubar so I can move or resize? or a button to give me the option? - Could you add a trigger to sync all tracks each loop?
      and 2- The subwoofer track is getting out of sync with the other tracks. I noticed this early on when an older, longer track was mistakenly added to the /Tracks folder by me. I replaced this with the correct track file and relaunched the patch. This still happens but is less noticeable I think (tracks are ~12 min long so it takes time for this to happen.) When I view all the tracks, they are all the same length - is there a possibility that the patch "remembers" the older file and plays that older file instead of pulling the tracks from the /Tracks folder? I've verified that the tracks are all the exact same duration....
      Sorry, and thanks
    • Aug 08 2022 | 2:50 pm
      No problem. let's try to fix this all. 1- osc messages - usually they make no trouble, but you need feedback on any errors when udp objects initialise and also you need to monitor received messages. 2- window position offset is working, but I guess you now have stored file out of prefered path. what should I do about that ? 3- audio out of sync .... if audio files are perfectly same length they should loop without getting out of sync. same length means same number of samples. In your case, we could turn looping off, and let 1 track which now sends trigger to udp bang when done playing, and that bang should restart all tracks - so they loop, but also restart together. Would that be ok ?
      All tracks get read from /Tracks folder, I can't imagine where would they get loaded otherwise ... ----- But to troubleshoot, I need to know what is running now, is it boxed standalone, unboxed standalone, or max itself running unlocked patch ? and if problems you describe happen no matter which of above run.
      ---- About the look etc, you can have standalone with menubar, max console etc - without any restrictions as you prefer. P.S. this is screenashot of udp receive - resend is all as it should be - I mean IP and ports ?
      if receive would not work wosh sound would not play, so probably error is somewhere else
    • Aug 08 2022 | 3:21 pm
      here is max patch with visible unlock interface and resetter, with loop changes as described. if you place it next to tracks folder and run using Max you can see what is wrong
      on my side window position storage works as expected. I can't verify udp ...
    • Aug 08 2022 | 3:40 pm
      Excellent, I'll get it in an test later today, site install elsewhere today, will report back this eve
    • Aug 08 2022 | 3:45 pm
      Just tell me if you prefer standalone with full menubar, console print etc, or only to monitor UDP messages. I am not at home tomorrow , so it will take a bit of time to do it.
    • Aug 08 2022 | 11:14 pm
      I just implemented the console print but won't be able to test until I can activate the system in the morning, will update. As for your question, I would be happy to have the console print for the UDP messages, or just the UDP messages is fine too.
      By the way, I'm successfully binding to the port, I get "udpreceiver: binding to port 7500" each time the software loads.
      However, I'm getting this note in my console now, should I be concerned? D:/Player/Commonwealth/Soundscape/resources/interfaces/maxwindow.svg you have multiple files in your search path with the name meter~.mxe64 using this file: C:/Program Files/Cycling '74/Max 8/resources/externals/msp/meter~.mxe64 here are the other files with this name: D:/Player/Commonwealth/Soundscape/resources/externals/msp/meter~.mxe64 you have multiple files in your search path with the name comment.mxe64 using this file: C:/Program Files/Cycling '74/Max 8/resources/externals/max/comment.mxe64 here are the other files with this name: D:/Player/Commonwealth/Soundscape/resources/externals/comment.mxe64 you have multiple files in your search path with the name sfplay~.mxe64 using this file: C:/Program Files/Cycling '74/Max 8/resources/externals/msp/sfplay~.mxe64
    • Aug 09 2022 | 6:01 am
      this messages are result of adding search paths to Max. Actually nothing to worry about as long Max you use and standalone are same version. Extra search paths are added by soundscape standalone in order to load audio files by name, without absolute path. One could change that, and use absolute path, to avoid that in the future, without adding any search paths. You get this messages in Max... you will not have them in standalone.
      If it disturbes you, remove all added search path in max.
      Now - what is problem with OSC ? Are messages now received and resent as it should be ? Where was the mistake ? As soon ass you post infos, I'll get it compiled