Improv Audio Software, Version 3.2.0
This is a continuation of the original Mr. Voice Perl/Tk app, circa 2000. While still in use in many CSz clubs, the Perl/Tk app was showing its age, and nearly impossible to build correctly. This caused problems on more modern operating systems.
Thus, 20 years later, this project to rewrite the software in a more modern way.
Mx. Voice 3 depends on node.js being available on your system, along with yarn
. We recommend node 18+.
Check out the source code from Github. Go into the mxvoice-electron
folder.
The first time that you run the software in development mode, you will need to install the dependencies. Do that by running:
yarn install
This should install any required node modules in the node_modules
subdirectory. Please report any problems installing dependencies.
Once your node dependencies are installed, you can run the currently-checked-out code in development mode with:
yarn start
That should launch the app onto your desktop!
To build packages for release on macOS, use the following commands depending on your architecture:
- For Intel (x64) builds:
yarn build:mac:x64
- For Apple Silicon (arm64) builds:
yarn build:mac:arm64
These commands use the makers defined in package.json
, along with your current system architecture, and build the available targets.
Build output will be available in the dist/
subdirectory. Currently, this produces both a .dmg
and a .zip
file, with the .dmg
being directly installable on the system.
The build process includes code signing and notarization for macOS. The signing identity and entitlements are configured in the build scripts located in the build/
directory (afterPack.js
, notarize.js
, and entitlements.mac.plist
). To successfully sign and notarize the app, you need to set the following environment variables:
APPLE_ID
: Your Apple developer Apple ID email.APPLE_ID_PASSWORD
: Your Apple app-specific password or Apple ID password.APPLE_TEAM_ID
: Your Apple developer team ID.GITHUB_TOKEN
: A GitHub token with permissions to upload releases.
To publish the release to the official Mx. Voice GitHub Releases, use:
yarn release
This command requires the above environment variables to be set.
For creating universal macOS releases that support both Apple Silicon and Intel Macs, follow this workflow:
Prerequisites:
- Set up the required environment variables listed above
- Ensure you have access to push tags to the repository
Release Process:
-
Create and push a version tag (this automatically triggers x64 build on GitHub Actions):
git tag v3.2.0 git push origin v3.2.0
-
Build ARM64 locally while the GitHub Actions x64 build runs:
yarn build:mac:arm64
-
Download x64 artifacts from the completed GitHub Actions run:
- Go to the Actions tab in your GitHub repository
- Find the workflow run triggered by your tag
- Download the
macos-x64-signed-build
artifact - Extract the contents to your local
dist/
directory
-
Create the universal release:
export GITHUB_TOKEN=your_github_token_here yarn release:universal
This process creates a draft GitHub release with:
- ARM64 and x64
.dmg
files - ARM64 and x64
.zip
files - ARM64 and x64
.blockmap
files (for efficient updates) - A universal
latest-mac.yml
file that supports both architectures
The release will be created as a draft for you to review before publishing. The x64 architecture is set as the default download for backward compatibility with existing Intel Mac users, while Apple Silicon users will automatically receive the ARM64 version.
Expected files in dist/ before running yarn release:universal
:
Mx. Voice-3.2.0-arm64.dmg
Mx. Voice-3.2.0-arm64.zip
Mx. Voice-3.2.0-arm64.dmg.blockmap
Mx. Voice-3.2.0-arm64.zip.blockmap
Mx. Voice-3.2.0-x64.dmg
Mx. Voice-3.2.0-x64.zip
Mx. Voice-3.2.0-x64.dmg.blockmap
Mx. Voice-3.2.0-x64.zip.blockmap
latest-mac.yml
To build and sign the Windows installer, use:
yarn build:win
or
npm run build:win
This command will:
- Build the Windows installer (
.exe
) in thedist/
directory. - Automatically sign the installer using SSL.com's CodeSignTool.
Before building, set the following environment variables (these are required for signing):
SSL_USERNAME
: Your SSL.com RA username.SSL_CREDENTIAL_ID
: Your SSL.com credential ID.SSL_PASSWORD
: Your SSL.com RA password.SSL_TOTP_SECRET
: Your SSL.com TOTP secret (base64-encoded, for automated OTP).
Example (PowerShell):
$env:SSL_USERNAME="your_username"
$env:SSL_CREDENTIAL_ID="your_credential_id"
$env:SSL_PASSWORD="your_password"
$env:SSL_TOTP_SECRET="your_base64_totp_secret"
- The signing process is fully automated and runs after the installer is built.
- The script locates the most recent
.exe
installer in thedist/
directory and signs it in-place using SSL.com's CodeSignTool and your credentials.
After building, you can verify the signature:
Using Windows Explorer:
- Right-click the installer in
dist/
- Select Properties > Digital Signatures
- Select the signature and click Details to view certificate info
Using signtool.exe (if available):
signtool verify /pa "C:\Users\wade\mxvoice-electron\dist\Mx. Voice Setup 3.2.0.exe"
You should see "Successfully verified" if the signature is valid.
To publish Windows releases, use your preferred workflow for uploading the signed installer to GitHub or your distribution platform.
Note: The old certificate file-based signing is no longer used. All signing is handled via SSL.com credentials and the automated script.
Helpful tools and documentation:
Mx. Voice 3 is brought to you with love by:
- Wade Minter ([email protected])
- Andrew Berkowitz ([email protected])