I'm sure you guys know the situation... creating software for different platforms requires multiple computers. Not only do you need a Mac and PC, but you need multiple versions to test different operating systems and software updates. A few years back, I got tired of switching between multiple computers to get the job done, so I created triple boot PC/Hack/Linux machine. It works well. No complaints. Then I decided to upgrade my GPU to an RTX3090 for faster 3D rendering. It's quite a beast! The issue is MacOS does not work with Nvidia chips, so every time I wanted to boot up macos, I had to unplug my GPU. I also started to get annoyed by not being able to use multiple OS at one time. Powering down MacOS to use Windows can quickly get old.
Since I'm relying heavily on virtualization to run my mini datacenter, I took a shot at creating a virtualized workstation. The result?
One computer that simultaneously runs Monterey, BigSur, Win10, Win11, Linux desktop and Ubuntu server!
I'm still in the testing stages, but it's working wonderfully. I've successfully exported plugins from HISE on each platform.
The system is running on Proxmox. Not to be confused with things like VirtualBox or Parallels (which are type 2 hypervisors that run on top of an existing OS), Proxmox is a type 1 hypervisor. That means that your computer's actual hardware is divided up and given to each virtual machine.
Since the allocation of hardware is sectioned off and given to a Virtual Machine, that means you need a computer with a bit of horsepower to use multiple operating systems at the same time, but you may already have what you need. Or worst case, You only run 1 OS at a time with full resources.
By using some utilities like VirtualHere (share usb over ethernet) and Barriers (use one mouse/keyboard to control multiple computers) I'm able to use one set of hardware resources (usb sound card, dongles, etc) and share them with each computer. Each system sees the devices as if they are actually attached to the computer. No layer in between. The only downfall is since it's "directly attached", you can't share your sound card with multiple machines simultaneously.... I'm mean, that sounds like a nightmare anyway! hahahh
Right now, the Mac virtual machines feel like they have a little bit of lag, so I'm going to have to install a GPU for those machines to use.
If you guys are interested, I can post some details on building a machine like this.
Best posts made by Dan Korneff
-
The ultimate multi-platform workstation
-
RE: vu meter
It looks like you're trying to hook up a gain reduction meter to a dynamics module.
here ya go! in 13 easy steps
I'm using "right click" auto complete as much as possible.#1 - Add Dynamics module
#2 - Create a reference to the module
#3 - Create a slider and add reference
#4 - create a timer
#5 - Create function for timer
#6 - create variable to hold a reference of gain reduction
#7 - convert reduction to dB
#8 - set value of slider to gain reduction
#9 - set slider mode to decibel
#10 - Start Timer
#11 - test that reduction meter is working
#12 - set slider image to your strip
#13 - test that strip is working
-
RE: The definitive feature request & bug fix roadmap
I would love to have SideChain inputs available in the bus routing.
https://docs.juce.com/master/tutorial_audio_bus_layouts.html
-
RE: Linking parameters to SNEX
Finally had a second to make a quick video. I apologize for the poor quality and zero planning... but you get the idea
-
RE: Simple ML neural network
@Christoph-Hart oh shit! There goes my weekend plans. R.I.P my marriage
-
RE: Still getting heap space problems
I just ran into this when opening older projects on my new rig. Images and binary are way below 50mb.
Did a little searching and found that this may happen if Visual Studio doesn't use the 64 bit toolset. I think it's some kind of global change between VS2017 and 2019.
Manually setting the architecture in Environmental Variables fixed the problem for me.
https://phoenixnap.com/kb/windows-set-environment-variable -
RE: Happy New Year Everyone!
:person_cartwheeling_medium-light_skin_tone: :person_cartwheeling_light_skin_tone:
Latest posts made by Dan Korneff
-
RE: Neural Amp Modeler (NAM) in HISE
@Christoph-Hart January 1st or 2nd?
-
RE: Error Message I Don't Understand
@clevername27 Unfortunately, I endure the same amount of suffering as everyone else.
-
RE: Button.setValue(1) oninit not reflected in UI
@CyberGen What about calling the change after a delay?
Content.callAfterDelay(500, function(){ Knob1.setValue(1); Knob1.changed(); }, this);
-
RE: Error Message I Don't Understand
@clevername27 This happens randomly to me as well. It's possible that a script it taking loner to load than anticipated and the app chokes. I just hit recompile a few times and it usually comes back to life.
-
RE: VirtualBox + Export Wizard
@trillbilly said in VirtualBox + Export Wizard:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
See if this helps:
https://stackoverflow.com/questions/17980759/xcode-select-active-developer-directory-error/17980786#17980786 -
RE: [feature request] support webp image format
@Christoph-Hart Any chance we can get this on your radar? Webp is the preferred image format for websites these days. It would be very helpful to be able to render them in HISE. I believe support was added in JUCE7?
-
RE: the limiter in scriptfx can't brickwall
There are some helpful notes in the source code:
/* REGARDING THE MAX PEAK: This method assumes that the only important * sample in a look-ahead buffer would be the highest peak. As such, * instead of storing all samples in a look-ahead buffer, it only stores * the max peak, and compares all incoming samples to that one. * The max peak has a hold time equal to what the look-ahead buffer * would have been, which is tracked by a timer (counter). When this * timer expires, the sample would have exited from the buffer. Therefore, * a new sample must be assigned to the max peak. We assume that the next * highest sample in our theoretical buffer is the current input sample. * In reality, we know this is probably NOT the case, and that there has * been another sample, slightly lower than the one before it, that has * passed the input. If we do not account for this possibility, our gain * reduction could be insufficient, resulting in an "over" at the output. * To remedy this, we simply apply a suitably long release stage in the * envelope follower. */ /* REGARDING THE ATTACK: This limiter achieves "look-ahead" detection * by allowing the envelope follower to attack the max peak, which is * held for the duration of the attack phase -- unless a new, higher * peak is detected. The output signal is buffered so that the gain * reduction is applied in advance of the "offending" sample. */ /* NOTE: a DC offset is not necessary for the envelope follower, * as neither the max peak nor envelope should fall below the * threshold (which is assumed to be around 1.0 linear). */ /* REGARDING THE GAIN REDUCTION: Due to the logarithmic nature * of the attack phase, the sidechain will never achieve "full" * attack. (Actually, it is only guaranteed to achieve 99% of * the input value over the given time constant.) As such, the * limiter cannot achieve "brick-wall" limiting. There are 2 * workarounds: * * 1) Set the threshold slightly lower than the desired threshold. * i.e. 0.0dB -> -0.1dB or even -0.5dB * * 2) Clip the output at the threshold, as such: * * if ( in1 > thresh_ ) in1 = thresh_; * else if ( in1 < -thresh_ ) in1 = -thresh_; * * if ( in2 > thresh_ ) in2 = thresh_; * else if ( in2 < -thresh_ ) in2 = -thresh_; * * (... or replace with your favorite branchless clipper ...) */ }
-
RE: Things I've Learned about ML Audio Modelling
Iβve come across the same results as you. Using the AIDA-X pipeline as my starting point as well. Itβs a challenge to get consistent results, especially with sources that contain a lot of harmonics.
Iβve been tweaking the training scripts to get a more usable result but don't have much to report yet. -
RE: Automation "Touch" behavior in DAW
I experience the same. Haven't had a chance to look into it, but I think @Christoph-Hart would know what to do.