Hacker News new | comments | show | ask | jobs | submit login
Show HN: Audioshop – Audio image editing (github.com)
285 points by robert_foss on Apr 18, 2017 | hide | past | web | favorite | 45 comments

The author of the modular synth "SunVox" made a live tool called "PixiVisor" that does something similar.


The last two videos on the page are particularly impressive, which demonstrate video mixing using two channels of an audio mixer, and video blurring from multi-path audio reflections.

That looks like a fantastic tool.

Being able to do interface with external off the shelf audio gear with an otherwise software only solution would be the goal of all this.

Cool thanks for sharing the name. I've been thinking a lot about functions that operate across multiple modalities (modalities as in visual, auditory, etc) lately. Good to know someone else has thought about it too, and looks like went much further.

that guy/gal is an uber engineer. love all the stuff they've made!

Sunvox really is a stunning piece of software, for anyone who hasn't seen it or tinkered with it. It explores UI and synthesis in ways that haven't been really explored much (Jeskola Buzz started down the path many years ago, and there have been others in that space, but Sunvox is a beast in a category of its own). And, it runs (well) on very small devices...I was able to run it effectively on an old Nexus One, and it does very well on my Nexus 7 table and modern phone. It's hard to actually compose with such a small interface, but the synthesis and UI are efficient as hell. And, of course, it runs fine on a laptop of any sort.

So, yeah, I agree. Alexander Zolotov is brilliant and prolific. The demo videos for Sunvox are worth a watch.

Hi HN,

I just finished adding video support (and stubbed out audio support).

Due to already using ffmpeg for image manipulations, this turned out to be rather easy.

Give it a try using something like this:

  $ ./mangle.sh in.mp4 out.mp4 --color-format=yuv444p --bits=8 --blend=0.4 overdrive 17 hilbert -n 5001

A round of applause http://i.imgur.com/jJMwl2u.gif

Hahaha, why thank you.

This is fantastic.

For folks wanting to play around with this on OSX:

brew install ffmpeg lame brew install sox --with-lame

The --with-lame is important if you want to process mp4s.

Might want to consider putting some kind of progress indicator (simple polling on tmp_audio_in.u8 vs tmp_audio_out.u8). I ended up looking at the output directory with

watch -n .5 ls -la /tmp/audio_shop-DIRECTORY

I think the cleanup isn't working quite right, getting a rm unlink failure.

Seriously, this is a neat hack.

That's excellent feedback, thanks!

I'll keep hacking at it this stuff for at least a little bit.

i think the progress could be done with pv. | pv -s $( somehowgetinputsize ) > tmp_audio_out.u8

Oh, I love things like that. I wrote a Photoshop file format plugin to load/save wave files a long time ago to manipulate audio files with image filters. Haven't updated it since, so it's still Mac OS 9 only.


I used to play with this as a kid. I couldn't script it, but I could remove the headers from a bmp and add the headers for a wav in a hex editor. Then I tried all the effects in audacity. The resulting images were pretty cool (only grayacale).

I also tried different audio compressions on the picture. Ogg vorbis even looked better than mp3, haha.

I actually played with doing the opposite when I was in high school: photoshop had a "RAW" file format plugin which let you specify the offset past the header and the bitmap data stride, height, width, and pixel format. You could open a WAV file as a Nx1 bitmap and then apply filters to it and get some interesting effects when saved back out and played in an audio player.

Discussion from earlier today: https://news.ycombinator.com/item?id=14133780

Might be interesting to experiment with different mappings of pixel location to audio sample number, rather than just having a row by row linear scan from corner to corner.

If there was a raw format that did this, or some other very exotic thing, that would be very interesting.

Right now I've mostly been exploring YUV and RGB colorspace in either packed or planar formats.

I am curious. I do not know much about image encoding and the such. What other types are there besides linear either row by row or column by column? It seems to me that those two are the only logical ways to map pixels.

Z-order (aka Morton order) is widely used in GPU acceleration, as a means of converting 2D locality into 1D locality.


Any permutation could be used, but I suppose you'd want to use ones that form some sort of visually recognisable pattern. For example, a spiral emerging from the centre of the image, or all the even numbered pixels from a linear scan followed by all those indexed by an odd number.

"a spiral emerging from the centre of the image"

Would this be middle-out compression?

Polar coordinates?

Is that something like metasynth (http://www.metasynth.com) ? You import a picture and use it through FFT to generate sound ?

About metasynth, I don't know. I had a quick look but it would seem to be more of an audio only application.

Nope! Less fancy than that. I just take the bitstream and 'choose' to interpret it as audio.

For it to work somewhat well, a raw video format like YUV444P is used.

Neat. I assume it would be possible to do the same thing in reverse then? As in, use image editing effects on audio clips?

https://www.fsynth.com is a web synthesizer which is just doing that, a canvas content is generated by the GPU and converted to sounds in real-time, there will be a feature to import sounds directly soon.


That might be the a better way of doing things actually, since visual tools are 2-dimensional by nature.

I always love glitchart, this is pretty rad. Good job!

Thanks, I'm having a ton of fun with it.

I just added video support.

Working on audio support now.

This is a very strange and fun idea. Good job!

You can use Audacity to open and edit images using musical effects too (and sometime destroy image metadata)

That's the nice part about using a raw format like YUV444 or RGB24. No metadata to destroy.

Has any album art been done with this?

Possibly, I've following this for a bit. Some really interesting stuff comes up. https://www.reddit.com/r/glitch_art/

The explanation page seems to crash every browser on my phone I can throw at it. Very weird...

next step: edit an image using a full score for a song thus creating a movie.

Input a picture and a song and create a gif/video... That would be crazy great.

Now make gifv with a script that changes the audio effects over time.

I'm on it :p

This will make some interesting synthwave art.

That's a really neat idea. Good job!

I like the overdrive effect!

You had one job ... what we need is PhotoSound. With layers of groove and harmony to deepdream our way to push button music creation.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact