Log In  


VJ8 - A PICO-8 VJing tool

Add visuals to your music

Get your best playlist blasting, get VJ8 rolling and get the rave going! Use your joystick to change ANIMS - short procedural (or not) animations that put you into trance (effect not guaranteed). Comes with a free distasteful demo song!(i cant make musik)

Use your own animations

Grab your old fancy demos and tweetcarts and turn them into something to be played at the party - just drop the code into VJ8.

The beat's about to drop

Hold the X button during intense parts of your song and let the visuals do their work.

Controls:

⬅️ - p𝘳𝘦𝘷𝘪𝘰𝘶𝘴 𝘢𝘯𝘪𝘮.

➡️ - n𝘦𝘹𝘵 𝘢𝘯𝘪𝘮.

⬇️ - r𝘦𝘴𝘵𝘢𝘳𝘵 𝘤𝘶𝘳𝘳𝘦𝘯𝘵 𝘢𝘯𝘪𝘮.
(𝘧𝘰𝘳 𝘴𝘵𝘶𝘵𝘵𝘦𝘳 𝘦𝘧𝘧𝘦𝘤𝘵𝘴)

⬆️(hold) - s𝘵𝘢𝘳𝘵 𝘱𝘭𝘢𝘺𝘪𝘯𝘨 𝘣𝘳𝘦𝘢𝘬.
s𝘪𝘮𝘱𝘭𝘺 𝘳𝘦𝘭𝘦𝘢𝘴𝘦 ⬆️ 𝘵𝘰 𝘴𝘵𝘢𝘳𝘵
𝘱𝘭𝘢𝘺𝘪𝘯𝘨 𝘵𝘩𝘦 𝘯𝘦𝘹𝘵 𝘢𝘯𝘪𝘮.
a𝘭𝘵𝘦𝘳𝘯𝘢𝘵𝘪𝘷𝘦𝘭𝘺,𝘸𝘩𝘪𝘭𝘦 𝘩𝘰𝘭𝘥𝘪𝘯𝘨 ⬆️
𝘱𝘳𝘦𝘴𝘴 ⬅️ 𝘰𝘳 ➡️ 𝘵𝘰 𝘱𝘭𝘢𝘺 𝘱𝘳𝘦𝘷𝘪𝘰𝘶𝘴
𝘢𝘯𝘪𝘮 𝘰𝘳 𝘴𝘵𝘢𝘳𝘵 𝘱𝘭𝘢𝘺𝘪𝘯𝘨 𝘵𝘩𝘦 𝘯𝘦𝘹𝘵
𝘢𝘯𝘪𝘮.
y𝘰𝘶 𝘤𝘢𝘯 𝘢𝘭𝘴𝘰 𝘱𝘳𝘦𝘴𝘴 ⬇️ 𝘪𝘯𝘴𝘵𝘦𝘢𝘥
𝘵𝘰 𝘳𝘦𝘴𝘵𝘢𝘳𝘵 𝘵𝘩𝘦 𝘢𝘯𝘪𝘮 𝘵𝘩𝘢𝘵 𝘸𝘢𝘴
𝘱𝘭𝘢𝘺𝘪𝘯𝘨.

❎(hold) - t𝘶𝘳𝘣𝘰(𝘪𝘯𝘵𝘦𝘯𝘴𝘦) 𝘮𝘰𝘥𝘦.
hold 𝘥𝘶𝘳𝘪𝘯𝘨 𝘪𝘯𝘵𝘦𝘯𝘴𝘦 𝘱𝘢𝘳𝘵𝘴 𝘰𝘧
𝘵𝘩𝘦 𝘴𝘰𝘯𝘨 (𝘵𝘰 𝘴𝘱𝘦𝘦𝘥 𝘶𝘱 𝘢𝘯𝘪𝘮𝘴,
𝘧𝘰𝘳 𝘦𝘹𝘢𝘮𝘱𝘭𝘦).
y𝘰𝘶 𝘩𝘢𝘷𝘦 𝘵𝘰 𝘪𝘮𝘱𝘭𝘦𝘮𝘦𝘯𝘵 𝘵𝘩𝘪𝘴
𝘮𝘢𝘯𝘶𝘢𝘭𝘭𝘺 𝘪𝘯 𝘺𝘰𝘶𝘳 𝘢𝘯𝘪𝘮.
e𝘹𝘢𝘮𝘱𝘭𝘦:
	if (btn(❎))turbo_mode=true
	...
	if (turbo_mode)speed=speed*10

What are anims & breaks (manual from tab №2)

--[[ -=anims=-
an anim is an animation.

all anims are stored in
all_anims table and are being
cycled through (or picked
at random (see random_anims))
during performance.

!all_anims is a zero-based table!

an anim in all_anims table
can be either a table
(init-update-draw anim)...:
	all_anims={
		--this is an anim
		[0]={
			init=*function*,
			update(optional)=*function*,
			draw=*function*
		},
		--this is also an anim
		{
			init=*function*,
			update(optional)=*function*,
			draw=*function*
		},
	}
...or a function
(draw-only anim):
	all_anims={
		--this is an anim
		[0]=function()
			-- _draw() code here
		end,
	}

learn more about
init-update-draw anims
and draw-only anims by
searching(ctrl+f) the
star symbol (shift+s)
]]

--[[ -=breaks=-
a break is a short anim to be
played in-between regualr
anims.
it's triggered by pressing
and holding the ⬆️ button.

breaks are stored in
break_anims table.

just like regular anims,
a break can be a table
(init-update-draw)
or a function (draw-only).
]]


Cart #vj8_newmaker_1-0 | 2024-09-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

4


This is great - I love the idea, and the animations are really nice.

Unsolicited suggestion, feel free to ignore:

This makes me think of bytejams, events where a few different people livecode effects for an hour or so. The one's I've seen have used a TIC-80 build with a fft() function that provides information about an external audio stream, so the participants can sync their effects to music. It could be interesting to provide a web build of this tool that does something similar using GPIO?

Bytejam recording, for context - jump to about the 1 hour mark for the final showcase:


@luchak, i have already done something like this - several carts that read the PICO-8 notes that are being played and sync their visuals to them. I've thought of providing a table with the current notes for the anims to use, but im too lazy atm to implement that here. the idea is undoubtedly cool though.


Got it! I was talking more about syncing to external audio for use as a VJ tool - but, yeah, I definitely understand that that might not be a direction you'd want to go.



[Please log in to post a comment]