diff --git a/firmware/export/pcm-internal.h b/firmware/export/pcm-internal.h
index 16e2aea..d881963 100644
--- a/firmware/export/pcm-internal.h
+++ b/firmware/export/pcm-internal.h
@@ -22,6 +22,11 @@
 #ifndef PCM_INTERNAL_H
 #define PCM_INTERNAL_H
 
+/* Cheapo buffer align macro to align to the 16-16 PCM size */
+#define ALIGN_AUDIOBUF(start, size) \
+    ({ (start) = (void *)(((uintptr_t)(start) + 3) & ~3); \
+       (size) &= ~3; })
+
 struct pcm_peaks
 {
     long period;
diff --git a/firmware/pcm.c b/firmware/pcm.c
index b0a91fb..f5efb4f 100644
--- a/firmware/pcm.c
+++ b/firmware/pcm.c
@@ -260,8 +260,7 @@
 /* Common code to pcm_play_data and pcm_play_pause */
 static void pcm_play_data_start(unsigned char *start, size_t size)
 {
-    start = (unsigned char *)(((uintptr_t)start + 3) & ~3);
-    size &= ~3;
+    ALIGN_AUDIOBUF(start, size);
 
     if (!(start && size))
     {
@@ -271,9 +270,7 @@
         {
             logf(" get_more");
             get_more(&start, &size);
-
-            start = (unsigned char *)(((uintptr_t)start + 3) & ~3);
-            size &= ~3;
+            ALIGN_AUDIOBUF(start, size);
         }
     }
 
@@ -319,8 +316,7 @@
         /* Call registered callback */
         get_more((unsigned char **)start, size);
 
-        *start = (void *)(((uintptr_t)*start + 3) & ~3);
-        *size &= ~3;
+        ALIGN_AUDIOBUF(*start, *size);
 
         if (*start && *size)
             return;
@@ -557,9 +553,7 @@
 {
     logf("pcm_record_data");
 
-    /* 32-bit aligned and sized data only */
-    start = (void *)(((uintptr_t)start + 3) & ~3);
-    size &= ~3;
+    ALIGN_AUDIOBUF(start, size);
 
     if (!(start && size))
     {
@@ -611,8 +605,7 @@
     if (have_more && start)
     {
         have_more(status, start, size);
-        *start = (void *)(((uintptr_t)*start + 3) & ~3);
-        *size &= ~3;
+        ALIGN_AUDIOBUF(*start, *size);
 
         if (*start && *size)
         {
diff --git a/firmware/pcm_mixer.c b/firmware/pcm_mixer.c
index 817b9a6..25c41c2 100644
--- a/firmware/pcm_mixer.c
+++ b/firmware/pcm_mixer.c
@@ -70,11 +70,6 @@
 #define MAX_IDLE_FRAMES     (NATIVE_FREQUENCY*3 / MIX_FRAME_SAMPLES)
 static unsigned int idle_counter = 0;
 
-/* Cheapo buffer align macro to align to the 16-16 PCM size */
-#define ALIGN_CHANNEL(start, size) \
-    ({ start = (void *)(((uintptr_t)start + 3) & ~3); \
-       size &= ~3; })
-
 #if (CONFIG_PLATFORM & PLATFORM_NATIVE)
 
 /* Include any implemented CPU-optimized mixdown routines */
@@ -244,7 +239,7 @@
             if (chan->get_more)
             {
                 chan->get_more(&chan->start, &chan->size);
-                ALIGN_CHANNEL(chan->start, chan->size);
+                ALIGN_AUDIOBUF(chan->start, chan->size);
             }
 
             if (!(chan->start && chan->size))
@@ -368,7 +363,7 @@
 {
     pcm_play_unlock(); /* Allow playback while doing any callback */
 
-    ALIGN_CHANNEL(start, size);
+    ALIGN_AUDIOBUF(start, size);
 
     if (!(start && size))
     {
@@ -377,7 +372,7 @@
         if (get_more)
         {
             get_more(&start, &size);
-            ALIGN_CHANNEL(start, size);
+            ALIGN_AUDIOBUF(start, size);
         }
     }
 
