{"id":1038,"date":"2026-09-20T20:50:33","date_gmt":"2026-09-20T20:50:33","guid":{"rendered":"https:\/\/www.mickeydesigns.com\/home\/?p=1038"},"modified":"2026-09-20T20:51:09","modified_gmt":"2026-09-20T20:51:09","slug":"hushwave-studio-help-troubleshooting-guide","status":"publish","type":"post","link":"https:\/\/www.mickeydesigns.com\/home\/hushwave-studio-help-troubleshooting-guide\/","title":{"rendered":"Hushwave Studio \u2014 Help &amp; Troubleshooting Guide"},"content":{"rendered":"\n<!-- Hushwave Studio \u2014 Help & Troubleshooting Guide -->\n<!-- Paste this block inside your webpage <body>. The <style> block scopes all rules with .hs- prefixes so it won't conflict with your site's existing styles. -->\n\n<style>\n  .hs-wrap {\n    max-width: 800px;\n    margin: 0 auto;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n    font-size: 16px;\n    line-height: 1.7;\n    color: #1a1a1a;\n  }\n  .hs-wrap *, .hs-wrap *::before, .hs-wrap *::after {\n    box-sizing: border-box;\n  }\n  .hs-wrap h1 {\n    font-size: 2rem;\n    font-weight: 700;\n    margin: 0 0 0.25em;\n    color: #0d0d0d;\n  }\n  .hs-wrap .hs-subtitle {\n    font-size: 1.05rem;\n    color: #555;\n    margin: 0 0 2.5rem;\n  }\n  .hs-wrap h2 {\n    font-size: 1.4rem;\n    font-weight: 700;\n    color: #0d0d0d;\n    margin: 2.5rem 0 0.75rem;\n    padding-top: 2.5rem;\n    border-top: 1px solid #e5e5e5;\n  }\n  .hs-wrap h2:first-of-type {\n    border-top: none;\n    padding-top: 0;\n  }\n  .hs-wrap h3 {\n    font-size: 1.05rem;\n    font-weight: 700;\n    color: #1a1a1a;\n    margin: 1.75rem 0 0.5rem;\n  }\n  .hs-wrap p {\n    margin: 0 0 1em;\n  }\n  .hs-wrap ul, .hs-wrap ol {\n    margin: 0 0 1em;\n    padding-left: 1.6em;\n  }\n  .hs-wrap li {\n    margin-bottom: 0.35em;\n  }\n  .hs-wrap a {\n    color: #0071e3;\n    text-decoration: none;\n  }\n  .hs-wrap a:hover {\n    text-decoration: underline;\n  }\n\n  \/* Table of contents *\/\n  .hs-toc {\n    background: #f5f5f7;\n    border-radius: 10px;\n    padding: 1.25rem 1.5rem;\n    margin-bottom: 2.5rem;\n  }\n  .hs-toc h2 {\n    font-size: 0.85rem;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.07em;\n    color: #555;\n    margin: 0 0 0.75rem;\n    padding: 0;\n    border: none;\n  }\n  .hs-toc ol {\n    margin: 0;\n    padding-left: 1.4em;\n    columns: 2;\n    column-gap: 2rem;\n  }\n  .hs-toc li {\n    margin-bottom: 0.3em;\n    break-inside: avoid;\n  }\n  @media (max-width: 540px) {\n    .hs-toc ol { columns: 1; }\n  }\n\n  \/* Callout boxes *\/\n  .hs-tip, .hs-warning, .hs-note {\n    border-radius: 8px;\n    padding: 0.9rem 1.1rem;\n    margin: 1rem 0 1.25rem;\n    display: flex;\n    gap: 0.75rem;\n    align-items: flex-start;\n    font-size: 0.95rem;\n  }\n  .hs-tip    { background: #e8f4fd; border-left: 3px solid #0071e3; }\n  .hs-warning{ background: #fff8e6; border-left: 3px solid #f5a623; }\n  .hs-note   { background: #f0f0f5; border-left: 3px solid #8e8e93; }\n  .hs-tip .hs-icon    { color: #0071e3; font-size: 1rem; flex-shrink: 0; margin-top: 1px; }\n  .hs-warning .hs-icon{ color: #f5a623; font-size: 1rem; flex-shrink: 0; margin-top: 1px; }\n  .hs-note .hs-icon   { color: #8e8e93; font-size: 1rem; flex-shrink: 0; margin-top: 1px; }\n  .hs-tip p, .hs-warning p, .hs-note p { margin: 0; }\n\n  \/* Keyboard shortcuts *\/\n  kbd {\n    display: inline-block;\n    padding: 2px 7px;\n    font-size: 0.8rem;\n    font-family: inherit;\n    background: #fff;\n    border: 1px solid #ccc;\n    border-bottom-width: 2px;\n    border-radius: 5px;\n    white-space: nowrap;\n    color: #1a1a1a;\n  }\n\n  \/* Shortcut table *\/\n  .hs-shortcuts {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 0.5rem 0 1.25rem;\n    font-size: 0.95rem;\n  }\n  .hs-shortcuts td {\n    padding: 0.45rem 0.6rem;\n    border-bottom: 1px solid #e5e5e5;\n    vertical-align: middle;\n  }\n  .hs-shortcuts td:first-child {\n    white-space: nowrap;\n    width: 1%;\n  }\n  .hs-shortcuts tr:last-child td {\n    border-bottom: none;\n  }\n\n  \/* Troubleshooting issue blocks *\/\n  .hs-issue {\n    border: 1px solid #e5e5e5;\n    border-radius: 10px;\n    margin-bottom: 1.25rem;\n    overflow: hidden;\n  }\n  .hs-issue-header {\n    background: #f5f5f7;\n    padding: 0.85rem 1.1rem;\n    font-weight: 600;\n    font-size: 0.98rem;\n    display: flex;\n    align-items: center;\n    gap: 0.6rem;\n  }\n  .hs-issue-header .hs-badge {\n    font-size: 0.75rem;\n    font-weight: 600;\n    padding: 2px 8px;\n    border-radius: 20px;\n    background: #ff9500;\n    color: #fff;\n    white-space: nowrap;\n  }\n  .hs-issue-body {\n    padding: 0.85rem 1.1rem;\n  }\n  .hs-issue-body ul {\n    margin: 0;\n  }\n  .hs-issue-body li {\n    margin-bottom: 0.5em;\n  }\n\n  \/* Step list *\/\n  .hs-steps {\n    list-style: none;\n    padding: 0;\n    margin: 0 0 1em;\n    counter-reset: steps;\n  }\n  .hs-steps li {\n    counter-increment: steps;\n    display: flex;\n    gap: 0.85rem;\n    align-items: flex-start;\n    margin-bottom: 0.75em;\n  }\n  .hs-steps li::before {\n    content: counter(steps);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 24px;\n    height: 24px;\n    border-radius: 50%;\n    background: #0071e3;\n    color: #fff;\n    font-size: 0.8rem;\n    font-weight: 700;\n    flex-shrink: 0;\n    margin-top: 2px;\n  }\n\n  \/* Section anchor offset for sticky nav sites *\/\n  .hs-wrap section {\n    scroll-margin-top: 80px;\n  }\n<\/style>\n\n<div class=\"hs-wrap\">\n\n  <h1>Hushwave Studio<\/h1>\n  <p class=\"hs-subtitle\">Help &amp; Troubleshooting Guide &mdash; macOS<\/p>\n\n  <!-- Table of contents -->\n  <nav class=\"hs-toc\" aria-label=\"Table of contents\">\n    <h2>Contents<\/h2>\n    <ol>\n      <li><a href=\"#overview\">Overview<\/a><\/li>\n      <li><a href=\"#quickstart\">Quick Start<\/a><\/li>\n      <li><a href=\"#connecting\">Connecting Listeners<\/a><\/li>\n      <li><a href=\"#channels\">Channels<\/a><\/li>\n      <li><a href=\"#broadcast\">Broadcast &amp; Transport<\/a><\/li>\n      <li><a href=\"#hotpads\">Hot Pads<\/a><\/li>\n      <li><a href=\"#midi\">MIDI Control<\/a><\/li>\n      <li><a href=\"#sessions\">Sessions<\/a><\/li>\n      <li><a href=\"#settings\">Settings Reference<\/a><\/li>\n      <li><a href=\"#troubleshooting\">Troubleshooting<\/a><\/li>\n    <\/ol>\n  <\/nav>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"overview\">\n    <h2>Overview<\/h2>\n    <p>Hushwave Studio turns your Mac into a multi-channel audio broadcast hub for silent discos, guided tours, fitness classes, or any event where listeners each bring their own headphones.<\/p>\n    <p>You create <strong>channels<\/strong> \u2014 independent audio streams, each with its own playlist or live input. Listeners install the <strong>Hushwave app<\/strong> on their iPhone or Android, open it on the same Wi-Fi network, pick a channel, and hear the music immediately. No Bluetooth pairing, no cables, no speaker interference.<\/p>\n\n    <h3>System requirements<\/h3>\n    <ul>\n      <li>Mac running <strong>macOS 18 or later<\/strong>.<\/li>\n      <li>Connected to the venue Wi-Fi or Ethernet. A hotspot created by the Mac also works.<\/li>\n      <li>Listener iPhones or Android on the <strong>same network<\/strong> with the Hushwave app installed.<\/li>\n      <li>Screen Recording permission for system audio capture.<\/li>\n      <li>Any class-compliant USB or Bluetooth MIDI device for MIDI control.<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"quickstart\">\n    <h2>Quick Start<\/h2>\n    <ol class=\"hs-steps\">\n      <li>Open Hushwave Studio. If this is your first time, set your event name in <strong>Settings &#8250; General &#8250; Event<\/strong> (<kbd>\u2318,<\/kbd>).<\/li>\n      <li>Click <strong>Add Channel<\/strong> at the bottom of the sidebar (<kbd>\u21e7\u2318N<\/kbd>). Give it a name and a color.<\/li>\n      <li>Drag audio files onto the playlist area in the channel detail view, or choose a live input (microphone or system audio).<\/li>\n      <li>Press the <strong>Start Broadcast<\/strong> button in the sidebar (<kbd>\u2318B<\/kbd>). The button changes to <strong>ON AIR<\/strong> with a glowing red dot.<\/li>\n      <li>Click the QR code panel in the sidebar to open the join sheet. Show the QR code to your audience, or tell them to open Hushwave \u2014 the studio appears automatically on their phone within a few seconds.<\/li>\n    <\/ol>\n\n    <div class=\"hs-tip\">\n      <span class=\"hs-icon\">&#8505;<\/span>\n      <p>Enable <strong>Start broadcasting when Hushwave Studio opens<\/strong> in Settings to go live automatically at launch &mdash; useful for unattended or recurring setups.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"connecting\">\n    <h2>Connecting Listeners<\/h2>\n\n    <h3>Automatic discovery<\/h3>\n    <p>When the studio is broadcasting, it advertises itself on the local network using <strong>Bonjour<\/strong>. The Hushwave iOS app scans for this advertisement \u2014 listeners open the app and the studio appears within a few seconds. No IP address entry is needed.<\/p>\n\n    <div class=\"hs-note\">\n      <span class=\"hs-icon\">&#9432;<\/span>\n      <p>Both the Mac and the listener&#8217;s phone must be on the <strong>same network<\/strong>. Phones on cellular data (4G\/5G) cannot reach the studio.<\/p>\n    <\/div>\n\n    <h3>QR code &amp; manual entry<\/h3>\n    <p>Some managed networks (hotels, conference venues, schools) block Bonjour multicast. In those cases, use the QR code:<\/p>\n    <ol>\n      <li>Click the QR panel in the sidebar to open the <strong>Join<\/strong> sheet.<\/li>\n      <li>Display the QR code on a screen or projector. Listeners scan it with the iPhone camera and tap the link to open Hushwave.<\/li>\n      <li>Alternatively, read out the <strong>IP address and port<\/strong> shown below the code. Listeners type this into the Connect screen in the app.<\/li>\n    <\/ol>\n\n    <h3>Multiple network interfaces<\/h3>\n    <p>If your Mac is connected to more than one network (e.g., Wi-Fi and Ethernet), the join sheet shows a network picker. Select the interface that your listeners are also connected to.<\/p>\n\n    <h3>Refreshing the address<\/h3>\n    <p>Press <strong>Refresh<\/strong> in the join sheet if you switch networks while the studio is running. The IP address may have changed, and the QR code will update to reflect it.<\/p>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"channels\">\n    <h2>Channels<\/h2>\n\n    <h3>What is a channel?<\/h3>\n    <p>A channel is a single, continuous audio stream. Every listener tunes into one channel at a time. You can run as many channels as your Mac&#8217;s CPU can handle \u2014 typical silent discos use 2&ndash;8 channels for different music genres.<\/p>\n\n    <h3>Creating &amp; deleting channels<\/h3>\n    <ul>\n      <li><strong>Add Channel<\/strong> &mdash; click the button at the bottom of the sidebar, or press <kbd>\u21e7\u2318N<\/kbd>.<\/li>\n      <li><strong>Delete Channel<\/strong> &mdash; open the channel, then click the trash icon in the toolbar. Listeners on that channel are automatically returned to the channel picker.<\/li>\n      <li><strong>Reorder<\/strong> &mdash; drag channels in the sidebar list. The order is reflected in the listener app.<\/li>\n    <\/ul>\n\n    <h3>Playlist mode<\/h3>\n    <p>The default mode. The channel plays its tracks in order and loops back to the beginning (unless Loop is disabled).<\/p>\n    <ul>\n      <li><strong>Add tracks<\/strong> &mdash; drag audio files or folders onto the playlist, or click <strong>Add Tracks\u2026<\/strong> (<kbd>\u2318O<\/kbd>). Supported formats: MP3, AAC\/M4A, ALAC, WAV, AIFF, FLAC, CAF.<\/li>\n      <li><strong>Reorder<\/strong> &mdash; drag rows up or down.<\/li>\n      <li><strong>Remove<\/strong> &mdash; select one or more tracks and press <kbd>\u232b<\/kbd>, or right-click &#8250; Remove.<\/li>\n      <li><strong>Play Now<\/strong> &mdash; double-click a track or right-click &#8250; Play Now to crossfade to it immediately.<\/li>\n      <li><strong>Skip<\/strong> &mdash; press the Skip button (&#9654;&#9654; icon) in the toolbar to crossfade to the next track.<\/li>\n      <li><strong>Loop<\/strong> &mdash; toggle the Loop playlist switch in the channel identity card.<\/li>\n    <\/ul>\n\n    <div class=\"hs-tip\">\n      <span class=\"hs-icon\">&#8505;<\/span>\n      <p>Tracks with DRM (e.g., older iTunes purchases) cannot be played. Convert or re-purchase them as DRM-free files first.<\/p>\n    <\/div>\n\n    <h3>Live input mode<\/h3>\n    <p>A channel can stream live audio instead of a playlist. Select the input from the picker in the channel identity card.<\/p>\n    <ul>\n      <li><strong>Microphone<\/strong> &mdash; streams your Mac&#8217;s selected input device. Grant Microphone permission when macOS prompts you.<\/li>\n      <li><strong>System Audio<\/strong> &mdash; captures audio output from a specific app running on your Mac (e.g., Spotify, YouTube in Safari). Select the target app from the dropdown. Grant Screen Recording permission the first time.<\/li>\n    <\/ul>\n    <p>Playlist controls are hidden while a live input is active.<\/p>\n\n    <h3>Channel settings<\/h3>\n    <ul>\n      <li><strong>Name<\/strong> &mdash; click the channel name in the detail view to edit it inline.<\/li>\n      <li><strong>Color &amp; icon<\/strong> &mdash; choose from the swatches and icon picker. These appear in the listener app to help people identify channels.<\/li>\n      <li><strong>Gain<\/strong> &mdash; use the speaker slider (0&ndash;125%) to adjust output level without touching the master broadcast.<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"broadcast\">\n    <h2>Broadcast &amp; Transport<\/h2>\n\n    <h3>ON AIR \/ OFF AIR (<kbd>\u2318B<\/kbd>)<\/h3>\n    <p>The <strong>Broadcast<\/strong> button in the sidebar starts and stops the stream. When ON AIR, every active channel sends audio to connected listeners. When OFF AIR, listeners see a &#8220;Broadcast paused&#8221; message.<\/p>\n\n    <div class=\"hs-warning\">\n      <span class=\"hs-icon\">&#9888;<\/span>\n      <p><strong>Stopping the broadcast disconnects all listeners.<\/strong> They will need to reconnect when you go live again. Use <strong>Pause All<\/strong> instead if you want a temporary break without dropping connections.<\/p>\n    <\/div>\n\n    <h3>Pause All \/ Resume All<\/h3>\n    <p>Sends silence to every listener while keeping all connections alive. Use it for announcements, between acts, or any moment where you need quiet without losing the audience. Each channel resumes from where it was when you press Resume All.<\/p>\n\n    <h3>Dashboard status<\/h3>\n    <p>The header line on the Dashboard reflects the current state:<\/p>\n    <ul>\n      <li><strong>Live on your network<\/strong> &mdash; broadcasting normally.<\/li>\n      <li><strong>Paused &mdash; listeners hear silence<\/strong> &mdash; Pause All is active.<\/li>\n      <li><strong>Playing cue &mdash; channels ducked<\/strong> &mdash; a Hot Pad is playing.<\/li>\n      <li><strong>Not broadcasting<\/strong> &mdash; broadcast is stopped.<\/li>\n    <\/ul>\n\n    <h3>Keyboard shortcuts<\/h3>\n    <table class=\"hs-shortcuts\">\n      <tr><td><kbd>\u2318B<\/kbd><\/td><td>Toggle ON AIR \/ OFF AIR<\/td><\/tr>\n    <\/table>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"hotpads\">\n    <h2>Hot Pads<\/h2>\n\n    <h3>What are Hot Pads?<\/h3>\n    <p>Hot Pads play a one-shot audio cue through the broadcast while automatically <strong>ducking<\/strong> (lowering) all channel volumes. Use them for DJ drops, station IDs, countdown beeps, announcements, or any sound effect that needs to cut through the music.<\/p>\n    <p>The Hot Pads panel is on the right side of the window. Show or hide it with the sidebar button in the toolbar.<\/p>\n\n    <h3>Assigning a sound<\/h3>\n    <ol class=\"hs-steps\">\n      <li>Click <strong>Add Pad<\/strong> at the bottom of the Hot Pads panel.<\/li>\n      <li>Click the new pad. A file picker opens \u2014 choose an audio file.<\/li>\n      <li>Alternatively, right-click any pad and choose <strong>Assign Sound&#8230;<\/strong><\/li>\n    <\/ol>\n\n    <h3>Triggering &amp; stopping<\/h3>\n    <ul>\n      <li>Click a pad to play it. Channels duck immediately; the pad label shows a countdown timer.<\/li>\n      <li>Click the pad again, or right-click &#8250; Stop, to cut the cue early. Channels return to full volume.<\/li>\n      <li>Only one cue can play at a time. Triggering a second pad stops the first.<\/li>\n    <\/ul>\n\n    <h3>Pad settings<\/h3>\n    <p>Click the gear icon on any pad to open its settings.<\/p>\n    <ul>\n      <li><strong>Name<\/strong> &mdash; label displayed on the pad button.<\/li>\n      <li><strong>Cue level<\/strong> (0&ndash;125%) &mdash; playback volume of the cue. Useful for normalising files without editing them.<\/li>\n      <li><strong>Duck level<\/strong> (0&ndash;80%) &mdash; how much the channels are attenuated while the cue plays. 0% = full silence; 80% = faintly audible background music. Default is 15%.<\/li>\n      <li><strong>Color<\/strong> &mdash; helps distinguish pads quickly in a live set.<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"midi\">\n    <h2>MIDI Control<\/h2>\n\n    <h3>Connecting a device<\/h3>\n    <p>Connect any class-compliant USB or Bluetooth MIDI controller. Open <strong>Settings &#8250; MIDI<\/strong> (<kbd>\u2318,<\/kbd>) to see detected devices. If your device does not appear, disconnect it, wait a moment, reconnect it, and reopen the MIDI panel.<\/p>\n    <p>Choose <strong>All MIDI Inputs<\/strong> to respond to any connected device, or pick a specific device to avoid accidental triggers from other controllers.<\/p>\n\n    <h3>Creating a binding<\/h3>\n    <ol class=\"hs-steps\">\n      <li>In Settings &#8250; MIDI, click <strong>Add Binding&#8230;<\/strong><\/li>\n      <li>Click <strong>Learn MIDI&#8230;<\/strong> and play the note or move the knob you want to assign. Hushwave captures the message type, number, and channel automatically.<\/li>\n      <li>Choose an <strong>Action<\/strong>: Toggle Broadcast, Toggle Transport, or Trigger Hot Pad.<\/li>\n      <li>If you chose Trigger Hot Pad, select which pad number to fire.<\/li>\n      <li>Click <strong>Add<\/strong> to save.<\/li>\n    <\/ol>\n\n    <h3>Available actions<\/h3>\n    <ul>\n      <li><strong>Toggle Broadcast<\/strong> &mdash; same as pressing <kbd>\u2318B<\/kbd>. Starts or stops the broadcast.<\/li>\n      <li><strong>Toggle Transport<\/strong> &mdash; same as Pause All \/ Resume All.<\/li>\n      <li><strong>Trigger Hot Pad<\/strong> &mdash; fires a pad by its position in the Hot Pads panel (Pad 1, Pad 2, &#8230;).<\/li>\n    <\/ul>\n\n    <h3>Activity monitor<\/h3>\n    <p>The <strong>Activity<\/strong> section in Settings &#8250; MIDI shows the most recent incoming MIDI message in real time. Use it to confirm your device is communicating and to identify message numbers before creating bindings.<\/p>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"sessions\">\n    <h2>Sessions<\/h2>\n\n    <h3>What is a session?<\/h3>\n    <p>A session file (<code>.hushwave<\/code>) stores your complete studio setup: channels, playlists (as bookmarks to the original audio files), hot pads, event name, crossfade duration, bitrate, and MIDI bindings. Open a session to restore everything exactly as you left it.<\/p>\n\n    <h3>Saving &amp; opening<\/h3>\n    <table class=\"hs-shortcuts\">\n      <tr><td><kbd>\u2318S<\/kbd><\/td><td>Save Session &mdash; saves to the current file, or prompts for a location the first time.<\/td><\/tr>\n      <tr><td><kbd>\u21e7\u2318S<\/kbd><\/td><td>Save Session As&#8230; &mdash; saves a copy to a new location.<\/td><\/tr>\n      <tr><td><kbd>\u2325\u2318O<\/kbd><\/td><td>Open Session&#8230; &mdash; opens a saved session, replacing the current one.<\/td><\/tr>\n    <\/table>\n    <p>Hushwave Studio also auto-saves when you quit the app.<\/p>\n\n    <h3>Moving audio files<\/h3>\n    <p>Sessions use <strong>security-scoped bookmarks<\/strong>, so tracks continue working even if you move the session file itself. However, if you move or rename the <em>audio files<\/em> that the tracks reference, those tracks will show a failed status and need to be removed and re-added from their new location.<\/p>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"settings\">\n    <h2>Settings Reference<\/h2>\n    <p>Open Settings with <kbd>\u2318,<\/kbd> or via the <strong>Hushwave Studio<\/strong> menu.<\/p>\n\n    <h3>General &#8250; Event<\/h3>\n    <p><strong>Event name<\/strong> &mdash; the name shown to listeners when their phone discovers the studio. Also appears as the header on the Dashboard and in the join QR sheet.<\/p>\n\n    <h3>General &#8250; Audio<\/h3>\n    <ul>\n      <li><strong>Crossfade<\/strong> (0&ndash;12 s) &mdash; how long the outgoing track fades out while the incoming track fades in. Also adjustable directly on the Dashboard. 2&ndash;3 s works well for background music; 0 for hard cuts.<\/li>\n      <li><strong>Stream quality<\/strong> &mdash; AAC bitrate for all channels:\n        <ul>\n          <li><strong>128 kbps<\/strong> &mdash; recommended for most venues.<\/li>\n          <li><strong>96 kbps<\/strong> &mdash; try this on crowded Wi-Fi if listeners report dropouts.<\/li>\n        <\/ul>\n        Each listener uses roughly the selected bitrate. 100 listeners at 128 kbps requires ~12.8 Mbps of Wi-Fi capacity.\n      <\/li>\n    <\/ul>\n\n    <h3>General &#8250; Startup<\/h3>\n    <p><strong>Start broadcasting when Hushwave Studio opens<\/strong> &mdash; the studio goes ON AIR automatically on every launch. Useful for unattended installations.<\/p>\n\n    <h3>General &#8250; Server<\/h3>\n    <p>Shows the active <strong>port<\/strong> and all <strong>IP addresses<\/strong> the server is listening on. This is the same information displayed in the join sheet.<\/p>\n\n    <h3>MIDI<\/h3>\n    <p>See the <a href=\"#midi\">MIDI Control<\/a> section above.<\/p>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section id=\"troubleshooting\">\n    <h2>Troubleshooting<\/h2>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Connectivity<\/span>\n        Listeners can&#8217;t find the studio\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>Confirm the Mac and the listener&#8217;s phone are on the <strong>same Wi-Fi network<\/strong>. A phone on 4G\/5G cellular data cannot reach the studio.<\/li>\n          <li>Check that the studio shows <strong>ON AIR<\/strong>. The studio is not discoverable when the broadcast is stopped.<\/li>\n          <li>Some managed networks (hotels, conference centres, schools) <strong>block Bonjour multicast<\/strong>. Use the QR code or manual IP entry as a fallback.<\/li>\n          <li>Check <strong>macOS Firewall<\/strong>: System Settings &#8250; Network &#8250; Firewall. If the firewall is on, verify Hushwave Studio is allowed to accept incoming connections.<\/li>\n          <li>Press <strong>Refresh<\/strong> in the join sheet &mdash; the IP address may have changed if the Mac switched networks or renewed its DHCP lease.<\/li>\n          <li>Restart the Wi-Fi access point as a last resort if many devices are having trouble connecting.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Audio<\/span>\n        No audio \/ listeners hear silence\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>Verify the studio is <strong>ON AIR<\/strong> (the sidebar button shows a glowing red dot).<\/li>\n          <li>Check that <strong>Pause All<\/strong> is not active. The Dashboard status line reads &#8220;Paused&#8221; when it is.<\/li>\n          <li>Open the channel and confirm it has at least one track with a <strong>Ready<\/strong> status. Failed tracks (shown in red) are skipped automatically.<\/li>\n          <li>Check the channel <strong>gain slider<\/strong> is above 0%.<\/li>\n          <li>For live input channels, ensure the correct input is selected and no warning triangle appears next to the picker.<\/li>\n          <li>Check the listener&#8217;s phone volume is not muted and that silent mode is off.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Audio<\/span>\n        A track shows a failed status\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>The audio file may have been <strong>moved, renamed, or deleted<\/strong> after being added to the playlist. Remove the track and add it again from its new location.<\/li>\n          <li>Verify the format is supported: MP3, AAC\/M4A, ALAC, WAV, AIFF, FLAC, or CAF. <strong>DRM-protected files<\/strong> (e.g., older iTunes purchases) cannot be played.<\/li>\n          <li>Try opening the file in <strong>QuickTime Player<\/strong> to confirm macOS can decode it independently of Hushwave.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Permissions<\/span>\n        System audio capture doesn&#8217;t work\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>System audio capture requires <strong>Screen Recording<\/strong> permission. Open <strong>System Settings &#8250; Privacy &amp; Security &#8250; Screen Recording<\/strong> and enable it for Hushwave Studio.<\/li>\n          <li>After granting permission, switch the channel&#8217;s input away from System Audio and back again to restart the audio tap.<\/li>\n          <li>The target app must be <strong>already running and producing audio<\/strong> when you start the capture.<\/li>\n          <li>Some apps with DRM output (e.g., streaming services) <strong>block third-party audio capture<\/strong> by design. This is a macOS limitation and cannot be bypassed.<\/li>\n          <li>Requires macOS 14.2 or later. Earlier versions of macOS do not support per-app audio capture.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Permissions<\/span>\n        Microphone input not working\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>Open <strong>System Settings &#8250; Privacy &amp; Security &#8250; Microphone<\/strong> and confirm Hushwave Studio is listed and toggled on.<\/li>\n          <li>If the permission row doesn&#8217;t appear, quit the app, set a channel to <strong>Microphone<\/strong> mode, relaunch, and macOS will prompt for the permission.<\/li>\n          <li>Check that the correct <strong>input device<\/strong> is selected in System Settings &#8250; Sound &#8250; Input.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">MIDI<\/span>\n        MIDI device not detected\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>Disconnect and reconnect the USB cable, then reopen <strong>Settings &#8250; MIDI<\/strong>.<\/li>\n          <li>For <strong>Bluetooth MIDI<\/strong>, pair the device first in <strong>Audio MIDI Setup<\/strong> (Applications &#8250; Utilities &#8250; Audio MIDI Setup), then reopen the MIDI panel.<\/li>\n          <li>Confirm no other app (e.g., GarageBand, Logic Pro, Ableton) has <strong>exclusive access<\/strong> to the device. Quit other music apps if needed.<\/li>\n          <li>Check <strong>Activity<\/strong> in Settings &#8250; MIDI after pressing a button on the controller to confirm messages are arriving.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Performance<\/span>\n        Listener audio dropouts or stuttering\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li><strong>Lower the stream quality<\/strong> to 96 kbps in the Dashboard or Settings. This is the most effective fix on busy Wi-Fi.<\/li>\n          <li>Move the Wi-Fi access point closer to the Mac, or <strong>connect the Mac via Ethernet<\/strong> to free up wireless capacity for listeners.<\/li>\n          <li>Reduce the number of simultaneous channels if CPU usage is high.<\/li>\n          <li>Close other apps on the Mac that are competing for network bandwidth (e.g., cloud backups, video conferencing).<\/li>\n          <li>If using a 2.4 GHz network, switch the Mac and access point to <strong>5 GHz<\/strong> for more bandwidth and less interference.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"hs-issue\">\n      <div class=\"hs-issue-header\">\n        <span class=\"hs-badge\">Performance<\/span>\n        High CPU usage\n      <\/div>\n      <div class=\"hs-issue-body\">\n        <ul>\n          <li>Each active channel encodes audio in AAC in real time. <strong>More channels = more CPU<\/strong>. Delete or leave empty any channels you&#8217;re not actively using.<\/li>\n          <li><strong>FLAC and ALAC<\/strong> source files require more decode work than MP3 or AAC files. Consider converting your library if you regularly use lossless sources.<\/li>\n          <li>Lowering the stream bitrate also reduces encode work slightly.<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n  <\/section>\n  <!-- end .hs-wrap -->\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Contents Overview Quick Start Connecting Listeners Channels Broadcast &amp; Transport Hot Pads MIDI Control Sessions Settings Reference Troubleshooting Overview Hushwave Studio turns your Mac into a multi-channel audio broadcast hub for silent discos, guided tours, fitness classes, or any event where listeners each bring their own headphones. You create channels \u2014 independent audio streams, each &#8230; <a title=\"Hushwave Studio \u2014 Help &amp; Troubleshooting Guide\" class=\"read-more\" href=\"https:\/\/www.mickeydesigns.com\/home\/hushwave-studio-help-troubleshooting-guide\/\" aria-label=\"Read more about Hushwave Studio \u2014 Help &amp; Troubleshooting Guide\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1039,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-1038","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-help"],"_links":{"self":[{"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/posts\/1038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/comments?post=1038"}],"version-history":[{"count":1,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/posts\/1038\/revisions"}],"predecessor-version":[{"id":1040,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/posts\/1038\/revisions\/1040"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/media\/1039"}],"wp:attachment":[{"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/media?parent=1038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/categories?post=1038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mickeydesigns.com\/home\/wp-json\/wp\/v2\/tags?post=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}