Flipnote NDS .ppm file direct audio import tool

So after far too many hours of not managing to get a HD clip of a song into flipnote, I have finally created this tool that allows you to just choose your audio .wav file, your .ppm file, and it replaces the audio for you.

Doesn't seem like anyone other than me has asked for this but, well, if you ever need it its here now. Recording with the 3DS mic sounded BAD, I did want to try the method of recording pc audio straight into the mic input port with an aux splitter but uhh, the aux splitter just did nothing. But this works great instead.

https://github.com/Blurro/FlipnoteAudioReplacer/releases/
Download here ^^^

Import instructions:
  1. Get your .ppm file(s) from your SD card.
  2. Prepare your .wav file using Audacity to clip and convert however you need, up to 1 minute is Flipnote's limit.
  3. Drag and drop the .wav on the tool. The tool will spit out the compressed .adpcm file (basically just a headless wav, the tool includes a decoding function if you open with no args)
  4. When prompted, enter your .ppm file extension included
  5. Put the newly created file back on your SD card (the filename is important but the tool sorts it for you)
Double quality instructions:
  1. In flipnote, set the speed to a LOWER framerate than what you intend to use, this is the speed you will import the song at.
    (the tables I made randomly broke so see this image):
    1752870933780.png
  2. In Audacity, choose 'Effect > Change speed and pitch' and enter your multiplier, examples above. To find your multiplier, use the formula of Import FPS / Target FPS.
    Flipnote's audio quality at 1x speed is 8KHz, the speed up from 0.5x to 1x will double the quality to 16KHz! So with max 8 second audio, you can have the playback quality of 8192 x 7.5 = 61,440Hz, but this is overkill since the 3DS max playback is 48KHz.
    Don't wanna math? Visit Py code to get all multipliers and result quality from your final speed input
  3. Save your slowed song as a new .wav and continue on to the Import instructions above these ones.
  4. After import instructions: Now that you've got your new edited flipnote, edit it in the app and increase the speed to your target FPS!
If for some reason it doesn't work let me know, I usually do manage to leave in a silly oversight somewhere. Enjoy! :yay3ds:
 
Last edited by Blurro,
Super cool!!!!! Are there any demo flipnotes with the higher audio quality??
You could compare these two
Mic:
Tool:

And I checked out every other flipnote that used the same song, they ALL had that same weird white noise effect right as the singer pitches high so the mic input really doesnt like it

The tool is not perfect yet though, give it a few more days since I'm still working on matching Flipnote's own encoding to be 1:1. Almost there though (its basically done just a mess of debug rn)
 
You could compare these two
Mic:
Tool:

And I checked out every other flipnote that used the same song, they ALL had that same weird white noise effect right as the singer pitches high so the mic input really doesnt like it

The tool is not perfect yet though, give it a few more days since I'm still working on matching Flipnote's own encoding to be 1:1. Almost there though (its basically done just a mess of debug rn)

THIS IS AMAZING
 
Wait this is awesome!!! After so many errors and installing a couple C++ related libraries I can finally open up the .exe but... it looks kinda funky, is it supposed to look like this?
 
  • Like
Reactions: NitroShell
Wait this is awesome!!! After so many errors and installing a couple C++ related libraries I can finally open up the .exe but... it looks kinda funky, is it supposed to look like this?

There's escape codes that print a logo and stuff but it only works on the Windows 11 cmd (Terminal, doesnt come default on 10)
1744844282494.png


I've uploaded a new release please let me know if its fixed for you old cmd users lol
 
Last edited by Blurro,
  • Like
Reactions: Moseii
It does work now! I dragged the .wav to the tool and this is what it says
1744932388343.png

If I open the tool again the default menu pops up, I'm not sure what else to do, if I drag the .wav file to the tool it just spits out an error (Also I don't know what the ffmpeg.exe does).
1744932683606.png

This is what I have on the folder
1744932516224.png
 
If I open the tool again the default menu pops up, I'm not sure what else to do, if I drag the .wav file to the tool it just spits out an error (Also I don't know what the ffmpeg.exe does).
aight the error this time is my tool didnt handle finding ffmpeg path if theres a space in it like yours does lol
And ffmpeg is just a handy audio tool, used here to turn a wav/mp3/mp4 etc to a 8192hz wav which the tool can turn into samples

Added a new release again, hopefully THIS TIME you have nothin going wrong
 
The tool works!!! For HQ audio (aka audio sped up and limited to 30 seconds of recording) I'd recommend using https://j0w03l.me/flipnote-tools/audio-speed-cvt/
The diference between this tool and that one is negligible (unless you're recording audio with a super crappy speaker, in that case this tool is better).
This tool on the other hand is super useful to import audio onto a full 60 seconds flip. Congrats! awesome tool.
 
  • Like
Reactions: Blurro
So after far too many hours of not managing to get a HD clip of a song into flipnote, I have finally created this tool that allows you to just choose your audio .wav file, your .ppm file, and it replaces the audio for you.

Doesn't seem like anyone other than me has asked for this but, well, if you ever need it its here now. Recording with the 3DS mic sounded BAD, I did want to try the method of recording pc audio straight into the mic input port with an aux splitter but uhh, the aux splitter just did nothing. But this works great instead.

https://github.com/Blurro/FlipnoteAudioReplacer/releases/
Download here ^^^

Import instructions:
  1. Get your .ppm file(s) from your SD card.
  2. Prepare your .wav file using Audacity to clip and convert however you need, up to 1 minute is Flipnote's limit.
  3. Drag and drop the .wav on the tool. The tool will spit out the compressed .adpcm file (basically just a headless wav, the tool includes a decoding function if you open with no args)
  4. When prompted, enter your .ppm file extension included
  5. Put the newly created file back on your SD card (the filename is important but the tool sorts it for you)
Double quality instructions:
  1. In flipnote, set the speed to a LOWER framerate than what you intend to use, this is the speed you will import the song at.
    [TABLE=full]
    [TR]
    [TH]Speed[/TH]
    [TH]Frames Per Second (FPS)[/TH]
    [/TR]
    [TR]
    [TD]1[/TD]
    [TD]0.5 FPS[/TD]
    [/TR]
    [TR]
    [TD]2[/TD]
    [TD]1 FPS[/TD]
    [/TR]
    [TR]
    [TD]3[/TD]
    [TD]2 FPS[/TD]
    [/TR]
    [TR]
    [TD]4[/TD]
    [TD]4 FPS[/TD]
    [/TR]
    [TR]
    [TD]5[/TD]
    [TD]6 FPS[/TD]
    [/TR]
    [TR]
    [TD]6[/TD]
    [TD]12 FPS[/TD]
    [/TR]
    [TR]
    [TD]7[/TD]
    [TD]20 FPS[/TD]
    [/TR]
    [TR]
    [TD]8[/TD]
    [TD]30 FPS[/TD]
    [/TR]
    [/TABLE]

    [TABLE=full]
    [TR]
    [TH]Import Speed[/TH]
    [TH]Target Speed[/TH]
    [TH]Multiplier[/TH]
    [TH]Max song length (before slowdown)*[/TH]
    [TH]Result quality[/TH]
    [/TR]
    [TR]
    [TD]6 (12 FPS)[/TD]
    [TD]8 (30 FPS)[/TD]
    [TD]0.4x[/TD]
    [TD]24 sec[/TD]
    [TD]20,480 Hz[/TD]
    [/TR]
    [TR]
    [TD]5 (6 FPS)[/TD]
    [TD]6 (12 FPS)[/TD]
    [TD]0.5x[/TD]
    [TD]30 sec[/TD]
    [TD]16,384 Hz[/TD]
    [/TR]
    [TR]
    [TD]4 (4 FPS)[/TD]
    [TD]8 (30 FPS)[/TD]
    [TD]0.133x[/TD]
    [TD]8 sec[/TD]
    [TD]61,440 Hz (above cap)[/TD]
    [/TR]
    [/TABLE]
    *After slowdown, always max 1 minute!

  2. In Audacity, choose 'Effect > Change speed and pitch' and enter your multiplier, examples above. To find your multiplier, use the formula of Import FPS / Target FPS.
    Flipnote's audio quality at 1x speed is 8KHz, the speed up from 0.5x to 1x will double the quality to 16KHz! So with max 8 second audio, you can have the playback quality of 8192 x 7.5 = 61,440Hz, but this is overkill since the 3DS max playback is 48KHz.
  3. Save your slowed song as a new .wav and continue on to the Import instructions above these ones.
  4. After import instructions: Now that you've got your new edited flipnote, edit it in the app and increase the speed to your target FPS!
If for some reason it doesn't work let me know, I usually do manage to leave in a silly oversight somewhere. Enjoy! :yay3ds:
This is amazing! its nice to see flipnote tools getting released even in 2025!!
 
  • Like
Reactions: Blurro
I've been getting an error that say "Can't decode audio from this type."

I've done everything and so far I keep getting this error.
 
I've been getting an error that say "Can't decode audio from this type."

I've done everything and so far I keep getting this error.
so youre trying to extract audio from a flipnote file? what file are you entering when you do this?

if you're trying to modify the flipnote by importing audio, you're supposed to drag the sound file (.wav, mp3, mp4...) on top of the program in your file explorer, not double clicking the program
 
Why's the formatting of the text looking weird?? I remember this looking alright before
Post automatically merged:

I guess I'll just leave this here for the time being (from the wayback machine)
Flip aud import settings.png
 

Attachments

  • 1749655660988.png
    1749655660988.png
    41.5 KB · Views: 43
Last edited by Logenter,
  • Like
Reactions: Blurro
Hi, I made an account just so I could post in this thread for help:

I've been trying to use this tool but it seems like no matter what I do, I get an error about corrupted data. I tried using FFMPEG on Windows 10, Windows 7, I downloaded FFMPEG from the github, then from the normal site, then I used the one that FlipAud downloads on its own, and then I tried putting the SD card in my DSi, then my 3DS, and then I tried every single format of .wav file that I could use on Audacity, and then .MP3, and then tried a different song(both songs were 59 seconds long btw), but I got the same error every single time despite my relentless scientific testing. What am I doing wrong, or what is the fix?

Regards
 
Hi, I made an account just so I could post in this thread for help:

I've been trying to use this tool but it seems like no matter what I do, I get an error about corrupted data. I tried using FFMPEG on Windows 10, Windows 7, I downloaded FFMPEG from the github, then from the normal site, then I used the one that FlipAud downloads on its own, and then I tried putting the SD card in my DSi, then my 3DS, and then I tried every single format of .wav file that I could use on Audacity, and then .MP3, and then tried a different song(both songs were 59 seconds long btw), but I got the same error every single time despite my relentless scientific testing. What am I doing wrong, or what is the fix?

Regards
Hi could you send me the wavs you tried? Contact me on discord @ blurro if you can

If it says corrupted on Flipnote itself that usually means the RSA key sign didn't work. Try this build which doesn't use the curl command to grab it & this has openssl signing lib built in
 
Last edited by Blurro,
Hi, I made an account just so I could post in this thread for help:

I've been trying to use this tool but it seems like no matter what I do, I get an error about corrupted data. I tried using FFMPEG on Windows 10, Windows 7, I downloaded FFMPEG from the github, then from the normal site, then I used the one that FlipAud downloads on its own, and then I tried putting the SD card in my DSi, then my 3DS, and then I tried every single format of .wav file that I could use on Audacity, and then .MP3, and then tried a different song(both songs were 59 seconds long btw), but I got the same error every single time despite my relentless scientific testing. What am I doing wrong, or what is the fix?

Regards
Assuming FlipAud is working and it generates the Flipnote.ppm with the audio on it (Use https://flipnote.rakujira.jp/ to double check the audio is working) but only gets corrupted when playing it on the DSi the problem is most likely because the flipnote Is not Signed. Use this flipnote signer to sign the flipnote and play it on the Dsi: https://github.com/TheRealYunix/Flipnote-Signer
 
  • Like
Reactions: ASSASSIN-Z
Assuming FlipAud is working and it generates the Flipnote.ppm with the audio on it (Use https://flipnote.rakujira.jp/ to double check the audio is working) but only gets corrupted when playing it on the DSi the problem is most likely because the flipnote Is not Signed. Use this flipnote signer to sign the flipnote and play it on the Dsi: https://github.com/TheRealYunix/Flipnote-Signer
just to put this here, he did message me on discord and the issue was not having openssl (for signing) preinstalled on their computer like the tool assumed, so I made a new ver with the openssl lib packed inside here if anyone else has signing issues
Post automatically merged:

Why's the formatting of the text looking weird?? I remember this looking alright before
I guess I'll just leave this here for the time being (from the wayback machine) View attachment 510554
Yeah I dunno I never edited the post lol, but appreciate you retrieving this
 
  • Like
Reactions: Logenter
Is it possible that you could provide the full import and export speeds with the audacity % multiplier? Sometimes I want to record at 5 or 4 but those import speeds are missing (also 7 would be handy), and I'm completely clueless as to what % it shoudl be slowed down on audacity to make it sound right. ( ̄﹃ ̄)
 
Is it possible that you could provide the full import and export speeds with the audacity % multiplier? Sometimes I want to record at 5 or 4 but those import speeds are missing (also 7 would be handy), and I'm completely clueless as to what % it shoudl be slowed down on audacity to make it sound right. ( ̄﹃ ̄)
The main post's image shows speed -> frames per second. I cant really provide every possible combination like 1->2, 1->3, 1->4 etc though

Actually scratch that ive made it easy for you Py code to get all multipliers and result quality from your final speed input
Change the number under 'Input' to your final intended animation speed, and click Execute.

In case that link ever dies the code is just
Python:
t = int(input("Target Speed (1-8): "))
fps_map = { 1: 0.5, 2: 1, 3: 2, 4: 4, 5: 6, 6: 12, 7: 20, 8: 30 }
t_fps = fps_map[t]
print(f"{t} ({t_fps}fps)")
for i in range(1, 9):
    i_fps = fps_map[i]
    s = i_fps / t_fps
    m = t_fps / i_fps
    hz = int(m * 8192)
    print(f"\n{i} -> {t} = x{round(s, 6)}")
    print(f"{hz} Hz")
    print(f"{60 * s}s long")
 
Last edited by Blurro,

Site & Scene News

Popular threads in this forum