DPCM Arpeggios

Post about feature requests here.
User avatar
BioMechanicalDude
Posts: 309
Joined: Sun May 24, 2015 2:54 pm
Location: Bulgaria

DPCM Arpeggios

Postby BioMechanicalDude » Mon Oct 19, 2015 6:14 pm

Is it too late to suggest new features for version 0.5? Well, I'll give that a shot, anyway.
I think it'd be useful if you could apply arpeggios to the DPCM channel, both from the instrument editor and the tracker. Now, I know, the DPCM channel is probably the last place, where you would use arpeggios, but at some point you might either try that or some other kind of effect, that needs rapid note(or in this case sample) switching. The only way to do it at the moment, is to make the song at a really high speed and you'd also have to input a lot of notes. And no, don't tell me "Why don't you just make a sample of the arpeggio or whatever effect you're trying to make?"
First of all, it would take up a lot of space, because you'll need a sample for every note(not to mention, samples will have a larger file-size, because of their length). Yeah, Famitracker has 256KB for DPCM samples, which is nice and all, but when you're trying to make music that could, at least theoretically, play on an actual NES and, therefore limit yourself to the original 16KB limit, this is not a good option. Even if they don't take up too much space, the arpeggios will be slowed down, when playing at lower pitches.
So, if it is possible, can Famitracker have such a feature in future versions? I'm sure it would be useful to a lot of people and make it easier to experiment with the DPCM channel.

Thanks.
Greetings! I'm That Bio Mechanical Dude and I like creating various stuff like movies, games and of course chiptunes!
You can check out my YouTube Channel.
You can also follow me on Twitter.

User avatar
jaxcheese
Posts: 199
Joined: Tue Apr 21, 2015 3:24 am
Contact:

Re: DPCM Arpeggios

Postby jaxcheese » Mon Oct 19, 2015 6:27 pm

Perhaps a "sample envelope" option could handle that, although triggering multiple samples from one note event would be an entirely new functionality for famitracker.
Fan of:
Cave Story, Mega Man X, MOTHER 3, Star Fox 64, Super Metroid, Shining Force.
Classic SEGA, Treasure, Square, Falcom.
Various roguelike RPGs and shmups/bullet hells.
jaxcheese.bandcamp.com

User avatar
Dr. Merio
Posts: 680
Joined: Mon Apr 20, 2015 6:25 pm
Location: On your screen
Contact:

Re: DPCM Arpeggios

Postby Dr. Merio » Mon Oct 19, 2015 6:27 pm

This is more suited for the Feature requests section so I've moved it there. :P
My current avatar is why we need bigger avatars. >:C
Check out my YouTube channel!
[Dropbox (my FT stuff)]

User avatar
BioMechanicalDude
Posts: 309
Joined: Sun May 24, 2015 2:54 pm
Location: Bulgaria

Re: DPCM Arpeggios

Postby BioMechanicalDude » Tue Oct 20, 2015 3:10 pm

Oops! Didn't even notice this section. :D Sorry.
jaxcheese wrote:Perhaps a "sample envelope" option could handle that, although triggering multiple samples from one note event would be an entirely new functionality for famitracker.

I guess it would have to be programmed differently, because samples are being played and there's stuff to do with pitch and delta counters, and what not. Still, I don't think it's that hard to add such a thing... or is it?
Speaking of the feature, I suppose I shouldn't judge something by how much attention the thread for it has, but I have the feeling very few people will even consider such a thing in the near future. I hope I'm wrong.
Greetings! I'm That Bio Mechanical Dude and I like creating various stuff like movies, games and of course chiptunes!
You can check out my YouTube Channel.
You can also follow me on Twitter.

User avatar
HertzDevil
Posts: 475
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR
Contact:

Re: DPCM Arpeggios

Postby HertzDevil » Tue Oct 20, 2015 3:22 pm

Exported NSFs have no concept of DPCM instruments; all DPCM assignments are collected into one place, and notes on the DPCM channel are renamed so that they invoke the assignments directly, without any sequence handler. Needless to say, the NSF driver also bypasses the period/frequency tables completely when processing the DPCM channel; hence, it can neither query whether an assignment exists for a given instrument and pitch from the FTM, nor ensure that the same 0xy effect makes sense for DPCM notes resulting from different instruments' assignment tables from the FTM.

Nonetheless an implementation is possible -- not requiring heavy algorithmic operations on the pattern data on compilation -- by imposing several limitations:
  • Instrument arpeggio sequences are disallowed: the same instrument may be used in any other 2A03 channel, where the arpeggio sequence makes sense, but the same sequence terms cannot be used to derive the DPCM mappings in the NSF driver;
  • 0xy commands are parsed during NSF export: the FamiTracker pattern compiler retrieves the DPCM mappings and places assignments in a new command rather than using the current 0xy effect. This requires the NSF driver to have a separate entry on ft_command_table that calls ft_get_pattern_byte twice;
  • 0xy commands are effective only on rows that contain a DPCM note: it may not be possible for commands that do not come with a note to retrieve the current arpeggiated DPCM assignments. Consider the following track consisting of a single frame:

    Code: Select all

         # : DPCM
    ROW 00 : C-3 00 . ...
    ROW 01 : ... .. . 037
    ROW 02 : C-3 01 . 000
    ROW 03 : ... .. . D01
    Since instruments 00 and 01 may have different assignments to notes C-3, D#3, and G-3, the 0xy effect may not be processed.
  • 0xy commands are effective until a new note begins: by a similar reasoning, considering the following track:

    Code: Select all

         # : DPCM
    ROW 00 : C-3 00 . ...
    ROW 01 : D-3 00 . 037
    The 037 effect parameters, once expanded to DPCM assignments, should not apply to the C-3 note.
  • On non-existent assignments: the DPCM arpeggio command must handle the case where a given DPCM assignment does not refer to an existing DPCM sample. The most sensible way is to leave the DPCM as-is without playing new notes or cutting the current one (so a 0x0 behaves like X01, 0xy like X02 if the arpeggiated notes do not exist);
  • The pitch sequence may be interpreted as DPCM sample pitch offset, but this feature request in the first place is already very specific.
As in the "really high speed" case, the user is responsible for making sure the delta offset of the DPCM channel does not drift away when playing multiple samples, either by tilting the samples at the very beginning (the exact position depends on the refresh rate), or using a default counter value for some or all the sample assignments. I will not provide an implementation this time.
refactoring 0cc-famitracker

User avatar
w7n
Posts: 241
Joined: Fri May 15, 2015 1:37 am
Location: Nanamori-Chuu
Contact:

Re: DPCM Arpeggios

Postby w7n » Wed Oct 21, 2015 9:50 am

My 2 cents:
1, this feature is acceptable but not as useful as some other features.
2, judging from the developing state of the official FamiTracker, I'd suggest that you just cover everything in speed 1 to gain full control of all the notes. Tracking in speed 1 isn't as frustrating as it may seem, by the way.
nsf.nesbbs.com under reconstruction, better player might be available in the future.

VRC6 PWM is GAY because it has colours of the rainbow in the NSFPlay keyboard visualizer.

User avatar
BioMechanicalDude
Posts: 309
Joined: Sun May 24, 2015 2:54 pm
Location: Bulgaria

Re: DPCM Arpeggios

Postby BioMechanicalDude » Wed Oct 21, 2015 7:10 pm

HertzDevil wrote:Exported NSFs have no concept of DPCM instruments;

Well, they they have no concept of regular instruments or envelopes either... or at least I think so. Every NSF I've opened has all the sequences and whatnot as note data.
HertzDevil wrote:Instrument arpeggio sequences are disallowed: the same instrument may be used in any other 2A03 channel, where the arpeggio sequence makes sense, but the same sequence terms cannot be used to derive the DPCM mappings in the NSF driver;

So, then, DPCM arpeggio sequences can be a different functionality all together.

About the various effect limitations and .NSF export problems: In that case, the effect and the .NSF export functions will have to be re-written. But I suppose that would be too much work, so it's not happening.

HertzDevil wrote:As in the "really high speed" case, the user is responsible for making sure the delta offset of the DPCM channel does not drift away when playing multiple samples, either by tilting the samples at the very beginning (the exact position depends on the refresh rate), or using a default counter value for some or all the sample assignments. I will not provide an implementation this time.

The high-speed problem never had anything to do with the delta offset.

w7n wrote:I'd suggest that you just cover everything in speed 1 to gain full control of all the notes. Tracking in speed 1 isn't as frustrating as it may seem, by the way.

For me it is. I may have full control over speed and instrument sequences, but each frame is short in terms of time(even when the rows are 256), it's harder for me to organize things and because of the long spaces between notes, it's easy to get lost. This is why most of the time when I make covers, I don't use the original .NSF, when I want to see the notes. I either use a MIDI file or convert the original track to MIDI. I know .NSF files, when opened in Famitracker, don't really have any structure, but still. If it wasn't for such speed issues, I would've probably be making stuff at speeds like 4 or even 6. I guess I just like having everything nicely put together and compact. For me, it's much easier to edit that way. :|
Greetings! I'm That Bio Mechanical Dude and I like creating various stuff like movies, games and of course chiptunes!
You can check out my YouTube Channel.
You can also follow me on Twitter.

User avatar
ollaxe
Posts: 736
Joined: Mon Apr 20, 2015 7:07 pm
Location: Sweden
Contact:

Re: DPCM Arpeggios

Postby ollaxe » Wed Oct 21, 2015 8:48 pm

Two tips when tracking in speed one:
1. Use the row highlight feature. This is great for keeping track of where you are in the song.
2. Try to use the most high-resolution screen as possible. This will give you a greater view in the sequence editor. If you don't have a high-res monitor, you could use an HDTV as long as your computer is somewhat portable and your eventual roommate(s)/family members are okay with it.

Now, if you're still not going to track in speed one, track in speed 2! Arpeggios still sound great at that speed, and everything is much easier to keep track of. The bad thing with this though is that you're quite limited in terms of which tempo's you can use.

Now, I still agree that this should be a feature, but these are a bunch of workarounds which you can use for the time being. One thing I'm kinda troubled about though is, wouldn't there be a ton of popping noises? :?
Hi! I'm not really active here anymore but I still make music. Nowadays I mostly make dubstep with emphasis on good melodies and chord progressions.
SoundCloud: soundcloud.com/ollaxe
Twitter: twitter.com/ollaxe
Discord server: dis.gd/tK7uRnc
I'm also on Spotify. Search "OllAxe" and you'll find me.

User avatar
BioMechanicalDude
Posts: 309
Joined: Sun May 24, 2015 2:54 pm
Location: Bulgaria

Re: DPCM Arpeggios

Postby BioMechanicalDude » Thu Oct 22, 2015 7:58 pm

Not when I tried it, using the usual method. So I guess as long as you don't reset the delta counter manually, you'll be fine.
By the way, wasn't there a zoom in/zoom out feature? I'm probably remembering it wrong. My screen resolution is 1280x1024. It's not full HD, but close enough(at least in terms of vertical resolution), and I'm still not satisfied with the row size. :|
Greetings! I'm That Bio Mechanical Dude and I like creating various stuff like movies, games and of course chiptunes!
You can check out my YouTube Channel.
You can also follow me on Twitter.

User avatar
ollaxe
Posts: 736
Joined: Mon Apr 20, 2015 7:07 pm
Location: Sweden
Contact:

Re: DPCM Arpeggios

Postby ollaxe » Thu Oct 22, 2015 8:29 pm

BioMechanicalDude wrote:By the way, wasn't there a zoom in/zoom out feature? I'm probably remembering it wrong.

If you mean within windows, then yes, and there still is. Or well, upscale at least. I have a faint memory of there being an option to downscale to 75% somewhere in the settings of windows 7, 8 or 8.1, but I can't find it in windows 10. Maybe I'm remembering wrong, I dunno.
Hi! I'm not really active here anymore but I still make music. Nowadays I mostly make dubstep with emphasis on good melodies and chord progressions.
SoundCloud: soundcloud.com/ollaxe
Twitter: twitter.com/ollaxe
Discord server: dis.gd/tK7uRnc
I'm also on Spotify. Search "OllAxe" and you'll find me.


Return to “Feature Requests”

Who is online

Users browsing this forum: No registered users and 4 guests