Log In  

Cart #bury-0 | 2021-10-17 | Code ▽ | Embed ▽ | No License

PICO-8 PCM COLAB: https://colab.research.google.com/drive/1HyiciemxfCDS9DxE98UCtNXas5TrM-5e?usp=sharing

So after reading carlc27843 and czarlo's explanations of how to digitize audio for Pico-8, I wanted to see if I could make things a little bit easier on myself by making a Colab to automate the process. Hope this is useful to someone!

P#98777 2021-10-17 07:00


Ooh, looks awesome!

P#98779 2021-10-17 08:08

@rnd thanks so much for the p8scii-encoder tool!!

P#98788 2021-10-17 14:38

Cormano feelings

P#98794 2021-10-17 17:31

I can't believe the madman did it

P#98813 2021-10-18 11:27

Nice cart!

By the way, I didn't actually write the PCM code, it was actually rnd who wrote the PCM playing code, then I just used it in other carts. (it also could've been carlc who wrote it and rnd just yoinked it, but I'm not completely sure).

P#99127 2021-10-25 20:37 ( Edited 2021-10-25 20:37)

wow, ive never heard speech synthesis that clear on pico before. this is pretty awesome.

P#99399 2021-10-31 00:36

@D0S81 It's not actually synthesis, just digitized audio. I have been experimenting with possibly implementing something like the Software Automatic Mouth in P8 though, building on @dhostin's bytebeat interpreter.

Cart #phonemes-0 | 2021-10-30 | Code ▽ | Embed ▽ | No License

Not all of the phonemes are quite there yet, and some don't even sound like the phonemes they're supposed to be, unfortunately. There was a lot of "earballing" in my formula to get the formants at approximately the correct values. I'm not sure what sample rate SAM runs at or if it's at all close to the 5.5kHz of P8 PCM.

P#99877 2021-11-09 19:03 ( Edited 2021-11-09 19:09)

Thanks! I combined the instructions on collab with parts of your code, esp. loadpcm, playpcm and init parts realted to pcm (I noticed that poke(0x5f36,16) was required to unlock general memory at 0x8000 before PICO-8 v0.2.4).

I still had an issue with the pop at the beginning (can also be heard in your cart). This can be fixed by skipping the very first byte, apparently, i.e. by setting the initial pcmpos = 1 (instead of 0).

I understood this thanks to the reverse functionality, as playing reverse does not pop at the beginning, but at the end!

P#117649 2022-09-19 11:34

[Please log in to post a comment]