DefineArrayConstant - just a wish list item,. .

If there is something important you think is missing in the current version of ZGameEditor then you can post a feature request here!

Moderator: Moderators

Post Reply
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

DefineArrayConstant - just a wish list item,. .

Post by jph_wacheski »

Ok, low priorety unless its dead simple to do and/or others would use it too,.

In my mind this looks the same as a DefineArray in the left lower GUI pannel (dimensions, size x3) however it has a nice simple spreadsheet style interface in the main editing pannel of the GUI. This way if one needs to diffine a group of values that can be accessed as an array[x,y,z] it can be done fast and clearly,. I can think of lots of uses for numbers I can refure to by their positions in such an array,. music being the one im working with now,. other wise I suppose I can populate an array from a file and use that,. if this was built once it would be usefull always,. .

currently I need to do this;

Code: Select all

sequancer_table[0,0]=0; //track 0
sequancer_table[0,1]=0;
sequancer_table[0,2]=0;
sequancer_table[0,3]=0;

sequancer_table[0,4]=1;
sequancer_table[0,5]=0;
sequancer_table[0,6]=1;
sequancer_table[0,7]=0;

sequancer_table[0,8]=0;
sequancer_table[0,9]=0;
sequancer_table[0,10]=0;
sequancer_table[0,11]=0;

sequancer_table[0,12]=0;
sequancer_table[0,13]=4;
sequancer_table[0,14]=0;
sequancer_table[0,15]=3;

sequancer_table[0,16]=0;
sequancer_table[0,17]=0;
sequancer_table[0,18]=0;
sequancer_table[0,19]=0;

sequancer_table[0,20]=0;
sequancer_table[0,21]=0;
sequancer_table[0,22]=2;
sequancer_table[0,23]=0;

sequancer_table[0,24]=0;
sequancer_table[0,25]=0;
sequancer_table[0,26]=1;
sequancer_table[0,27]=0;

sequancer_table[0,28]=0;
sequancer_table[0,29]=0;
sequancer_table[0,30]=1;
sequancer_table[0,31]=0;

sequancer_table[1,0]=3; //track 1
sequancer_table[1,1]=0;
sequancer_table[1,2]=2;
sequancer_table[1,3]=0;

sequancer_table[1,4]=1;
sequancer_table[1,5]=0;
sequancer_table[1,6]=2;
sequancer_table[1,7]=0;

sequancer_table[1,8]=0;
sequancer_table[1,9]=0;
sequancer_table[1,10]=2;
sequancer_table[1,11]=0;

sequancer_table[1,12]=1;
sequancer_table[1,13]=0;
sequancer_table[1,14]=2;
sequancer_table[1,15]=0;

sequancer_table[1,16]=0;
sequancer_table[1,17]=0;
sequancer_table[1,18]=2;
sequancer_table[1,19]=0;

sequancer_table[1,20]=1;
sequancer_table[1,21]=0;
sequancer_table[1,22]=3;
sequancer_table[1,23]=0;

sequancer_table[1,24]=0;
sequancer_table[1,25]=0;
sequancer_table[1,26]=2;
sequancer_table[1,27]=0;

sequancer_table[1,28]=1;
sequancer_table[1,29]=0;
sequancer_table[1,30]=2;
sequancer_table[1,31]=0;

sequancer_table[2,0]=0; //track 2
sequancer_table[2,1]=0;
sequancer_table[2,2]=0;
sequancer_table[2,3]=0;

sequancer_table[2,4]=3;
sequancer_table[2,5]=0;
sequancer_table[2,6]=0;
sequancer_table[2,7]=0;

sequancer_table[2,8]=3;
sequancer_table[2,9]=0;
sequancer_table[2,10]=0;
sequancer_table[2,11]=0;

sequancer_table[2,12]=0;
sequancer_table[2,13]=0;
sequancer_table[2,14]=4;
sequancer_table[2,15]=0;

sequancer_table[2,16]=3;
sequancer_table[2,17]=0;
sequancer_table[2,18]=0;
sequancer_table[2,19]=0;

sequancer_table[2,20]=3;
sequancer_table[2,21]=0;
sequancer_table[2,22]=0;
sequancer_table[2,23]=0;

sequancer_table[2,24]=0;
sequancer_table[2,25]=0;
sequancer_table[2,26]=0;
sequancer_table[2,27]=0;

sequancer_table[2,28]=3;
sequancer_table[2,29]=0;
sequancer_table[2,30]=0;
sequancer_table[2,31]=0;

sequancer_table[3,0]=0; //track 3
sequancer_table[3,1]=0;
sequancer_table[3,2]=0;
sequancer_table[3,3]=0;

sequancer_table[3,4]=0;
sequancer_table[3,5]=0;
sequancer_table[3,6]=0;
sequancer_table[3,7]=0;

sequancer_table[3,8]=0;
sequancer_table[3,9]=0;
sequancer_table[3,10]=0;
sequancer_table[3,11]=0;

sequancer_table[3,12]=3;
sequancer_table[3,13]=0;
sequancer_table[3,14]=0;
sequancer_table[3,15]=0;

sequancer_table[3,16]=0;
sequancer_table[3,17]=0;
sequancer_table[3,18]=0;
sequancer_table[3,19]=0;

sequancer_table[3,20]=2;
sequancer_table[3,21]=0;
sequancer_table[3,22]=0;
sequancer_table[3,23]=0;

sequancer_table[3,24]=0;
sequancer_table[3,25]=0;
sequancer_table[3,26]=3;
sequancer_table[3,27]=0;

sequancer_table[3,28]=4;
sequancer_table[3,29]=0;
sequancer_table[3,30]=0;
sequancer_table[3,31]=0;

sequancer_table[4,0]=3; //track 4
sequancer_table[4,1]=0;
sequancer_table[4,2]=0;
sequancer_table[4,3]=0;

sequancer_table[4,4]=1;
sequancer_table[4,5]=0;
sequancer_table[4,6]=0;
sequancer_table[4,7]=0;

sequancer_table[4,8]=0;
sequancer_table[4,9]=0;
sequancer_table[4,10]=0;
sequancer_table[4,11]=0;

sequancer_table[4,12]=0;
sequancer_table[4,13]=0;
sequancer_table[4,14]=0;
sequancer_table[4,15]=0;

sequancer_table[4,16]=0;
sequancer_table[4,17]=0;
sequancer_table[4,18]=0;
sequancer_table[4,19]=0;

sequancer_table[4,20]=2;
sequancer_table[4,21]=0;
sequancer_table[4,22]=0;
sequancer_table[4,23]=0;

sequancer_table[4,24]=1;
sequancer_table[4,25]=0;
sequancer_table[4,26]=0;
sequancer_table[4,27]=0;

sequancer_table[4,28]=0;
sequancer_table[4,29]=0;
sequancer_table[4,30]=1;
sequancer_table[4,31]=0;
as you ca nsee this is inefficent and difficult to edit quickly,.
iterationGAMES.com
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hey jph,

Isn't it more convenient to use variables instead of constants so you can edit your tracks in real-time while creating them? I actually had a go at creating a ZGE Tracker in the spirit of Impulse / Scream / Fast a while back, but quickly realized that you really need at least 4D Arrays to make it work comfortably -> Array[Pattern, Channel, Row, Parameters] ( Parameters for example being [0] Sound, [1] Note, [2] Length, [3] Volume etc. ).

K
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

Well I guess, if you where building a tracker in ZGE,. something I had considered and may do soon as we now have file saving :) ( once you start to look at it, it can quickly become maddening as yes the possiblities are quite endless,. should there be a pattern for each parameter on the synth?!! could create some sic music with that,. . )

However I am thinking more for use in games,. what I am testing is a chord array and a pattern or trigger array so you pick one pattern of triggers or the rythmic element,. and you can use any chord with it,. sort of a mix and match system to generate random compositions while using the patters to avoide nonsencical random note soup,. . I just added some cord music the my filaments level for The Machine Elves,. and will post it a bit later,. but it is working well, and adds a musical yet windchimey feeling to the soundscape,. . I do think that hard defined patterns could be usefull for loads of other stuff besides music too,. .
iterationGAMES.com
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hey jph,

The song / track / data you eventually use is usually static / constant yea. But apart from a different input form in ZGE, the only difference between a constant and variable Array would be performance .. which is probably none?

I'll dig up the ZGE Tracker project and ramp it up for public release this weekend, maybe it will be useful for some in it's current state already or otherwise a possible base to build from.

On a sidenote, one of the things that is a little annoying with the current ZGE sound system, is that Sample data is stored inside Sound Components themselves. Would be nicer if you have a separate Sample component that a Sound Component can use / refer to, so that Sounds using identical sample don't save off that data multiple times.

K
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

yes, that is a good point about the sample data! I had not considered that, as I am still geared to not using any/much imported data,. and I can still get quite a lot of noise out of the oscillators provided,. although I am considering a game with only photographs for graphics soon,. just to show ppl what ZGE can do with pure sprites,. ;) For sure if you are importing samples it would make sence to reuse them as you can filter different ways,. although if you really need to you could just code in the sound paramiter changes and set them just befor triggering and sorta get around that,.

I look forward to your tracker release and may take it up if I find time,.

My main consideration for this request is actualy the EDITING of the data,. and a slight performance plus, perhaps, depending on how things are built,. as you can see from my post that trigger data would make sence and be quick to edit if we could view it in a little grid/spreadsheet type arrangment,. and it is unrully in the current form,. since delphi is a quick interface building system I was hoping it would not be too much work to get a little GUI like that implemented in the ZGE editor,. not sure if that is the case,. just asking. I once had a girlfriend who use to often remind me that; "If you don't ASK you don't GET." this advice applies to much in life,. . peace.
iterationGAMES.com
Post Reply