Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > Bug Reports & Feature Requests > Effect Idea: Uxy Owner: Alexander283 New post
Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>
Effect Idea: Uxy Posted: 2014-07-16 18:50  (Last Edited: 2014-07-17 09:37) Reply | Quote
Alexander283

Avatar

Member for: 2912 days
Location: Germany
Status: Offline

#59507
So I was tracking a song that has way too many chords to fit into a VRC6. So what du you do? Use arpeggios, of course. Euro-style ^^

But I didn't want to use the 0xy command since it creates arps equal to " | 0 x y " and I wanted a " | 0 0 x x " in my case.
And for that reason, I had to define 12 (!!) Instruments just to create all the arps I required.

Since I'm programming myself, I got an idea inspired by coding and variables: [u]U[/u]ser defined values in instruments, ergo [u]Uxy[/u].
How about you enter a MML string like
" 1 2 3 4 X X Y 4 3 2 1 " and in the track, you enter the effect "Uxy" to fill those variables in the string?

For my case, I'd have an instrument containing [01]:
ARPEGGIO: " | 0 0 X X "

And in the track, I use:
E-3 01 8 U06
--- -- - ---
~~~ -- - --- <- it's a note release ...
--- -- - ---
E-3 01 - U06
--- -- - ---
C-3 01 - U07
--- -- - ---
G-3 01 - U03
--- -- - ---
--- -- - ---
F#3 01 - U03
E-3 01 - U03
[...]

10 imaginary points if you can guess which track that came from n_n

In the actual state of famitracker - and as far as I know - I have to define a new instrument for every custom arpeggio I want to make.
And with Uxy having two variables, you can do even more things in a more flexible way - i.e custom volume envelopes or even envelopes that change (with the use of holding before release) in mid-note without changing the volume of the channel.
For example: VOLUME " 2 4 6 10 / X Y Y Y Y Y 0"

I don't know how hard this is to implement since I havn't looked at the Famitracker code (... which is probably too complex as it is now) and I especially don't want to appear like a little child scremaing "MAKE ME DIS OR I QUIT WUAAAAA!!".
I hope I can find someone interested in this Idea - or at least another way you can already do something similar ^^

Thanks for your attention and have a good day
- Alex

_______________________
The purpose of a programming language is to protect the computer against the programmer.
Posted: 2014-07-16 19:32  (Last Edited: 2014-07-16 19:35) Reply | Quote
Stratelier



Member for: 2954 days
Status: Offline

#59509
Part of the problem is that FamiTracker is effectively an NES audio emulator, so some of the restrictions are imposed not by FamiTracker but the actual NES hardware. Being able to user-define things would be awesome, but it can only be done if there's a way to translate it into something the NES hardware can actually generate.

For example, the 0xx arpeggio effect can only do three notes (the second and third always being higher than the first), and you can only issue an effect command once per row (per channel). If your song happens to be running at exactly three engine cycles per row then you can make custom arpeggios by issuing arps every single row (provided your arps go up, not down), but if your song happens to be running at six cycles per row (the default), you can't make it do a six-note arpeggio without defining it as an instrument.

_______________________
Where to find me:
YouTube: [url=http://youtube.com/user/stratelier]http://youtube.com/user/stratelier
DeviantArt: [url=http://stratadrake.deviantart.com/]http://stratadrake.deviantart.com/
Posted: 2014-07-16 19:52 Reply | Quote
Alexander283

Avatar

Member for: 2912 days
Location: Germany
Status: Offline

#59514
Yes, the NES hardware is a huge limit, no question that needs to be asked. But I meant that there is a variable inside Famitracker itself that you can access with Uxy and as soon as a patern requires that variable, it gets inserted as if it was in the NES ROM.

I don't know how everything is structured internally, but I've thought it was kind of like a macro for an assembler - it inserts the correct values before the program is compiled (or in this case - while the track is played).

So it wouldn't be a real NES command, rather a meta-command.

_______________________
The purpose of a programming language is to protect the computer against the programmer.
Posted: 2014-07-16 21:19 Reply | Quote
Im_a_Track_Man

Avatar

Member for: 4138 days
Location: Plantation, Florida
Status: Offline

#59520
You mean like an LSDj table? Where you program a sequence and use an effect to point to that sequence? That's already been requested and frankly I hope it gets put in.

Posted: 2014-07-16 21:31 Reply | Quote
Xyz_39808

Avatar

Member for: 4180 days
Location: South Texas
Status: Offline

#59521
Stratelier, your post is dangerously incorrect. None of what you mentioned pertains to limitations on the actual hardware, or even within the nsf engine for FT.

Posted: 2014-07-16 23:05 Reply | Quote
cpow

Avatar

Member for: 3638 days
Location: Minneapolis, MN, USA
Status: Offline

#59528
What would the default values of X and Y be? Or would there be a limitation that any use of that instrument *must* be accompanied by a U effect?

Posted: 2014-07-16 23:36  (Last Edited: 2014-07-16 23:36) Reply | Quote
VinylScratch

Avatar

Member for: 3554 days
Location: Nebraska
Status: Offline

#59530
[quote=Im_a_Track_Man]You mean like an LSDj table? Where you program a sequence and use an effect to point to that sequence? That's already been requested and frankly I hope it gets put in.[/quote]Same here. This sort of thing would significantly reduce the amount of instruments needed to make and as a result save tons of space. I think what the OP is asking for is an effect to create more complex arpeggios, kind of like the stuff you hear in the Follin brothers' work. LSDj style tables would be a great way to implement this.

_______________________
[url=https://soundcloud.com/dj-dimeback]Soundcloud | [url=http://www.youtube.com/user/ITGpwnage]Youtube
Posted: 2014-07-17 09:36 Reply | Quote
Alexander283

Avatar

Member for: 2912 days
Location: Germany
Status: Offline

#59536
Well, it would make sense if the default value for Uxy is 0 and 0 since nothing was inerted yet, but after x and y got defined, it gets carried on for as long as the track keeps plaing (like the volume column).

And about LSDJ - I don't know much about it, but if something like this already exists in very similar trackers, maybe there's hope

_______________________
The purpose of a programming language is to protect the computer against the programmer.
Posted: 2014-07-17 14:37 Reply | Quote
MKSTAR26

Avatar

Member for: 3221 days
Location: A\/\V/\/A
Status: Offline

#59539
I think the point being made here is that the [u]tracker[/u] is perfectly capable of this, but the actual hardware - [u]primarily NSFs[/u] - would not be able to support this. I can't say whether that's true myself, but I may as well jump in and clarify.

_______________________
<Emelia_Kaylee>: <hawkeatermoth>: <pug>: <Tenshi_Hinanawi>: [00:32.20] <pug>: »–( · &#7447; · )–« FUCK
Posted: 2014-07-17 20:59  (Last Edited: 2014-07-17 21:06) Reply | Quote
Delek

Avatar

Member for: 4344 days
Status: Offline

#59549
There's no Hardware or NSF limitation here guys.
Doing a software arpeggio in a fixed, relative or user defined way is actually the same: The [u]only difference[/u] resides in [b]where[/b] and [b]when[/b] you load the note data, nothing more.

_______________________
[url=http://www.delek.com.ar/]Delek's Website
[url=http://www.delek.com.ar/deflemask]DefleMask Tracker
[url=http://soundcloud.com/delek_music]Delek's SoundCloud
[url=http://www.youtube.com/dele1000]Delek's YouTube Channel
Posted: 2014-07-17 21:21 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#59551
Yeah NSF is just software, think of it as a computer program. All the hardware is aware of is amplitude and frequency, the rest is software.

_______________________
Programmer and developer
Posted: 2014-07-17 21:59 Reply | Quote
Alexander283

Avatar

Member for: 2912 days
Location: Germany
Status: Offline

#59553
So ... you might add that in? Or at least a manual sequence select?

I'd thank heavens if my instrument window wouldn't be so cluddered anymore :D

_______________________
The purpose of a programming language is to protect the computer against the programmer.
Posted: 2014-07-18 02:10 Reply | Quote
ipi

Avatar

Member for: 3522 days
Location: United Kingdom
Status: Offline

#59562
[url=http://famitracker.com/forum/posts.php?id=5235&highlight=]ipiTracker already has this effect: E0x.

Posted: 2014-07-18 03:04 Reply | Quote
poodlecock

Avatar

Member for: 3398 days
Location: !wow
Status: Offline

#59564
ipi, that's arpeggio tick. That's totally different and I like this suggestion better.

Let me explain what he means (rather, my understanding of what he means). Effect Uxy defines variables X and Y, and X/Y can be recalled in an arpeggio macro. So if U37 has been used, then an instrument with arp macro "| 0 0 X X Y Y" would play like a 037 with arp tick 2.

It is indeed similar to the concept of arpeggio tick, but it goes beyond that. I gladly second this request.

_______________________
"im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to." -omgdonut
Posted: 2014-07-18 03:48  (Last Edited: 2014-07-18 03:55) Reply | Quote
Im_a_Track_Man

Avatar

Member for: 4138 days
Location: Plantation, Florida
Status: Offline

#59566
[quote=ipi][url=http://famitracker.com/forum/posts.php?id=5235&highlight=]ipiTracker already has this effect: E0x.[/quote]

But does it work in exported NSFs? Checkmate.

[quote=poodlecock]ipi, that's arpeggio tick. That's totally different and I like this suggestion better.

Let me explain what he means (rather, my understanding of what he means). Effect Uxy defines variables X and Y, and X/Y can be recalled in an arpeggio macro. So if U37 has been used, then an instrument with arp macro "| 0 0 X X Y Y" would play like a 037 with arp tick 2.

It is indeed similar to the concept of arpeggio tick, but it goes beyond that. I gladly second this request.[/quote]

I took it to mean that if arpeggio macro 26 is defined as, say, | 0 12 3 15 7 19 , and U1A was used, the current note played would have the arp sequence "| 0 12 3 15 7 19" appended to it.

Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>