(Access it from BBS with load #miditron-0
)
Miditron!
The first midi-to-picotron conversion tool!
This tool allows you to convert .mid or .midi files into .sfx files used by the Picotron synth tracker.
Just drag and drop the desired midi onto the window, and voila! Your midi is transformed into a .sfx file, conveniently placed onto your sfx folder in your current cart~
Beware!! The tool is pretty barebones though! And far, far from perfect. So you might encounter glitched tracks and have to manually adjust patterns and tracks to fit the desired results.
Some handy tips for adjusting your midi files for an optimal result would be:
- Use only 2/4, 3/4 and 4/4 meters; These meters are the most optimally supported by the tool
- Avoid odd-numbered sections of the song (sections are separated by time signature change or tempo change)
- Avoid using .midi with too many simultaneous notes/instruments (Picotron only supports 8 a time)
~ ❤️ starry trip 🌟 ~
a musical journey through the stars
by ral schutz
my submission for the free music jam
containing 3, free to use original tracks
under the cc by-sa 4.0 deed license
ToriEngine - ECS Metroidvania Engine
I'm building an Entity-Component-System engine-thing to make platforming metroidvania games like Cave Story on Pico-8. I was initially building it for a Jam game, Tori Tower, but the engine fell out of scope x.x
I have run into some issues as I was building the code, and I'd really appreciate if anyone would like to help me here and there ^^
I'll start by explaining how the engine works, so it all becomes easier to digest later:
Architecture
An ECS (Entity-Component-System) is an architecture for games in which the World State is populated by Entities, which are simply containers (tables) who store values. These values are called Components, and each entity has its own set of components, which its own values assigned.
Entities hold no functions. The logic is handled by Systems, which are functions that make changes in the World State every frame. A system does so by filtering out the entities in the world who have components relevant to the system, and executes the function upon each entity selected.
Example: Moving system
A moving system moves every entity that is movable each frame.
So, the system _move
will filter out the world
table, so that it only selects the entities who have the move
and pos
component. Those components look a bit like this:
entity_that_moves={ pos = {x=30,y=64} --position component move = {vel_x=1,vel_y=0,max_vel_x=3,max_vel_y=2,acc_x=1, acc_y=3, friction=0.8} --movement component } |
Filtering out these systems, it'll run the logic for movement:
function(ent) ent.move.vel_x=mid(-ent.move.max_vel_x,ent.move.vel_x+ent.move.acc_x,ent.move.max_vel_x) ent.move.vel_y= --yadda yadda yadda you get the point end |
With that said, I'll explain how my engine is working.
The Core
The core is simple and compact, and credit goes to @selfsame for creating the system, and @alexr for building upon it:
https://www.lexaloffle.com/bbs/?tid=30039
-- basic function _has(e, ks) for n in all(ks) do if e[n]==nil then [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=132836#p) |