Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 25

Thread: Programming a back-end for online mastering service

  1. #11
    An adaptive EQ matching equal loudness contour (Fletcher-Munson curve) would be nice in the mastering chain.. Izotope Ozone? Too expensive..

    I found a free program on GitHub but haven't looked into it.

    EDIT : I was thinking of adding (in ver1.1):

    Code:
    Clear-Host
    to the end of the for loop to clear the console from error reports which occur when there are no files to handle.

    EDIT 2 : as it expects a single file in the upload directory it'd need a queue system synchronized with the script/macro delays (for server use) and this is unfortunately something I can't program (so basically all there is is an agreement that if there's a .wav file in the upload folder the next uploader shouldn't upload)

    EDIT 3 : I read about a Powershell cmdlet called :

    Code:
    Set-Acl
    which manages permissions.. basically I'd have to run two scripts, the other doing file handling and the other checking the file and managing permissions.

    EDIT 4 : I was thinking :

    Code:
    for (){
        if (Test-Path C:\Users\user\Desktop\airlab\upload\*.*) {
           Get-Acl C:\Users\user\Desktop\airlab\foo | Set-Acl C:\Users\user\Desktop\airlab\upload
           else{
           Get-Acl C:\Users\user\Desktop\airlab\bar | Set-Acl C:\Users\user\Desktop\airlab\upload}
            }
            }
    to be run on the side. Basically there are two folders, foo and bar. Foo is read only and bar is read-write, then the program fetches the security settings based on whether there's a file in the upload folder.. I've yet to test it though and I don't know whether Filezilla overrides the permissions.

    EDIT 5 : the exported file remains a mystery.. I'd probably have to manage separate accounts in Filezilla for everyone using the service which is out of the question as I don't have a server

  2. #12
    Fun project
    It's possible that you could have written the whole thing in python as an Audacity macro and just left audacity running that, but the powershell thing is cool too.

    Then, another cool thing you could do is to add a web application over it so you upload your file in a web form and it waits for the job to finish then if you still have the page open it downloads it right to you. Then in the web form you could have options for different mastering options...

  3. #13
    Quote Originally Posted by light-o-matic View Post
    Fun project
    It's possible that you could have written the whole thing in python as an Audacity macro and just left audacity running that, but the powershell thing is cool too.
    Thanks! Unfortunately I'm not fluent in Python..

    Then, another cool thing you could do is to add a web application over it so you upload your file in a web form and it waits for the job to finish then if you still have the page open it downloads it right to you. Then in the web form you could have options for different mastering options...
    Yeah this probably needs HTML/PHP *AND* Python.

    Running it as a server requires separate scripts/macros and folders for every user, then just define the user in Filezilla and mount appropriate folders.

    EDIT : but it relies on the Audacity window being open so I might just forget it.

    EDIT 2 : using the access-control list (ACL) granting full control it'd leave a back door for executing code on the server, hence read and write.. you'd just wait for the uploaded file to disappear, then navigate to download folder

    EDIT 3 : someone could also just lurk for premaster files running get ./upload on a loop

  4. #14
    I'm afraid I can't get the ACL for loop working.. maybe it's the nested if/else statement.

    EDIT : I get this weird pop-up when trying to change permissions of a folder.. about defining restrictions and it affecting groups or something

    EDIT 2 : the reason for using these example folders is the syntax is easier

    EDIT 3 : the virus scan subroutine could be in the ACL loop.. I got the loop working btw. Shame there's no queue system.

    EDIT 4 : got the whole shebang working. It's a nightly build but it's still working.. vulnerability here is someone could run send <file> on a loop to clog the service. Running the virus scan in the ACL loop introduces a delay in the if loop.

    EDIT 5 : so now it's "wait-until-your-file-disappears-from-the-folder" and then download it.. if you try to upload a file and there's another one in the queue it says permission denied

  5. #15
    Aight here's the "server-ready" nightly build :

    AirLab ver1.1

    It's about the best I can do (atm)

    EDIT : basically you'd run both airlab_script and airlab_ACL and define the paths (folders read and write are hidden folders)

    EDIT 2 : I figured from the start there isn't much money involved, hence the open source.. and Filezilla & Audacity are both open source, the only pitfall is JitBit which is a licensed software

  6. #16
    Asked for a quote on used servers from a local IT dealer.. 260e for a HP ProLiant gen8 w Intel Xeon 3,3GHz.

    No software though.

    EDIT : and I'd very much prefer a rack

  7. #17
    Got the script working on an if statement.. basically unless there's a file in the upload folder it writes standby in the console, if there is the main loop starts running.

    EDIT : this'll be included in ver1.2.. once I get the manual rewritten which is frustrating, not only due to heat

    EDIT 2 : here's a link to ver1.2..

    AirLab ver1.2

    This too is a "nightly" build.. you can dismiss the debugging "Write-Output" (standby, file recieved, file exported etc and the ACL script read/write) commands by placing a hashtag (#) in front of them (this renders the row as a comment, I used this for debugging but someone can create logs so it's useful).. this version includes improved stability and user experience (the system no longer procedurally cycles through the main program loop)

    EDIT 3 : my gripe is that it accepts all files.. I was thinking of writing an elseif loop that automatically deletes files other than .wav (there's an exclude/include command in a cmdlet which could be of use) but that requires some testing and rewriting the manual too

  8. #18
    Got the elseif statement working.. now it automatically deletes all files not ending in .wav (in the upload folder)

  9. #19
    Quote Originally Posted by efinque View Post
    Asked for a quote on used servers from a local IT dealer.. 260e for a HP ProLiant gen8 w Intel Xeon 3,3GHz.

    No software though.

    EDIT : and I'd very much prefer a rack
    Yea HP Gen8 machines are very inexpensive machines now, and I think still popular for homelab type setups.

    I have an HP Microserver Gen8 as my home server. It was old even 3 years ago when I got it.. but does the job. I upgraded the CPU to a Xeon E3-1265L V2 2.5GHz which was the fastest available for that socket, with a reasonable TDP of 45W. It is not a rackmount server, but I have it on a rack shelf in a rack with a door.

    The advantage of this setup is that due to the micro-tower size of this machine it makes do with one large fan rather than lots of smaller ones like the rackmount ones do. So it's already quiet and in the rack it's very quiet. But with some limitations.. only 1 CPU socket, 16GB max RAM (which I have) and 4 swap bays.

    I run Proxmox for virtualization and then on top of that I have some containers for my file and media servers and a VM running windows 10, and another one for linux development. And that's about all I can run comfortably with my limited RAM. I have 8GB RAM reserved for Proxmox because I'm using a ZFS filesystem there which needs a lot of RAM to work well.

    The machine you are looking at is a lot more capable, you could do a lot more.. but is also going to be a lot louder and use a lot more power.
    Since you're a windows guy I assume you'll install Windows straight on it and use Microsofts virtualization.

    If you don't have experience with virtualization you might want to give it a try.. being able to snapshot your disk and go back if things get screwed up is amazing when you're doing development.

  10. #20
    PS: If you don't want to get into learning a massive number of new things at once but still want to have more of a real server environment, you should try installing something like FreeNAS.. or.. there are a bunch of different ones.. it's one of the more popular. OpenMediaVault is another popular one. Here's a link, this is from 2020 but it should give you some ideas.

    https://www.fosslinux.com/43258/best...-solutions.htm

    The nice thing with these is that you install these and that gives you a unix (generally linux) based file server with RAID disk for safety.. ideally you want to use ZFS... but you don't need to learn unix.. you just install it, and it has a nice user friendly web interface for all the features.. just like a commercial NAS product....

    And then, many of these NAS distros offer virtualization.. so if you want to run Windows on there, you can install that as a virtual machine. That way, if you're messing around in windows and trash it.. no problem, your file server is still safe and running. You can install as many virtual machines as your RAM allows.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
a