FamiTone - audio library (release)

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

I just realized: No duty envelope means no realistic hi-hats that alternate looped noise and regular noise. I can provide a sample of what I mean from another music engine, which maps pulse duty onto the volume envelopes and noise duty onto the arpeggio envelopes.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru »

I know what you mean. I used it in my very first NES song, don't use it anymore, because it does not sounds realistic or good to me (should be noise+tone to be realistic). Certainly not that useful to be worth extra CPU time to process an extra envelope.
Denine
Posts: 397
Joined: Wed Feb 17, 2010 5:42 pm

Post by Denine »

Hi.
I recently was forced to format my PC.I had backup of most files so I lost like, nothing.
But there's something odd.I can't use exporter plugin anymore.
Every time I try to export music, no file is produced.Also, by some weird reason, Text exporter is named "Custom exporter" when you want to export your music.Just no file is produced when I try to export music.
Yes, I downloaded famitone and famitracker, but it's still the same.Since Famitracke is working fine I wanted to ask for help here before famitracker's forum.
Any thoughts why this happens?

Edit:
Almost forgot: other files types exports just fine(NFS, NES etc).
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru »

Which version of FamiTracker you have now?
Denine
Posts: 397
Joined: Wed Feb 17, 2010 5:42 pm

Post by Denine »

I tried 3 versions.(3.5, 3.6, and 3.7).
None works.It's same problem with every version.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru »

3.5 certainly won't work. 3.6 and above should work. Just tested the version I have currently, 0.3.8 beta 4 - it works fine. So I have no idea why it does not work for you, sorry.
Denine
Posts: 397
Joined: Wed Feb 17, 2010 5:42 pm

Post by Denine »

Eureka!
I found solution.
If anyone have same problem:
This problem was (probably) caused by Virut virus. After removing it, everything works perfectly.
darkhog
Posts: 192
Joined: Tue Jun 28, 2011 2:39 pm

Re: FamiTone - audio library (release)

Post by darkhog »

Hey, I've downloaded Famitone today and I've found out that demo doesn't behave when region is set to PAL in Nestopia (if switched when rom is running, it changes in pitch, if switched before it doesn't run). Is it problem with demo ROM or Famitone? If latter, when it'll be fixed?

//edit: From famitone.s

Code: Select all

;reset APU, initialize FamiTone
;in: A 0 for PAL, not 0 for NTSC

FamiToneInit:
	cmp #0
	beq @pal
	lda #$ff
@pal:
	sta FT_PAL_ADJUST
	lda #$0f			;enable channels, stop DMC
	sta APU_SND_CHN
	lda #$81			;disable triangle length counter
	sta APU_TRI_LINEAR
	lda #$01			;load noise length
	sta APU_NOISE_HI

	lda #$30			;volumes to 0
	sta APU_PL1_VOL
	sta APU_PL2_VOL
	sta APU_NOISE_VOL
	lda #$08			;no sweep
	sta APU_PL1_SWEEP
	sta APU_PL2_SWEEP

	lda #$ff
	sta FT_PULSE1_PREV
	sta FT_PULSE2_PREV



;stop music that currently plays (it is a part of FamiToneInit as well)

FamiToneMusicStop:	
I don't know much of assembly yet, but is FamitoneInit supposed to fall through into FamitoneMusicStop? Or is there missing rts?
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: FamiTone - audio library (release)

Post by Shiru »

You should not switch PAL/NTSC in an emulator while a program run, because detection only happens at start up. Nestopia actually resets the program when you switch the region, isn't? Region detection does not work there indeed, don't know why. It works in FCEUX and Nintendulator, so maybe it is something with Nestopia itself?

PAL support in Famitone does not correct pitch, only speed.

Yes, the code falls through, it is how it supposed to be. Otherwise it would be just an extra jsr:rts, makes not much sense.
darkhog
Posts: 192
Joined: Tue Jun 28, 2011 2:39 pm

Re: FamiTone - audio library (release)

Post by darkhog »

Also, would be possible to write plugin for Famitracker that would directly export to format used by Famitone, removing middleman (converting from text to data)? Because converter fails with "could not find frames" error or something like that. Here's text file generated by TextExporter:

Code: Select all

# FamiTracker text export 0.4.2

# Song information
TITLE           "Advanced Adventure"
AUTHOR          "Chris"
COPYRIGHT       ""

# Song comment
COMMENT ""

# Global settings
MACHINE         0
FRAMERATE       0
EXPANSION       0
VIBRATO         1
SPLIT           32

# Macros
MACRO       0   0  -1  -1   0 : 15 15 14 14 13 13 12 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0
MACRO       0   1  -1  -1   0 : 1 1 2 2 3 3 4 4 5 5 6 6 5 5 4 4
MACRO       0   2  -1  -1   0 : 10 10 8 6 4 2 0
MACRO       1   0  -1  -1   0 : 2 0 -3 0
MACRO       2   0  -1  -1   0 : 13 8 15 21 13 15
MACRO       2   1  -1  -1   0 : 0 0 0 0
MACRO       3   0  -1  -1   0 : -5 -5 -6 -6
MACRO       4   0  -1  -1   0 : 1 2 2 1

# DPCM samples

# Instruments
INST2A03   0     0  -1  -1  -1  -1 "Tri Angle"
INST2A03   1     1  -1  -1  -1  -1 "Buzzer"
INST2A03   2     2  -1  -1  -1  -1 "Hat"

# Tracks

TRACK  64   6 150 "New song"
COLUMNS : 1 1 1 1 1

ORDER 00 : 00 00 00 00 00
ORDER 01 : 00 00 00 00 00
ORDER 02 : 01 00 00 02 00
ORDER 03 : 02 00 00 01 00
ORDER 04 : 04 00 00 01 00
ORDER 05 : 00 01 00 00 00
ORDER 06 : 00 01 01 00 00
ORDER 07 : 03 02 01 00 00
ORDER 08 : 03 02 01 02 00
ORDER 09 : 01 02 01 02 00
ORDER 0A : 02 02 00 01 00
ORDER 0B : 04 01 00 02 00
ORDER 0C : 02 01 00 01 00
ORDER 0D : 01 01 00 00 00
ORDER 0E : 00 01 00 00 00

PATTERN 00
ROW 00 : --- .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 01 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 02 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 03 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 04 : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 05 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 06 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 07 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 08 : ... .. . ... : ... .. . ... : G-5 00 . ... : ... .. . ... : ... .. . ...
ROW 09 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0C : ... .. . ... : ... .. . ... : B-5 00 . ... : ... .. . ... : ... .. . ...
ROW 0D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 10 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 11 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 12 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 13 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 14 : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 15 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 16 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 17 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 18 : ... .. . ... : ... .. . ... : G-5 00 . ... : ... .. . ... : ... .. . ...
ROW 19 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1C : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 1D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 20 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 21 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 22 : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 23 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 24 : ... .. . ... : ... .. . ... : A-5 00 . ... : ... .. . ... : ... .. . ...
ROW 25 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 26 : ... .. . ... : ... .. . ... : C-6 00 . ... : ... .. . ... : ... .. . ...
ROW 27 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 28 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 29 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2A : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 2B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2C : ... .. . ... : ... .. . ... : G-5 00 . ... : ... .. . ... : ... .. . ...
ROW 2D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2E : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...
ROW 2F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 30 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 31 : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...
ROW 32 : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 33 : ... .. . ... : ... .. . ... : F-5 00 . ... : ... .. . ... : ... .. . ...
ROW 34 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 35 : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...
ROW 36 : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 37 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 38 : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 39 : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...
ROW 3A : ... .. . ... : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ...
ROW 3B : ... .. . ... : ... .. . ... : F-5 00 . ... : ... .. . ... : ... .. . ...
ROW 3C : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3D : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...
ROW 3E : ... .. . ... : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ...
ROW 3F : ... .. . ... : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ...

PATTERN 01
ROW 00 : C-1 01 . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 01 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 02 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 03 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 04 : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 05 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 06 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 07 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 08 : ... .. . ... : G-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 09 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0A : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 0B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0C : ... .. . ... : B-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 0D : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0E : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 0F : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 10 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 11 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 12 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 13 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 14 : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 15 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 16 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 17 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 18 : ... .. . ... : G-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 19 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1A : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 1B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1C : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 1D : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1E : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 1F : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 20 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 21 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 22 : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 23 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 24 : ... .. . ... : A-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 25 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 26 : ... .. . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 27 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 28 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 29 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2A : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 2B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2C : ... .. . ... : G-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 2D : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2E : ... .. . ... : D-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 2F : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 30 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 31 : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 32 : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 33 : ... .. . ... : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 34 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 35 : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 36 : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 37 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 38 : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 39 : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3A : ... .. . ... : E-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 3B : ... .. . ... : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3C : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 3D : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3E : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 3F : ... .. . ... : D-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...

PATTERN 02
ROW 00 : E-1 01 . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 01 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 02 : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 03 : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 04 : ... .. . ... : F-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 05 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 06 : ... .. . ... : G-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 07 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 08 : ... .. . ... : A-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 09 : ... .. . ... : B-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0A : ... .. . ... : C-6 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 0B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0C : ... .. . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 0D : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0E : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0F : ... .. . ... : F-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 10 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 11 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 12 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 13 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 14 : ... .. . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 15 : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 16 : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 17 : ... .. . ... : F-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 18 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 19 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1A : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 1B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1C : ... .. . ... : C-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 1D : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1E : ... .. . ... : E-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1F : ... .. . ... : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 20 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 21 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 22 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 23 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 24 : ... .. . ... : B-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 25 : ... .. . ... : C-6 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 26 : ... .. . ... : D-6 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 27 : ... .. . ... : B-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 28 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 29 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2A : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 2B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2C : ... .. . ... : B-4 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 2D : ... .. . ... : C-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2E : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2F : ... .. . ... : B-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 30 : ... .. . ... : ... 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 31 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 32 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 33 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 34 : ... .. . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 35 : ... .. . ... : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 36 : ... .. . ... : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 37 : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 38 : ... .. . ... : F-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 39 : ... .. . ... : G-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3A : ... .. . ... : A-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 3B : ... .. . ... : ... 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3C : ... .. . ... : C-5 00 . ... : ... .. . ... : C-# 02 . ... : ... .. . ...
ROW 3D : ... .. . ... : A-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3E : ... .. . ... : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3F : ... .. . ... : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ...

PATTERN 03
ROW 00 : G-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 01 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 02 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 03 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 04 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 05 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 06 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 07 : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 08 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 09 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0C : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0F : E-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 10 : G-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 11 : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 12 : B-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 13 : G-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 14 : E-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 15 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 16 : G-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 17 : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 18 : C-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 19 : C-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1A : A-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1B : G-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1C : A-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1D : C-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1F : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 20 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 21 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 22 : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 23 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 24 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 25 : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 26 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 27 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 28 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 29 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2A : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2C : G-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 30 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 31 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 32 : C-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 33 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 34 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 35 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 36 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 37 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 38 : D-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 39 : E-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3A : F-5 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3C : A-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3D : F-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3E : D-4 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3F : A-3 00 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...

PATTERN 04
ROW 00 : A-0 01 . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 01 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 02 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 03 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 04 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 05 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 06 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 07 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 08 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 09 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0C : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 0F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 10 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 11 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 12 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 13 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 14 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 15 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 16 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 17 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 18 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 19 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1C : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 1F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 20 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 21 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 22 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 23 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 24 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 25 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 26 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 27 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 28 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 29 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2C : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 2F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 30 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 31 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 32 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 33 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 34 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 35 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 36 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 37 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 38 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 39 : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3A : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3B : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3C : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3D : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3E : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...
ROW 3F : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ... : ... .. . ...

# End of export
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: FamiTone - audio library (release)

Post by rainwarrior »

There's no need to paste the whole file here. Maybe use pastebin.

By the way, when I implemented the text export for Famitracker, I also implemented command line exporting as well, so you can automate the process with a batch script or whatnot.
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: FamiTone - audio library (release)

Post by Shiru »

There is no plans for new FamiTracker plugin, or any major changes in the original FamiTone. I do have plans for a completely new version that will improve efficiency of the engine, and will utilize the rainwarrior's text exporter rather than custom plugin.

Text files as a 'middle man' is actually a good thing, as any other tracker could output text in the same format to get compatibility with the engine. It has been done with the Musetracker.
tsone
Posts: 30
Joined: Fri Feb 14, 2014 11:16 pm
Location: Linköping, Sweden
Contact:

Re: FamiTone - audio library (release)

Post by tsone »

Shiru wrote:... I do have plans for a completely new version that will improve efficiency of the engine, and will utilize the rainwarrior's text exporter rather than custom plugin.
FYI It's here! See thread: FamiTone2 audio library
sdm
Posts: 410
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: FamiTone - audio library (release)

Post by sdm »

I was able to finally implement FamiTone to my code. Unfortunately, nowhere I read how much memory it can take up.

FT_BASE_ADR = $0300 ;page in RAM, should be $xx00

In my code, I noticed that it is about 128 bytes.

Is this the maximum size ?, or may depend on the size of music?
I use only NES'a channels without any additional chips.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: FamiTone - audio library (release)

Post by rainwarrior »

RAM usage is a fixed size.

ROM usage depends on the music.

CPU usage depends somewhat on the music/sfx playing but there is a maximum.
Post Reply