New games every week!
JXMb Tools
20th March 2023
JXMb is a random music generator that takes melodies you input, and spits out a randomly generated recreation of the melody using a variety of different methods.

-=-=-



You can Play with JXMb here



How To



Plot notes into patterns. When plotting a note, you can drag it out to make a longer note. Click a note to erase it.

Select and edit different patterns by clicking on them in the top left.
You needn't fill the whole lot, but do at least try to add one for each Melody, Harmony, Bass and Drums. The more patterns you fill out, the more elements the music randomiser has to play with.

Use the >Pattern Play button to hear your current pattern.
Once done, hit >Random Play and it'll start mixing things together in that special way that JMTrackr does.

In order for the engine to function correctly, you need to compose all of your patterns in the exact same key/chord. That way, once the engine starts randomly jumbling things together, there won't be horrible clashes with notes.

User Interface



Songs can be renamed using the text box on the top right.
On the top left is a "Song String". This can be copy+pasted to share songs with other people, or pasting the songs into GotoJSE where they can be used in games and such.

The Load button opens up the Library, where there's a decent selection of songs available in the library, and a very subtle delete button at the bottom when selecting tracks.

Export and Import buttons are permanent fixtures at the top of the screen.
If two songs have the same title, the latest version will overwrite the older one, so either try to keep track of that, or be imaginative with your naming
Note : Please be sure to Export often, as a random browser cache-clearout will erase all of your tracks, and you'll want to be able to import them again.

Feedback



If you've made any choons, please do send them my way and I'll add them to the library. Include song titles, default tempo, and credits for yourself.

If there's any particular functionality you think I've left out of the engine, be sure to let me know. I think I need to add a seed button... .. Expect that to pop up shortly.
Also, a "I'm rubbish at doing drum loops, make one up for me" button might be nice.

System Requirements



JXMb runs in your browser.
The engine "should" run on most modern devices and browser combinations.

A decent screen resolution and size are both essential here.
My lazily designed GUI simply won't fit onto a mobile phone display, but is at least useable on a 10"+ tablet screen, as long as you have nimble pointy fingers

Otherwise, desktop or laptop should be fine.

Where!?



You can Play with JXMb here

Again, if you make anything interesting, send it my way and I'll bulk up the included song library with your melodies.

GotoJSE



In addition, the engine has been integrated into GotoJSE.
If the engine crashes upon first run, give it a refresh, since the old JMTrackr engine doesn't quite know how to cope with the new music format!!
Once refreshed, both old and new JMTrackr "Song Strings" can be used, and will happily play without any issues.

-=-=-

// Happy Birthday, Hurray! // by Jayenkai // Created 2021/9/5 Graphics 512,512,1 Symbol 0,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0@p,0_0p/0_0p_00p_p!0.p_p_p_p_p_p_p_p_p_p_p_p_p_p_p_p_p_p@9p?9p?9p/9p.99pp9pp9pp9p.9p,9p9p9pp9p.9p9p9p99p99p9.p!9p99p9p9.p9p9/p9!p9,p99pp9!p9_p9_9_9_9_9_9_9_9_9_9_9_449@4!9!4_4_4_4_4_4_4_4949?49_49_99449_9_9_9,49_9_9_9.49_9_9_9_9_9_9_49_9_9_9_9_9_9_9,009_9_9_90_9_9_"; Symbol 1,"2__0_0_0_0_0_0_0_0_0_0_0_0_0,u0_0_0_0.u0_0_0_0,ddb0_0_0_00bdd0_0_0_00bbd0_0_0_00dbb0_0_0_00ddb0_0_0_00bdd0_0_0_00bbd0_0_0_00dbb0_0_0_00ddb0_0_0_00bdd0_0_0_00bbd0_0_0_00dbb0_0_0_00ddb0_0_0_00bdd0_0_0_00bbd0_0_0_00dbb0_0_0_00ddb0_0_0_00bdd0_0_0_00bbd0_0_0_00dbb0_0_0_VVddbVV0_0_0_V,0_0_0_00V,0_0_0_qsqVssq0_0_0@qssqq0_0_0_00q"; Symbol 2,"2__0_0.;!0_0_0?;,:!;,0_0_;;:_:,;;0_0?;;:_:?zz;;0_00;:_:,z@;0_;:_::z_zz;0/;:_:z_z?;0!;:,;:,;:z_z!;0?;:_z_z@;0.;:_z_z@;0,;:.;:,;z_z_z;00;:@z_z_zz;00;:/z_z_z,;0;:/z_z_z?;;:/z_z_z?;;:!z_z_z!;;:!z_z_z!;;:!z_z_z!;;:!z_z_z!;0;:.z_z_z!;00;:.z_z_z!;00;:.z_z_z!;0,;:,z_z_z?;0.;:,z_z_z?;0?;::z_z_z.;0!;:,z_z_z,;0/;:,z_z_z;0_;:,z_z@;0_00;;::z_z?;;0_0?;;z_z,;;0_0_;,z!;,0_0_0?;!"; Symbol 3,"0__0_:0_0_0:0_0_0,z"; JMTrackr(120,"Retro","[3][L][F1z1D1z1I1z1H1z3D1D1F1z1D1z1K1z1I1z3D1D1P1z1M1z1I1z1H1z1F1z1N1N1M1z1I1z1K1z1I1z3D1D1][D1z7D1z3I1zBK1z7K1z3D1zB][zGD1z1F1z1H1z1I1z1K1zFK1z1I1z1H1z3][H][z4D1z3D1z7I1z3I1z7K1z3K1z7I1z3I1z3][D6z2D1z3I6z2I1z3K6z2K1z3I6z2D1z3][zGP1z1R1z1T1z1U1z1W1zFW1z1U1z1T1z3][B][D1z1D1z3D1z1D1z3I1z1I1z3I1z1I1z381z181z381z181z3I1z1I1z3I1z1I1z3][D1z3D1z3D1z3I1z3I1z3I1z3K1z3K1z3K1z3I1z3I1z3I1z3][D][11z331z331z321z331z331z311z331z311z321z331z331z3][11z331z331z321z331z331z311z131z111z331z321z331z331z3]",12) txt= "Happy Birthday! Hurray! Woohoo!!! CAKE!!! " txt=txt+" " Dim Bubble(16,2) for b=0 to 16 Bubble(b,1)=Rnd(512) Bubble(b,2)=Rnd(1024) next SetBuffer BG SetThick 2 w=360/1024 For x=0 to 2048 InkRot x*w,0.4,0.5 Line x,0,x-1024,1024 Next SetBuffer FG bgx=0 txtx=512 SetFont "Journey" Repeat CLS:AntiAlias Off:ResetDraw bgx=bgx-3 txtx=txtx-5 WrapBG bgx,256 SetCol 0,0,0,0.1 Rect 0,400,512,512 Rect 0,404,512,512 Rect 0,408,512,512 ResetDraw SetSize 8 DrawImg 256,350,0 DrawImg 256,180,1 SetBlend "Light":SetCol 255,100,40 SetAlpha 0.3 For m=0 to 4 Light 256+Rnd(-16,16),64+Rnd(-16,16),6,0.5 Next Light 256,64,100 SetSize 2 SetAlpha 0.1 mh=MouseHit() For b=0 to 16 if bubble(b,2)>900 then bubble(b,1)=Rnd(512) bubble(b,2)=Wrap(bubble(b,2)-(((b mod 5)*0.3)+1),0,1024) bubble(b,1)=bubble(b,1)+Sin(Mills()*0.15+b*48) DrawImg bubble(b,1),bubble(b,2)-256,2 if (CollidePointToCircle(MouseX,MouseY,bubble(b,1),bubble(b,2)-256,64) and mh>0) or Pyth(bubble(b,1)-256,bubble(b,2)-320)<64 PlaySFX("Noise_Splash") for q=0 to 15 ThrowParticle bubble(b,1),bubble(b,2)-256,2,q*22.5,Rnd(1,3),3 next bubble(b,2)=1024 bubble(b,1)=Rnd(512) endif Next ResetDraw z=32 SetFontSize z for x=0 to len(txt) dx=Wrap(txtx+x*z,0,len(txt)*z)-512 if dx>-512 and dx<512 SetCol 0,0,0 Text dx+256+2,160+Sin((Mills()*0.2)+x*24)*16+2,mid(txt,x,1),1 InkRot x*7+Mills()*0.1,0.6,1 Text dx+256,160+Sin((Mills()*0.2)+x*24)*16,mid(txt,x,1),1 endif next Flip Forever

Views 156, Upvotes 24  
Daily Blog , Jxmb
New games every week!
Site credits : Jayenkai, one crazy fool who has far too much time on his hands.
(c) Jayenkai 2023 and onwards, RSS feed 86

Tools - JXMb - AGameAWeek