GithubHelp home page GithubHelp logo

bleubleu / famistudio Goto Github PK

View Code? Open in Web Editor NEW
1.5K 1.5K 95.0 250.8 MB

FamiStudio NES Music Editor

License: MIT License

C# 72.58% Batchfile 0.95% Assembly 24.53% Shell 0.08% NWScript 1.41% HTML 0.14% C 0.17% GLSL 0.10% PowerShell 0.03%

famistudio's People

Contributors

8dcc avatar adm228 avatar beetrootpaul avatar bleubleu avatar derwurstbruder avatar disassembledsharper avatar freirc avatar greatglobox avatar gtcreyon avatar how2bboss avatar incognito357 avatar jameswilddev avatar jjagg avatar jroweboy avatar khhs167 avatar lunarexxy avatar mcgrew avatar nicolarark02 avatar opna2608 avatar pbnjk avatar perkka2 avatar pizzergames avatar roadrunnerwmc avatar smbhacks avatar waik0 avatar xwjcool123 avatar zukinnyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

famistudio's Issues

Note speed written to FamiStudio text format, but not read back

  • Open the After The Rain demo song.
  • Export to FamiStudio text format.
  • Open the exported file.
  • Export again under a different name.
  • Diff the files. Note speed was lost on opening the exported file, so on exporting again the speed attribute is missing from notes which had it, and a number of notes are missing altogether as they only adjusted the speed.

I can raise a PR to fix this one later today. I'll also add the attribute to the docs as it's currently missing.

doesnt start. windows 10

fresh installation of windows 10 home.

click the icon to start famistudio and the ui doesnt render completely. just flashes up an empty window for a moment before silently closing without reason.

Advanced drawing notes function (envision)

A certain function is used to arrange some notes according to the user's settings. After the setting is completed, this combination is generated immediately when the left mouse button draws notes in the piano roll. It is suitable for simulating some complex or FDS / N163 musical instruments with plucked effects .

This is not a required function, and there are already less efficient ways to do it.
It was during my creative process using FL Studio.
Snipaste_2020-05-04_18-00-11
Snipaste_2020-05-04_18-02-08
Snipaste_2020-05-04_18-06-23
Bass tones with plucked strings using 6 combinations of FDS waveforms.

Pan on scroll; and add 2-dimensional scroll-wheel support.

I'm aware that you can pan the document by holding ALT and clicking/dragging the pattern editor, but with some input devices, especially laptops, that becomes tedious when editing larger documents.

The tl;dr:

  1. Add X/Y scroll support, for those mice and trackpads that have it and support it, including the Apple Magic Mouse. Scrolling left+right should always pan left or right.
  2. Also add an option to prioritize panning on scroll over zoom on scroll (holding CTRL would switch to zoom mode.)

The backstory:

I generally use a laptop for composition work, a Thinkpad - the model isn't as important, but bear in mind that it has two mouse inputs, which IBM/Lenovo call an "UltraNav", both of which aren't traditional:

  1. A multi-touch trackpad, with a "one-button"/virtual left/middle click design. Like most modern laptops, it has a capacitive trackpad which can operate the cursor, and click, with both taps and a physical press, which simulates a right mouse button click when you tap or press in a certain zone of the pad.
  2. The TrackPoint™ pointing-stick device. Also known as "the nipple" or various less-than-savory terms, it is given three physical buttons - the left and right function as expected, but the middle is special.

The TrackPoint takes priority over the touchpad, if both are being manipulated.

On Windows, as default, the TrackPoint middle button is used to momentarily switch from "pointing mode" to "scrolling mode" for the duration that the button is pressed. It cannot typically operate as a middle-click/3rd mouse button.

When in scroll mode, the Trackpoint acts as an x/y scroll wheel, moving the document or page under the cursor, but not moving the cursor. Depending on how much pressure you put in either direction, it fires many scroll events, which most browsers and page readers smooth out, but a lot of applications either slowly crawl a few pixels at a time, or (in FamiStudio's case) jump around like mad.

The problem:

When editing a FamiStudio document on a laptop, I find myself regularly zooming the page without realizing, and often losing my place in the page, when I mean to scroll/pan the pattern or piano roll view. While it would be more intuitive on a desktop with a proper three-button mouse, on a notebook there's a bit of a usability disconnect there.

The environment:

Lenovo ThinkPad with UltraNav/TrackPoint style 3-button pointing device. Also tested on other laptops with Synaptics brand touchpads/trackpads with multi-finger scroll.

Example:

ezgif com-gif-maker(1)

[Feature Request] Piano keys feedback during note dragging and midi key pressing

Hello there!
I just found your amazing app! It's really cool.
I started to use it and realized that there is one thing is missing to make melody editing more comfortable personally for me.
Sometimes, when you are dragging the notes at the right side of the screen it's a little bit hard to realize which note is currently dragging.
Of course, there is a text field in the right corner, but for me, it's just easier to see it on a piano roll in the same way as was clicking on it.
Also, the same visual feedback can be really useful when pressing keys on a midi keyboard.
Something like that.

PianoRollVisualFeedback

I did it locally, so here is the git patch if needed.

NotesHighlightPatch.zip

Or you can do it in your own way!

I any case, thanks for such cool up! Keep it up!

Ease of use improvement suggestions #2

I compiled the source code of 2.1.0 locally and tried it.The following are the suggestions given after the trial.

Related to the "note snap" function:

  1. When the snap function is enabled and the snap precision is adjusted, the grid precision displayed on the piano roll should also change accordingly.
    P.S.: This scenario has not considered the odd number of Frames per Note.
  2. When the snap function is enabled, when adding a stop or release mark to the note, the position of this mark should also follow the current snap precision instead of allowing it to be placed in all frames.
  3. The toggle button of snap function should change position, because its current position is too close to the piano window pointer. The position suitable for it should be the toolbar at the top of the window.

Miscellaneous:

  1. Clip list and piano roll: When you drag the pointer with the left mouse button, it should move with the horizontal position of the mouse pointer.

Piano roll:

  1. Display bar and beat number, my assumption is as shown:
    Snipaste_2020-06-26_05-20-50

Numbering format:
Clip No. [.] bar No. [.] Beat No.

Missing documentation for DPCMSample ReverseBits attribute in FamiStudio text export

The FamiStudio text export includes a "ReverseBits" boolean in DPCMSample lines:

lines.Add($"\tDPCMSample Name=\"{sample.Name}\" ReverseBits=\"{sample.ReverseBits.ToString()}\" Data=\"{String.Join("", sample.ProcessedData.Select(x => $"{x:x2}"))}\"");

This isn't listed in the documentation:

https://github.com/BleuBleu/FamiStudio/blob/2.4.0/Docs/docs/importexport.md#format-specification

I can PR to add this; does the same apply here as in the NSF?

https://github.com/BleuBleu/FamiStudio/blob/2.4.0/Docs/docs/importexport.md#nintendo-sound-format-1

famistudio_ca65.s should be more linker friendly

Two small notes about using famistudio_ca65.s as its own module that you can link with:

famistudio_ca65.s:604

This:

.segment .string(FAMISTUDIO_CA65_ZP_SEGMENT)

Should be:

.segment .string(FAMISTUDIO_CA65_ZP_SEGMENT) : zeropage

The problem is that unless the segment has a specific special name (ZEROPAGE) it will not know that the segment belongs on ZP without you explicitly telling it to. I think if you're doing this with .include "famistudio_ca65.s" rather than linking it separately, this would not come up if you have already explicitly declared that segment above the include, but on its own it needs this annotation to build.

  1. .export the 8 functions of the famistudio driver interface. This is not needed (but harmless) when doing it as an include, but required when linking to it instead.

(The three SFX functions are dependent on the configuration, but you could put their .export within the relevant define guards.)

FamiStudio crashes when headphones plugged/unplugged on Windows 7 SP1

I plugged in headphones after starting the program and FamiStudio continued playing out of the speakers but I can continue to edit the piece and save it.

If I start it with plugged in headphones and unplug them, FamiStudio will not switch to speakers and when I plug them back in the program locks up and must be forced closed.

Let me know if you need any more info.

Thanks!

ARM support

It would be great to see (better) ARM64 support. I'm using the Pinebook Pro with Arch Linux Arm. I get to the part where I go to run it and it asks for openal32.dll (which I don't have). I saw in the README mention of using dllmap, but I'm not a mono guy so I don't know where to begin in setting that up.

Aside from dependencies, setup has been painless so thank you for that.

Crash When Right-Clicking On "None" Arpeggio

I'm not sure what I thought I was doing when I did it, but there's a persistent crash when I right click on the "None" item in the arpeggio list.

Debug Info From Crash Dialog
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at FamiStudio.ProjectExplorer.OnMouseDown(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.UserControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
FamiStudio
    Assembly Version: 2.3.2.0
    Win32 Version: 2.3.2.0
    CodeBase: file:///C:/Program%20Files%20(x86)/FamiStudio/FamiStudio.exe
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
SharpDX.Direct2D1
    Assembly Version: 4.2.0.0
    Win32 Version: 4.2.0
    CodeBase: file:///C:/Program%20Files%20(x86)/FamiStudio/SharpDX.Direct2D1.DLL
----------------------------------------
SharpDX
    Assembly Version: 4.2.0.0
    Win32 Version: 4.2.0
    CodeBase: file:///C:/Program%20Files%20(x86)/FamiStudio/SharpDX.DLL
----------------------------------------
SharpDX.XAudio2
    Assembly Version: 4.2.0.0
    Win32 Version: 4.2.0
    CodeBase: file:///C:/Program%20Files%20(x86)/FamiStudio/SharpDX.XAudio2.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Net.Http
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
System.Web.Extensions
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4250.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Extensions/v4.0_4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll
----------------------------------------
Microsoft.CSharp
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
SharpDX.DXGI
    Assembly Version: 4.2.0.0
    Win32 Version: 4.2.0
    CodeBase: file:///C:/Program%20Files%20(x86)/FamiStudio/SharpDX.DXGI.DLL
----------------------------------------
System.Web
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
System.Dynamic
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
    Assembly Version: 0.0.0.0
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

[Feature request] Linux/non-Windows OS support.

From what I've seen of people trying it out, it isn't working well under Linux, either with Wine or Mono. I haven't tested this myself yet, but having functional Linux support would open things up to a wider audience.

Being that this is in C# for the most part, making the necessary changes could be a realistic goal.

[Feature request] Pently music engine support.

(I hope I'm not being annoying with these)

The Pently music engine has a lot of nice features, and a good, minimalistic design that makes it particularly suitable for use in games, demos and other programs for the NES.

The major downside to it, is that no existing music programs, let alone those for NES/Fami, export to a compatible format. There's an ft2pently converter, but it isn't ideal for all uses and (iirc) limits the use of famitracker effect commands.

CA65 export wrong?

Im am importing an ftm with five songs on it and they all play fine in famistudio, if i export as NFS it works fine as well. But when trying to load on game after exporting as CA65 it repeats one of the music in the list(in my case the second one gets skipped and replaced by the third)

Error loading project in MonoDeveloper (Linux)

When loading the .sln file into MonoDev it says:

Error while trying to load the project '~/FamiStudio/FamiStudio/FamiStudio.Linux.csproj': The type initalizer for 'MonooDevelop.Projects.MSBuild.MSBuildEvaluationContext' threw an exception.

I am running latest version of both MonoDev and have pulled the latest master branch.

neofetch results:

               -`                    blink@ArchMasterII
              .o+`                   ------------------
             `ooo/                   OS: Arch Linux x86_64
            `+oooo:                  Host: MS-7A34 1.0
           `+oooooo:                 Kernel: 5.6.4-arch1-1
           -+oooooo+:                Uptime: 2 hours, 8 mins
         `/:-:++oooo+:               Packages: 1201 (pacman)
        `/++++/+++++++:              Shell: bash 5.0.16
       `/++++++++++++++:             Resolution: 1920x1080, 1920x1080
      `/+++ooooooooooooo/`           WM: i3
     ./ooosssso++osssssso+`          Theme: Arc-Gruvbox [GTK2/3]
    .oossssso-````/ossssss+`         Icons: Adwaita [GTK2/3]
   -osssssso.      :ssssssso.        Terminal: st
  :osssssss/        osssso+++.       Terminal Font: Inconsolata for Powerline
 /ossssssss/        +ssssooo/-       CPU: AMD Ryzen 7 1700 (16) @ 2.955GHz
/ossssso+/:-        -:/+osssso+-     GPU: NVIDIA GeForce GTX 1050 Ti
/osssss:-              +osssso+-     Memory: 1946MiB / 16028MiB

Key bindings don't honor keyboard layout

It seems the key bindings are bound to the actual keycodes so that whatever keyboard layout I am using (colemak, azerty, etc) it will always bind sliding for instance to the physical key that would be an S in qwerty layout. I've only tested on Linux.

Zooming in linux doesn't work as expected

Zooming normally with the scrollwheel in linux uses much larger jumps than expected. Scrolling goes from one extreme to the other extreme with only 2 clicks. Holding shift or control while scrolling makes zooming act as expected, with finer-grained steps between zoom levels (about 6 or 7 clicks to go to the extremes, depending on the part being zoomed). I would expect shift+scrolling to pan, and ctrl+scrolling to do larger jumps, while normal scrolling would perform the smaller zoom adjustments.

Linux version does not run. NesSndEmu.so unable to load?

I installed gtk-sharp 2 & already have Mono installed. Here is my terminal output when I try to run it:

aaron@Aaron-Desktop-Mint:~/Programs/Linux/FamiStudio/FamiStudio210-LinuxAMD64$ mono FamiStudio.exe -:71: Invalid symbolic color 'fg_color' -:71: error: invalid identifier 'fg_color', expected valid identifier Unhandled Exception: System.DllNotFoundException: NesSndEmu.so at (wrapper managed-to-native) FamiStudio.NesApu:Init (int,int,int,int,FamiStudio.NesApu/DmcReadDelegate) at FamiStudio.NesApu.InitAndReset (System.Int32 apuIdx, System.Int32 sampleRate, System.Boolean pal, System.Int32 expansion, System.Int32 numExpansionChannels, FamiStudio.NesApu+DmcReadDelegate dmcCallback) [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 at FamiStudio.InstrumentPlayer.PlayerThread (System.Object o) [0x00023] in <a0333e985f1745a5ae076f531f0a05e7>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x0002c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ThreadHelper.ThreadStart (System.Object obj) [0x00012] in <8f2c484307284b51944a1a13a14c0266>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: NesSndEmu.so at (wrapper managed-to-native) FamiStudio.NesApu:Init (int,int,int,int,FamiStudio.NesApu/DmcReadDelegate) at FamiStudio.NesApu.InitAndReset (System.Int32 apuIdx, System.Int32 sampleRate, System.Boolean pal, System.Int32 expansion, System.Int32 numExpansionChannels, FamiStudio.NesApu+DmcReadDelegate dmcCallback) [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 at FamiStudio.InstrumentPlayer.PlayerThread (System.Object o) [0x00023] in <a0333e985f1745a5ae076f531f0a05e7>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x0002c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ThreadHelper.ThreadStart (System.Object obj) [0x00012] in <8f2c484307284b51944a1a13a14c0266>:0

I am using Linux Mint 19.2 with XFCE.

Modifier keys not working on macOS?

I'm unable to undo with hotkey (Cmd+Z) or add Stop Notes (Cmd+Click) or Release Notes (Shift+Click) in the piano roll.

I've tried on 2.0.1 and 2.0.2. Is it possible that the mouse modifier keys aren't being read correctly on macOS?

Catalina 10.15.4 (19E287)

Playback get stuck with higher than stock tempo

When changing the tempo of the track to a value superior to the stock 150 BPM, the playback gets stuck as soon as you launch it. Depending on the song speed, it may blocks playback at a different tempo (exemple : 157 for speed 4).

How to reproduce : Create a new projet and change the tempo to 176 or more.

Keep up the good work, I love your editor! 👍

Memory corruption on Linux, due to Mono or OpenAL

I extracted FamiStudio on OpenSUSE x64, but there seems to be some sort of memory corruption going on. I get errors on the command line when closing the program.

Startup memory errors

Sometimes the program randomly crashes while it's opening. If I export MALLOC_CHECK_ to 0, I get the following stack trace:

nyanpasu64@opensuse ~/apps/FamiStudio210-LinuxAMD64 [SIGINT]> mono FamiStudio.exe
AL lib: (EE) available update failed: Broken pipe
AL lib: (EE) available update failed: Broken pipe
double free or corruption (out)

=================================================================
        Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
        Native stacktrace:
=================================================================
        0x5585d33da2f5 - mono : (null)
        0x5585d33da69c - mono : (null)
        0x5585d3385caa - mono : (null)
        0x5585d33d98cf - mono : (null)
        0x7f44b5ad8260 - /lib64/libpthread.so.0 : (null)
        0x7f44b591f4b1 - /lib64/libc.so.6 : gsignal
        0x7f44b5908539 - /lib64/libc.so.6 : abort
        0x7f44b5962837 - /lib64/libc.so.6 : (null)
        0x7f44b5969b3c - /lib64/libc.so.6 : (null)
        0x7f44b596b180 - /lib64/libc.so.6 : (null)
        0x7f44b04a5e21 - /usr/lib64/libasound.so.2 : (null)
        0x7f44b049e2a8 - /usr/lib64/libasound.so.2 : snd_config_update_free_global
        0x7f44b0661713 - /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so : (null)
        0x7f44b060f6c0 - /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so : alcOpenDevice
        0x40ffe4c3 - Unknown

=================================================================
        Telemetry Dumper:
=================================================================

This looks like OpenAL is causing memory corruption.

Sometimes the GUI never starts drawing. If it does, I can open a file and start playback fine. When closing the program, I usually get double free or corruption (out) or similar errors.

MALLOC_CHECK_=2 startup crash

If I export MALLOC_CHECK_ to 1 or 2, I reliably get the following error when the program starts:

AL lib: (EE) available update failed: Broken pipe
AL lib: (EE) available update failed: Broken pipe
AL lib: (EE) available update failed: Broken pipe
malloc_consolidate(): invalid chunk size

=================================================================
        Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

gdb

If I export MALLOC_CHECK_ to 1 or 2 and run FamiStudio in gdb, I get the following backtrace:

(gdb) bt
#0  0x00007ffff7c774b1 in raise () at /lib64/libc.so.6
#1  0x00007ffff7c60539 in abort () at /lib64/libc.so.6
#2  0x00007ffff7cba837 in __libc_message () at /lib64/libc.so.6
#3  0x00007ffff7cc1b3c in  () at /lib64/libc.so.6
#4  0x00007ffff7cc2a08 in  () at /lib64/libc.so.6
#5  0x00007ffff7cc4825 in _int_malloc () at /lib64/libc.so.6
#6  0x00007ffff7cc54b3 in malloc_check () at /lib64/libc.so.6
#7  0x00007ffff7cc713a in calloc () at /lib64/libc.so.6
#8  0x000055555589a2db in monoeg_g_calloc (n=1, x=1392) at gmem.c:131
#9  0x000055555561a2a0 in mini_method_compile
    (method=<optimized out>, opts=<optimized out>, domain=<optimized out>, flags=<optimized out>, parts=<optimized out>, aot_method_index=<optimized out>) at mini.c:3147
#10 0x000055555561cb72 in mono_jit_compile_method_inner
    (method=method@entry=0x5555560e8c50, target_domain=target_domain@entry=0x555555a2b9c0, opt=opt@entry=374434303, error=error@entry=0x7fffffffd4c0) at mini.c:4039
#11 0x0000555555588b41 in mono_jit_compile_method_with_opt
    (method=0x5555560e8c50, opt=<optimized out>, jit_only=<optimized out>, error=0x7fffffffd4c0) at mini-runtime.c:2444
#12 0x0000555555589bb0 in mono_jit_compile_method (method=<optimized out>, error=<optimized out>) at mini-runtime.c:2494
#13 0x00005555555c46d6 in common_call_trampoline
    (regs=regs@entry=0x7fffffffd588, code=code@entry=0x400a609c "H\277\240\375\016VUU", m=m@entry=0x5555560e8c50, vt=vt@entry=0x0, vtable_slot=<optimized out>, vtable_slot@entry=0x0, error=error@entry=0x7fffffffd4c0) at mini-trampolines.c:635
#14 0x00005555555c5240 in mono_magic_trampoline
    (regs=0x7fffffffd588, code=0x400a609c "H\277\240\375\016VUU", arg=0x5555560e8c50, tramp=<optimized out>)
    at mini-trampolines.c:773
#15 0x0000000040000393 in  ()
#16 0x0000555555a7b9f5 in  ()
#17 0x0000555556076100 in  ()
#18 0x00007fffffffd750 in  ()
#19 0x00007fffffffd588 in  ()
#20 0x0000555555a8c2c0 in  ()
#21 0x0000000000000000 in  ()

This looks like Mono at fault, not OpenAL.

valgrind

If I export MALLOC_CHECK_ as 2 (possibly useless) and run valgrind mono FamiStudio.exe, I get the following message at startup, but no crash at shutdown:

==15219== Invalid free() / delete / delete[] / realloc()
==15219==    at 0x48399AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15219==    by 0xC409E20: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC4022A7: snd_config_update_free_global (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xBFFC712: (anonymous namespace)::AlsaPlayback::open(char const*) (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xBFAA6BF: alcOpenDevice (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xB9C67FC: ???
==15219==    by 0xB9C7E4B: ???
==15219==    by 0xB9C7DDF: ???
==15219==    by 0xB9C5293: ???
==15219==    by 0x13E432: mono_jit_runtime_invoke (mini-runtime.c:3190)
==15219==    by 0x3494FD: do_runtime_invoke (object.c:3044)
==15219==    by 0x34CB17: do_exec_main_checked (object.c:5176)
==15219==  Address 0x9685ff0 is 0 bytes inside a block of size 11 free'd
==15219==    at 0x48399AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15219==    by 0xC409E20: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC4022A7: snd_config_update_free_global (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xBFFC712: (anonymous namespace)::AlsaPlayback::open(char const*) (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xBFAA6BF: alcOpenDevice (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xB9C67FC: ???
==15219==    by 0x8FC6F9E: ???
==15219==    by 0x13E432: mono_jit_runtime_invoke (mini-runtime.c:3190)
==15219==    by 0x3494FD: do_runtime_invoke (object.c:3044)
==15219==    by 0x351FA9: mono_runtime_class_init_full (object.c:551)
==15219==    by 0x1D0E4A: mono_jit_compile_method_inner (mini.c:4169)
==15219==    by 0x13CB40: mono_jit_compile_method_with_opt (mini-runtime.c:2444)
==15219==  Block was alloc'd at
==15219==    at 0x483877F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15219==    by 0x4A9EF9A: strdup (in /lib64/libc-2.31.so)
==15219==    by 0xC409637: snd_dlpath (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC409834: snd_dlopen (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC409AF7: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC409C53: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC41FC20: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC4202A6: ??? (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xC4231E7: snd_pcm_open (in /usr/lib64/libasound.so.2.0.0)
==15219==    by 0xBFFC704: (anonymous namespace)::AlsaPlayback::open(char const*) (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xBFAA6BF: alcOpenDevice (in /home/nyanpasu64/apps/FamiStudio210-LinuxAMD64/libopenal32.so)
==15219==    by 0xB9C67FC: ???
==15219== 

I don't know whether OpenAL or Mono is bugged.

I tried replacing libopenal32.so with a symlink to my distro's /usr/lib/libopenal.so.1.20.1, but I got System.DllNotFoundException: openal32.dll (it didn't work). Also my system's OpenAL is 1.3MB but FamiStudio's bundled is 3.1MB.

OS details

Operating System: openSUSE Tumbleweed 20200626
Kernel Version: 5.7.2-1-default
OS Type: 64-bit
Processors: 4 × Intel® Core™ i5-6200U CPU @ 2.30GHz
Memory: 7.6 GiB of RAM
Graphics Processor: Mesa DRI Intel® HD Graphics 520

> zypper info mono-core
Name : mono-core
Version : 6.8.0-5.3
Arch : x86_64
Vendor : openSUSE

Follow the cursor while playing

The playback cursor just rolls along off screen, requiring constant manual panning to keep up. It should automatically follow the cursor while it's playing, or better yet, have the option to enable/disable automatic following.

FamiStudio doesn't open on my Windows 7 SP1 laptop

Nearly fresh install with no further updates available in Windows update.

Portable version: double click EXE, no window ever pops up or task in task manager. If I right click and run as administrator, it gives a "FamiStudio has stopped working" window.

Install version: At first had the same symptom as portable version. Then when I reboot, starting FamiStudio from the start menu starts a Windows installer which hangs on the attached screen.

Capture

Since it mentioned .net updates, here's my list of .net versions from ASoft's tool.

< Installed .NET Frameworks >
.NET FW 2.0 SP 2 (CLR:2.0)
.NET FW 3.0 SP 2 (CLR:2.0)
.NET FW 3.5 SP 1 (CLR:2.0)
.NET FW 4.6.2 General release (CLR:4.0)
.NET FW 4.7 General release (CLR:4.0)
.NET FW 4.7.1 General release (CLR:4.0)
.NET FW 4.7.2 General release (CLR:4.0)
.NET FW 4.8 General release (CLR:4.0)

Thanks and looking forward to trying the software! Let me know if there are any logs I can send you.

Opening NSF files in the Linux version crashes FamiStudio.

I did not see an import option so I assume the open command doubles as the importer.
This is what the terminal outputs when I open an NSF:

aaron@Aaron-Desktop-Mint:~/Programs/Linux/FamiStudio/FamiStudio210-LinuxAMD64$ mono FamiStudio.exe
-:71: Invalid symbolic color 'fg_color'
-:71: error: invalid identifier 'fg_color', expected valid identifier
Marshaling button_press_event signal
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: NotSoFatso.so
  at (wrapper managed-to-native) FamiStudio.NsfFile:NsfOpen (string)
  at FamiStudio.NsfFile.GetSongNames (System.String filename) [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.NsfImportDialog..ctor (System.String file, System.Drawing.Rectangle mainWinRect) [0x00041] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.FamiStudio.OpenProjectFile (System.String filename, System.Boolean allowNsf) [0x000aa] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.FamiStudio.OpenProject (System.String filename) [0x00010] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.FamiStudio.OpenProject () [0x00018] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.Toolbar.OnOpen () [0x00006] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.Toolbar.OnMouseDown (System.Windows.Forms.MouseEventArgs e) [0x000e4] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.GLControl.MouseDown (System.Windows.Forms.MouseEventArgs e) [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.FamiStudioForm.GlWidget_ButtonPressEvent (System.Object o, Gtk.ButtonPressEventArgs args) [0x00185] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <8f2c484307284b51944a1a13a14c0266>:0 
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00053] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x0010d] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x0006d] in <5a439e0caae7469886e7119d9f6bc621>:0 
  at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x0000c] in <5a439e0caae7469886e7119d9f6bc621>:0 
  at GLib.SignalClosure.MarshalCallback (System.IntPtr raw_closure, System.IntPtr return_val, System.UInt32 n_param_vals, System.IntPtr param_values, System.IntPtr invocation_hint, System.IntPtr marshal_data) [0x0012e] in <5a439e0caae7469886e7119d9f6bc621>:0 
  at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, System.Boolean is_terminal) [0x00000] in <5a439e0caae7469886e7119d9f6bc621>:0 
  at GLib.SignalClosure.MarshalCallback (System.IntPtr raw_closure, System.IntPtr return_val, System.UInt32 n_param_vals, System.IntPtr param_values, System.IntPtr invocation_hint, System.IntPtr marshal_data) [0x00000] in <5a439e0caae7469886e7119d9f6bc621>:0 
  at Gtk.Application.gtk_main () [0x00000] in <7a41aae9f05e45b7b5a8cedfab67f8ff>:0 
  at Gtk.Application.Run () [0x00000] in <7a41aae9f05e45b7b5a8cedfab67f8ff>:0 
  at FamiStudio.FamiStudioForm.Run () [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.FamiStudio.Run () [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 
  at FamiStudio.Program.Main (System.String[] args) [0x00000] in <a0333e985f1745a5ae076f531f0a05e7>:0 

Video export failing on Linux

I'm attempting to export songs as video on Linux (I've tried with multiple songs on multiple project) and have compiled FFmpeg multiple times. It always gives the error that FFmpeg is compiled without libx264 support, however mine is compiled with libx264 support and the output of FFmpeg -version contains "--enable-libx264" which to my understanding is what the export dialog checks for when it gives that error.

Do not use "#Famitracker text export" as an identify header

If you look into the code of FamiTracker, you'll find the lines starts with # in Famitracker text export acturally means it's a line of comment, any changes of comment lines should not affect the importing.
I know there isn't any way to know the version of FamiTracker text export, but this is the initial defect of the format itself, not the responsibility of 3rd party FamiStudio. The best solution is not try to check its version.

[Feature Request] Exporting from command line

This is not the most important feature ever, but it would be nice to be able to export songs from command line.

Something like FamiStudio.exe my-project.fms -export my-project.s -type FamiTone2 -format ca65 -no-separate-files

Installer hangs & crashes when attempting to install

Pretty much what the title says - I run the installer, click 'next' and then it hangs for a few seconds and crashes. No error message or anything.

I ran it with logging (using msiexec /i "FamiStudio121-Installer.msi" /l*v "log.log") and weirdly, after I did that the installer actually worked the next time I ran it. Here's the log for the time it crashed, though:

=== Verbose logging started: 10/16/2019  20:23:41  Build type: SHIP UNICODE 5.00.10011.00  Calling process: C:\Windows\system32\msiexec.exe ===
MSI (c) (4C:40) [20:23:41:308]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (4C:40) [20:23:41:308]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (4C:AC) [20:23:41:318]: Resetting cached policy values
MSI (c) (4C:AC) [20:23:41:318]: Machine policy value 'Debug' is 0
MSI (c) (4C:AC) [20:23:41:318]: ******* RunEngine:
           ******* Product: FamiStudio121-Installer.msi
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (4C:AC) [20:23:41:319]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (4C:AC) [20:23:41:335]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Users\rolan\Downloads\FamiStudio121-Installer.msi' against software restriction policy
MSI (c) (4C:AC) [20:23:41:335]: Note: 1: 2262 2: �DigitalSignature 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:335]: SOFTWARE RESTRICTION POLICY: C:\Users\rolan\Downloads\FamiStudio121-Installer.msi is not digitally signed
MSI (c) (4C:AC) [20:23:41:338]: SOFTWARE RESTRICTION POLICY: C:\Users\rolan\Downloads\FamiStudio121-Installer.msi is permitted to run at the 'unrestricted' authorization level.
MSI (c) (4C:AC) [20:23:41:342]: Cloaking enabled.
MSI (c) (4C:AC) [20:23:41:342]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (4C:AC) [20:23:41:344]: End dialog not enabled
MSI (c) (4C:AC) [20:23:41:344]: Original package ==> C:\Users\rolan\Downloads\FamiStudio121-Installer.msi
MSI (c) (4C:AC) [20:23:41:344]: Package we're running from ==> C:\Users\rolan\Downloads\FamiStudio121-Installer.msi
MSI (c) (4C:AC) [20:23:41:345]: APPCOMPAT: Compatibility mode property overrides found.
MSI (c) (4C:AC) [20:23:41:345]: APPCOMPAT: looking for appcompat database entry with ProductCode '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}'.
MSI (c) (4C:AC) [20:23:41:345]: APPCOMPAT: no matching ProductCode found in database.
MSI (c) (4C:AC) [20:23:41:349]: MSCOREE not loaded loading copy from system32
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'TransformsSecure' is 0
MSI (c) (4C:AC) [20:23:41:351]: User policy value 'TransformsAtSource' is 0
MSI (c) (4C:AC) [20:23:41:351]: Note: 1: 2262 2: MsiFileHash 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'DisablePatch' is 0
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'AllowLockdownPatch' is 0
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'DisableMsi' is 0
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (c) (4C:AC) [20:23:41:351]: User policy value 'AlwaysInstallElevated' is 0
MSI (c) (4C:AC) [20:23:41:351]: Running product '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}' with user privileges: It's not assigned.
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'DisableLUAPatching' is 0
MSI (c) (4C:AC) [20:23:41:351]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI (c) (4C:AC) [20:23:41:352]: APPCOMPAT: looking for appcompat database entry with ProductCode '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}'.
MSI (c) (4C:AC) [20:23:41:352]: APPCOMPAT: no matching ProductCode found in database.
MSI (c) (4C:AC) [20:23:41:352]: Transforms are not secure.
MSI (c) (4C:AC) [20:23:41:352]: PROPERTY CHANGE: Adding MsiLogFileLocation property. Its value is 'C:\Users\rolan\Downloads\log.log'.
MSI (c) (4C:AC) [20:23:41:352]: Command Line: CURRENTDIRECTORY=C:\Users\rolan\Downloads CLIENTUILEVEL=0 CLIENTPROCESSID=22092 
MSI (c) (4C:AC) [20:23:41:352]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{9AE1245D-FCE8-4658-A45B-B09D52C1391A}'.
MSI (c) (4C:AC) [20:23:41:352]: Product Code passed to Engine.Initialize:           ''
MSI (c) (4C:AC) [20:23:41:352]: Product Code from property table before transforms: '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}'
MSI (c) (4C:AC) [20:23:41:352]: Product Code from property table after transforms:  '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}'
MSI (c) (4C:AC) [20:23:41:352]: Product not registered: beginning first-time install
MSI (c) (4C:AC) [20:23:41:352]: PROPERTY CHANGE: Adding ProductState property. Its value is '-1'.
MSI (c) (4C:AC) [20:23:41:352]: Entering CMsiConfigurationManager::SetLastUsedSource.
MSI (c) (4C:AC) [20:23:41:352]: User policy value 'SearchOrder' is 'nmu'
MSI (c) (4C:AC) [20:23:41:352]: Adding new sources is allowed.
MSI (c) (4C:AC) [20:23:41:352]: PROPERTY CHANGE: Adding PackagecodeChanging property. Its value is '1'.
MSI (c) (4C:AC) [20:23:41:352]: Package name extracted from package path: 'FamiStudio121-Installer.msi'
MSI (c) (4C:AC) [20:23:41:352]: Package to be registered: 'FamiStudio121-Installer.msi'
MSI (c) (4C:AC) [20:23:41:352]: Note: 1: 2262 2: Error 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:353]: Note: 1: 2262 2: AdminProperties 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:353]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (c) (4C:AC) [20:23:41:353]: User policy value 'AlwaysInstallElevated' is 0
MSI (c) (4C:AC) [20:23:41:353]: Running product '{1F60549A-7437-4B7C-ADBC-DFC66A0053AE}' with user privileges: It's not assigned.
MSI (c) (4C:AC) [20:23:41:353]: PROPERTY CHANGE: Adding CURRENTDIRECTORY property. Its value is 'C:\Users\rolan\Downloads'.
MSI (c) (4C:AC) [20:23:41:353]: PROPERTY CHANGE: Adding CLIENTUILEVEL property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:353]: PROPERTY CHANGE: Adding CLIENTPROCESSID property. Its value is '22092'.
MSI (c) (4C:AC) [20:23:41:353]: PROPERTY CHANGE: Adding MsiSystemRebootPending property. Its value is '1'.
MSI (c) (4C:AC) [20:23:41:353]: TRANSFORMS property is now: 
MSI (c) (4C:AC) [20:23:41:353]: PROPERTY CHANGE: Adding VersionDatabase property. Its value is '200'.
MSI (c) (4C:AC) [20:23:41:353]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming
MSI (c) (4C:AC) [20:23:41:353]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\Favorites
MSI (c) (4C:AC) [20:23:41:353]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Network Shortcuts
MSI (c) (4C:AC) [20:23:41:353]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\Documents
MSI (c) (4C:AC) [20:23:41:353]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Recent
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\SendTo
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Templates
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\ProgramData
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Local
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\Pictures
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
MSI (c) (4C:AC) [20:23:41:354]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\Users\rolan\Desktop
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\ProgramData\Microsoft\Windows\Start Menu\Programs
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\ProgramData\Microsoft\Windows\Start Menu
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\Users\Public\Desktop
MSI (c) (4C:AC) [20:23:41:355]: SHELL32::SHGetFolderPath returned: C:\Windows\Fonts
MSI (c) (4C:AC) [20:23:41:356]: Note: 1: 2898 2: MS Sans Serif 3: MS Sans Serif 4: 0 5: 16 
MSI (c) (4C:AC) [20:23:41:360]: MSI_LUA: Setting AdminUser property to 1 because this is the client or the user has already permitted elevation
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding AdminUser property. Its value is '1'.
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding Privileged property. Its value is '1'.
MSI (c) (4C:AC) [20:23:41:360]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info 3: 2 
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding USERNAME property. Its value is '[email protected]'.
MSI (c) (4C:AC) [20:23:41:360]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\MS Setup (ACME)\User Info 3: 2 
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding DATABASE property. Its value is 'C:\Users\rolan\Downloads\FamiStudio121-Installer.msi'.
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding OriginalDatabase property. Its value is 'C:\Users\rolan\Downloads\FamiStudio121-Installer.msi'.
MSI (c) (4C:AC) [20:23:41:360]: Machine policy value 'MsiDisableEmbeddedUI' is 0
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding SourceDir property. Its value is 'C:\Users\rolan\Downloads\'.
MSI (c) (4C:AC) [20:23:41:360]: PROPERTY CHANGE: Adding SOURCEDIR property. Its value is 'C:\Users\rolan\Downloads\'.
MSI (c) (4C:40) [20:23:41:362]: PROPERTY CHANGE: Adding VersionHandler property. Its value is '5.00'.
=== Logging started: 10/16/2019  20:23:41 ===
MSI (c) (4C:AC) [20:23:41:369]: Note: 1: 2262 2: PatchPackage 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:369]: Machine policy value 'DisableRollback' is 0
MSI (c) (4C:AC) [20:23:41:369]: User policy value 'DisableRollback' is 0
MSI (c) (4C:AC) [20:23:41:369]: PROPERTY CHANGE: Adding UILevel property. Its value is '5'.
MSI (c) (4C:AC) [20:23:41:369]: Note: 1: 2262 2: Font 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:370]: Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:370]: Note: 1: 2262 2: LaunchCondition 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:370]: APPCOMPAT: [DetectVersionLaunchCondition] Launch condition already passes.
MSI (c) (4C:AC) [20:23:41:415]: PROPERTY CHANGE: Adding ACTION property. Its value is 'INSTALL'.
MSI (c) (4C:AC) [20:23:41:415]: Doing action: INSTALL
MSI (c) (4C:AC) [20:23:41:415]: Note: 1: 2262 2: ActionText 3: -2147287038 
Action 20:23:41: INSTALL. 
Action start 20:23:41: INSTALL.
MSI (c) (4C:AC) [20:23:41:415]: UI Sequence table 'InstallUISequence' is present and populated.
MSI (c) (4C:AC) [20:23:41:415]: Running UISequence
MSI (c) (4C:AC) [20:23:41:415]: PROPERTY CHANGE: Adding EXECUTEACTION property. Its value is 'INSTALL'.
MSI (c) (4C:AC) [20:23:41:415]: Doing action: DIRCA_CheckFX
Action 20:23:41: DIRCA_CheckFX. 
Action start 20:23:41: DIRCA_CheckFX.
MSI (c) (4C:AC) [20:23:41:416]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'DIRCA_CheckFX' 
MSI (c) (4C:78) [20:23:41:419]: Invoking remote custom action. DLL: C:\Users\rolan\AppData\Local\Temp\MSI77B.tmp, Entrypoint: CheckFX
MSI (c) (4C:DC) [20:23:41:420]: Cloaking enabled.
MSI (c) (4C:DC) [20:23:41:420]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (4C:DC) [20:23:41:420]: Connected to service for CA interface.
INFO   : [10/16/2019 20:23:41:457] [CheckFX                                 ]: Custom Action is starting...
INFO   : [10/16/2019 20:23:41:457] [CheckFX                                 ]: CoInitializeEx - COM initialization Apartment Threaded...
INFO   : [10/16/2019 20:23:41:460] [CheckFX                                 ]: MsiGetPropertyW - Determine size of property 'VSDFrameworkVersion'
INFO   : [10/16/2019 20:23:41:461] [CheckFX                                 ]: Allocating space...
INFO   : [10/16/2019 20:23:41:461] [CheckFX                                 ]: MsiGetPropertyW - Getting Property 'VSDFrameworkVersion'...
INFO   : [10/16/2019 20:23:41:461] [CheckFX                                 ]: Property 'VSDFrameworkVersion'  retrieved with value 'v4.6.1'.
INFO   : [10/16/2019 20:23:41:461] [CheckFX                                 ]: MsiGetPropertyW - Determine size of property 'VSDFrameworkProfile'
INFO   : [10/16/2019 20:23:41:462] [CheckFX                                 ]: Property 'VSDFrameworkProfile'  retrieved with value ''.
INFO   : [10/16/2019 20:23:41:462] [CheckFX                                 ]: Set VSDNETMSG with the FrameworkVersion.
INFO   : [10/16/2019 20:23:41:462] [CheckFX                                 ]: MsiGetPropertyW - Determine size of property 'VSDNETMSG'
INFO   : [10/16/2019 20:23:41:462] [CheckFX                                 ]: Allocating space...
INFO   : [10/16/2019 20:23:41:462] [CheckFX                                 ]: MsiGetPropertyW - Getting Property 'VSDNETMSG'...
INFO   : [10/16/2019 20:23:41:463] [CheckFX                                 ]: Property 'VSDNETMSG'  retrieved with value 'This setup requires the .NET Framework version [1].  Please install the .NET Framework and run this setup again.'.
INFO   : [10/16/2019 20:23:41:463] [CheckFX                                 ]: MsiSetPropertyW - Setting Property Value...
INFO   : [10/16/2019 20:23:41:463] [CheckFX                                 ]: MsiSetPropertyW - Setting property 'VSDNETMSG' to 'This setup requires the .NET Framework version v4.6.1.  Please install the .NET Framework and run this setup again.'.
MSI (c) (4C!CC) [20:23:41:463]: PROPERTY CHANGE: Modifying VSDNETMSG property. Its current value is 'This setup requires the .NET Framework version [1].  Please install the .NET Framework and run this setup again.'. Its new value: 'This setup requires the .NET Framework version v4.6.1.  Please install the .NET Framework and run this setup again.'.
INFO   : [10/16/2019 20:23:41:463] [CheckFX                                 ]: MsiGetPropertyW - Determine size of property 'VSDNETURLMSG'
INFO   : [10/16/2019 20:23:41:464] [CheckFX                                 ]: Allocating space...
INFO   : [10/16/2019 20:23:41:464] [CheckFX                                 ]: MsiGetPropertyW - Getting Property 'VSDNETURLMSG'...
INFO   : [10/16/2019 20:23:41:464] [CheckFX                                 ]: Property 'VSDNETURLMSG'  retrieved with value 'This setup requires the .NET Framework version [1].  Please install the .NET Framework and run this setup again.  The .NET Framework can be obtained from the web.  Would you like to do this now?'.
INFO   : [10/16/2019 20:23:41:464] [CheckFX                                 ]: MsiSetPropertyW - Setting Property Value...
INFO   : [10/16/2019 20:23:41:465] [CheckFX                                 ]: MsiSetPropertyW - Setting property 'VSDNETURLMSG' to 'This setup requires the .NET Framework version v4.6.1.  Please install the .NET Framework and run this setup again.  The .NET Framework can be obtained from the web.  Would you like to do this now?'.
MSI (c) (4C!CC) [20:23:41:465]: PROPERTY CHANGE: Modifying VSDNETURLMSG property. Its current value is 'This setup requires the .NET Framework version [1].  Please install the .NET Framework and run this setup again.  The .NET Framework can be obtained from the web.  Would you like to do this now?'. Its new value: 'This setup requires the .NET Framework version v4.6.1.  Please install the .NET Framework and run this setup again.  The .NET Framework can be obtained from the web.  Would you like to do this now?'.
INFO   : [10/16/2019 20:23:41:465] [CheckFX                                 ]: MsiSetPropertyW - Setting Property Value...
INFO   : [10/16/2019 20:23:41:465] [CheckFX                                 ]: MsiSetPropertyW - Setting property 'VSDFXAvailable' to 'TRUE'.
MSI (c) (4C!CC) [20:23:41:465]: PROPERTY CHANGE: Adding VSDFXAvailable property. Its value is 'TRUE'.
INFO   : [10/16/2019 20:23:41:465] [CheckFX                                 ]: Writing config file with version: '4.0'...
INFO   : [10/16/2019 20:23:41:466] [CheckFX                                 ]: Creating Config File...
DEBUG  : [10/16/2019 20:23:41:466] [CheckFX                                 ]: Calling MsiGetActiveDatabase...
DEBUG  : [10/16/2019 20:23:41:466] [CheckFX                                 ]: Calling MsiDatabaseOpenView...
DEBUG  : [10/16/2019 20:23:41:466] [CheckFX                                 ]: Calling MsiViewExecute...
DEBUG  : [10/16/2019 20:23:41:467] [CheckFX                                 ]: Calling MsiViewFetch...
DEBUG  : [10/16/2019 20:23:41:467] [CheckFX                                 ]: Calling MsiRecordDataSize...
INFO   : [10/16/2019 20:23:41:467] [CheckFX                                 ]: MsiSetPropertyW - Setting Property Value...
INFO   : [10/16/2019 20:23:41:468] [CheckFX                                 ]: MsiSetPropertyW - Setting property 'VSDFxConfigFile' to 'C:\Users\rolan\AppData\Local\Temp\CFG7AA.tmp'.
MSI (c) (4C!CC) [20:23:41:468]: PROPERTY CHANGE: Adding VSDFxConfigFile property. Its value is 'C:\Users\rolan\AppData\Local\Temp\CFG7AA.tmp'.
INFO   : [10/16/2019 20:23:41:468] [CheckFX                                 ]: Custom Action succeeded.
INFO   : [10/16/2019 20:23:41:468] [CheckFX                                 ]: Custom Action completed with return code: '0'
Action ended 20:23:41: DIRCA_CheckFX. Return value 1.
MSI (c) (4C:AC) [20:23:41:470]: Skipping action: ERRCA_UIANDADVERTISED (condition is false)
MSI (c) (4C:AC) [20:23:41:470]: Doing action: AppSearch
Action 20:23:41: AppSearch. Searching for installed applications
Action start 20:23:41: AppSearch.
MSI (c) (4C:AC) [20:23:41:470]: Note: 1: 2262 2: AppSearch 3: -2147287038 
Action ended 20:23:41: AppSearch. Return value 1.
MSI (c) (4C:AC) [20:23:41:470]: Doing action: VSDCA_VsdLaunchConditions
Action 20:23:41: VSDCA_VsdLaunchConditions. 
Action start 20:23:41: VSDCA_VsdLaunchConditions.
MSI (c) (4C:AC) [20:23:41:470]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'VSDCA_VsdLaunchConditions' 
MSI (c) (4C:40) [20:23:41:474]: Invoking remote custom action. DLL: C:\Users\rolan\AppData\Local\Temp\MSI7AB.tmp, Entrypoint: VsdLaunchConditions
INFO   : [10/16/2019 20:23:41:479] [VsdLaunchConditions                     ]: Custom Action is starting...
INFO   : [10/16/2019 20:23:41:479] [VsdLaunchConditions                     ]: CoInitializeEx - COM initialization Apartment Threaded...
INFO   : [10/16/2019 20:23:41:480] [VsdLaunchConditions                     ]: Enumerating table using SQL statement: 'SELECT * FROM `_VsdLaunchCondition`'
INFO   : [10/16/2019 20:23:41:480] [VsdLaunchConditions                     ]: Calling MsiGetActiveDatabase...
INFO   : [10/16/2019 20:23:41:480] [VsdLaunchConditions                     ]: MsiDatabaseOpenViewW - Prepare Database to view table...
INFO   : [10/16/2019 20:23:41:480] [VsdLaunchConditions                     ]: TMsiViewExecute - Open Database view on table...
INFO   : [10/16/2019 20:23:41:481] [VsdLaunchConditions                     ]: Checking a launch condition...
INFO   : [10/16/2019 20:23:41:481] [VsdLaunchConditions                     ]: Getting the condition to evaluate...
INFO   : [10/16/2019 20:23:41:481] [VsdLaunchConditions                     ]: MsiRecordGetStringW - Fetching value...
INFO   : [10/16/2019 20:23:41:481] [VsdLaunchConditions                     ]: MsiRecordGetStringW - Getting value from column '1'...
INFO   : [10/16/2019 20:23:41:481] [VsdLaunchConditions                     ]: Evaluating condition 'VSDFXAvailable'...
INFO   : [10/16/2019 20:23:41:482] [VsdLaunchConditions                     ]: RESULT:	Condition is true. Nothing more to do.
INFO   : [10/16/2019 20:23:41:482] [VsdLaunchConditions                     ]: Custom Action succeeded.
INFO   : [10/16/2019 20:23:41:482] [VsdLaunchConditions                     ]: Custom Action completed with return code: '0'
Action ended 20:23:41: VSDCA_VsdLaunchConditions. Return value 1.
MSI (c) (4C:AC) [20:23:41:484]: Doing action: LaunchConditions
Action 20:23:41: LaunchConditions. Evaluating launch conditions
Action start 20:23:41: LaunchConditions.
MSI (c) (4C:AC) [20:23:41:484]: Note: 1: 2262 2: LaunchCondition 3: -2147287038 
Action ended 20:23:41: LaunchConditions. Return value 1.
MSI (c) (4C:AC) [20:23:41:484]: Doing action: CCPSearch
Action 20:23:41: CCPSearch. Searching for qualifying products
Action start 20:23:41: CCPSearch.
MSI (c) (4C:AC) [20:23:41:484]: Note: 1: 2262 2: CCPSearch 3: -2147287038 
Action ended 20:23:41: CCPSearch. Return value 1.
MSI (c) (4C:AC) [20:23:41:484]: Doing action: RMCCPSearch
Action 20:23:41: RMCCPSearch. Searching for qualifying products
Action start 20:23:41: RMCCPSearch.
MSI (c) (4C:AC) [20:23:41:485]: Note: 1: 2262 2: CCPSearch 3: -2147287038 
Action ended 20:23:41: RMCCPSearch. Return value 0.
MSI (c) (4C:AC) [20:23:41:485]: Doing action: ValidateProductID
Action 20:23:41: ValidateProductID. 
Action start 20:23:41: ValidateProductID.
Action ended 20:23:41: ValidateProductID. Return value 1.
MSI (c) (4C:AC) [20:23:41:485]: Doing action: DIRCA_TARGETDIR
Action 20:23:41: DIRCA_TARGETDIR. 
Action start 20:23:41: DIRCA_TARGETDIR.
MSI (c) (4C:AC) [20:23:41:485]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'DIRCA_TARGETDIR' 
MSI (c) (4C:AC) [20:23:41:485]: PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'C:\Program Files (x86)\FamiStudio'.
Action ended 20:23:41: DIRCA_TARGETDIR. Return value 1.
MSI (c) (4C:AC) [20:23:41:485]: Doing action: CostInitialize
Action 20:23:41: CostInitialize. Computing space requirements
Action start 20:23:41: CostInitialize.
MSI (c) (4C:AC) [20:23:41:485]: Machine policy value 'MaxPatchCacheSize' is 10
MSI (c) (4C:AC) [20:23:41:486]: PROPERTY CHANGE: Adding ROOTDRIVE property. Its value is 'C:\'.
MSI (c) (4C:AC) [20:23:41:486]: PROPERTY CHANGE: Adding CostingComplete property. Its value is '0'.
Action ended 20:23:41: CostInitialize. Return value 1.
MSI (c) (4C:AC) [20:23:41:486]: Doing action: FileCost
Action 20:23:41: FileCost. Computing space requirements
Action start 20:23:41: FileCost.
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: RemoveFile 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: MoveFile 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: DuplicateFile 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: Registry 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: Class 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: TypeLib 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: IniFile 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: ReserveCost 3: -2147287038 
Action ended 20:23:41: FileCost. Return value 1.
MSI (c) (4C:AC) [20:23:41:487]: Doing action: IsolateComponents
Action 20:23:41: IsolateComponents. 
Action start 20:23:41: IsolateComponents.
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: BindImage 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: IsolatedComponent 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: Patch 3: -2147287038 
Action ended 20:23:41: IsolateComponents. Return value 1.
MSI (c) (4C:AC) [20:23:41:487]: Skipping action: VSDCA_FolderForm_AllUsers (condition is false)
MSI (c) (4C:AC) [20:23:41:487]: Skipping action: ResumeForm (condition is false)
MSI (c) (4C:AC) [20:23:41:487]: Skipping action: MaintenanceForm (condition is false)
MSI (c) (4C:AC) [20:23:41:487]: Doing action: CostFinalize
Action 20:23:41: CostFinalize. Computing space requirements
Action start 20:23:41: CostFinalize.
MSI (c) (4C:AC) [20:23:41:487]: PROPERTY CHANGE: Adding OutOfDiskSpace property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:487]: PROPERTY CHANGE: Adding OutOfNoRbDiskSpace property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:487]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceAvailable property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:487]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRequired property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:487]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRemaining property. Its value is '0'.
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: Patch 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:487]: Note: 1: 2262 2: Condition 3: -2147287038 
MSI (c) (4C:AC) [20:23:41:488]: PROPERTY CHANGE: Modifying TARGETDIR property. Its current value is 'C:\Program Files (x86)\FamiStudio'. Its new value: 'C:\Program Files (x86)\FamiStudio\'.
MSI (c) (4C:AC) [20:23:41:488]: PROPERTY CHANGE: Adding _1DC7B328893C4FF390F22C681EED7789 property. Its value is 'C:\Program Files (x86)\FamiStudio\Demo Songs\'.
MSI (c) (4C:AC) [20:23:41:488]: Target path resolution complete. Dumping Directory table...
MSI (c) (4C:AC) [20:23:41:488]: Note: target paths subject to change (via custom actions or browsing)
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: TARGETDIR	, Object: C:\Program Files (x86)\FamiStudio\
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: WindowsFolder	, Object: C:\Windows\
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: ProgramMenuFolder	, Object: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: StartMenuFolder	, Object: C:\Users\rolan\AppData\Roaming\Microsoft\Windows\Start Menu\
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: DesktopFolder	, Object: C:\Users\rolan\Desktop\
MSI (c) (4C:AC) [20:23:41:488]: Dir (target): Key: _1DC7B328893C4FF390F22C681EED7789	, Object: C:\Program Files (x86)\FamiStudio\Demo Songs\
MSI (c) (4C:AC) [20:23:41:488]: PROPERTY CHANGE: Adding INSTALLLEVEL property. Its value is '1'.
MSI (c) (4C:AC) [20:23:41:488]: Note: 1: 2262 2: RemoveFile 3: -2147287038 
Action ended 20:23:41: CostFinalize. Return value 1.
MSI (c) (4C:AC) [20:23:41:488]: Doing action: WelcomeForm
Action 20:23:41: WelcomeForm. 
Action start 20:23:41: WelcomeForm.
MSI (c) (4C:AC) [20:23:41:488]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'WelcomeForm' 
MSI (c) (4C:40) [20:23:41:492]: Note: 1: 2262 2: Error 3: -2147287038 
Info 2898.For VSI_MS_Sans_Serif13.0_0_0 textstyle, the system created a 'MS Sans Serif' font, in 0 character set, of 13 pixels height.
MSI (c) (4C:40) [20:23:41:493]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control Line1 on dialog WelcomeForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: WelcomeForm, Line1, to the right
MSI (c) (4C:40) [20:23:41:494]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control Line2 on dialog WelcomeForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: WelcomeForm, Line2, to the right
MSI (c) (4C:40) [20:23:41:494]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control BannerBmp on dialog WelcomeForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: WelcomeForm, BannerBmp, to the right
MSI (c) (4C:40) [20:23:41:498]: Note: 1: 2262 2: Error 3: -2147287038 
Info 2898.For VsdDefaultUIFont.524F4245_5254_5341_4C45_534153783400 textstyle, the system created a 'MS Sans Serif' font, in 0 character set, of 13 pixels height.
MSI (c) (4C:40) [20:23:41:498]: Note: 1: 2262 2: Error 3: -2147287038 
Info 2898.For VSI_MS_Sans_Serif16.0_1_0 textstyle, the system created a 'MS Sans Serif' font, in 0 character set, of 20 pixels height.
Action 20:23:41: WelcomeForm. Dialog created
MSI (c) (4C:64) [20:23:41:503]: Note: 1: 2205 2:  3: _RemoveFilePath 
MSI (c) (4C:64) [20:23:41:503]: Note: 1: 2262 2: DuplicateFile 3: -2147287038 
MSI (c) (4C:64) [20:23:41:503]: Note: 1: 2262 2: ReserveCost 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: TypeLib 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: Class 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: PROPERTY CHANGE: Modifying CostingComplete property. Its current value is '0'. Its new value: '1'.
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: BindImage 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: PublishComponent 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: SelfReg 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: Font 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2262 2: Class 3: -2147287038 
MSI (c) (4C:64) [20:23:41:505]: Note: 1: 2727 2:  
MSI (c) (4C:40) [20:23:43:654]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control Line1 on dialog FolderForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: FolderForm, Line1, to the right
MSI (c) (4C:40) [20:23:43:654]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control Line2 on dialog FolderForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: FolderForm, Line2, to the right
MSI (c) (4C:40) [20:23:43:655]: Note: 1: 2262 2: Error 3: -2147287038 
DEBUG: Error 2826:  Control BannerBmp on dialog FolderForm extends beyond the boundaries of the dialog to the right by 3 pixels
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2826. The arguments are: FolderForm, BannerBmp, to the right
MSI (c) (4C:40) [20:23:56:648]: Internal Exception during install opera

Hmm... actually it seems like the installer looks less blurry after I ran it with logging, like it's detected my computer's DPI properly now. Given that the error seems like it could be with the UI extending beyond the window boundaries maybe it's something related to the installer not detecting DPI properly? Let me know if you want me to do more testing.

I'm on Windows 10 (Home version 1809), and I have a 2560x1440 monitor set to 100% scale.

MacOS - Sound only plays through display audio, never through headphones

I am running MacOS 10.12.6 on a 2012 Mac Mini with a 27" cinema display over thunderbolt. With headphones plugged into my Mac, system audio is played through them; however, FamiStudio audio plays through the display speaker only. Manually changing the output device to "Headphones" does not affect audio output. Is there a way in FamiStudio to change the audio output manually that I'm missing? If so, I apologize for my oversight.

Ability to select audio driver

Hi !
I think it will be awesome for people who want to make Live performances, because now it has very big latency
I want to use ASIO instead of Default Windows Audio Driver

[Feature request] Tracker view?

(This one might be a little controversial.)

Would it be possible to represent the serialized internal state on a tracker-like gridsheet view, as an alternative UI to the Piano Roll?

Would it be worth it to implement? FamiTracker exists, but alternatives - especially ones which can be made cross-platform, such as this - would be very much welcome.

I already use FamiStudio for some experimenting, and have a couple WIP projects in it already. I'd switch to FamiStudio completely, especially since 2.0.0, for this feature alone. Composing in a tracker, on a key-input oriented composition view, feels more natural to me than a piano roll editor.

I understand if it's too far removed from the goal of this project, I wouldn't consider it a priority at all, just a nice thing to have. :)

Broken FTM Compatibility (& some more issues and feature requests)

Exactly what it says on the tin. The ability to open FTMs does work, but many many commands don't work, and some songs straight up just don't sound right at all, due to the lack of feature implementation. Take for example, the Namco 163's wave switching. That's not possible here, and some imported songs suffer hard. Same applies to manual VRC6 pulse width commands. Additionally, some DPCM samples don't even import.

Other Issues:

  • iNES ROM export stutters occasionally.

  • Said export doesn't export used expansion chip(s). Not a surprise, as each one has it's own quirks, and one of them (5B/FME-7), isn't even emulated right. Additionally, there could be something similar to this, where it uses the CPU to simulate the extra channels in software, but that requires that there is no DPCM being used at the same time.

  • Opening some FTM modules straight up break the program into a "unhandled exception" which persists until the program is terminated. Link to the module.

  • Most of the mixing for the soundchips is inaccurate.

  • This one's already known, but the 5B is lacking it's extra features (envelope+tone)

  • From my tests, PAL 2A07 mode lacks the extra low notes (G#0 and a detuned G-0), compared to the default A#0 and A-0.

  • Stereo isn't a feature of the NES/Famicom hardware. No official NES/Famicom system has any stereo capabilities, however unofficial systems like certain VT03 soundchip revisions or the Generation NEX do support stereo.

Feature Requests (not necessary but would be great to have):

  • Famitracker Text Import
  • Famitracker-Styled interface, similar to this suggestion
  • Possible NES .dmf module compatibility (quite unlikely, though.)
  • 7-bit/MMC5 PCM
  • Nonstandard 60Hz refresh rates (with working ROM export)
  • Backwards compatibility mode (for modules made in Pre-2.0 Famistudio.)
  • VT03 or 2x2A03 soundchip mode
  • .0CC file support

Additionally, do you have any plans for sample songs that are made by the users, if they are covers/originals/recreations? I think both me and quite a few people would be interested in adding a few sample songs to future versions.

MacOS problems

I really can't get anything to work on Mac.

  1. I can't get release notes to exist, any clicking on the notes, wether holding control or command, will just end up either making a new note or putting the note down a step.
  2. I can't get a loop point to be set in a sound envelope. I've tried right clicking in the timeline and all it does is delete the points past where i clicked or it will set the envelope to the area i clicked.
  3. I just can't get keyboard shortcuts to work. I've tried command+z and command+y and they just don't exist. I even tried control+z and control+y just to see if the shortcuts were always made to be control and it still didn't work

If it's of any use, I downloaded from famistudio.org

Confusing / wrong use of term "Note" for song properties.

I'm talking about - "Frames per Note", "Notes per pattern" and "Notes per bar".
In the "Frames per Note" and "Notes per bar" word Note refers to 1/4th note, which probably would be better to use word "Beat".
"Frames per Note" refers to 1/16th note, dunno what term would be better for it but at the current situation word, "Note" is used for 2 different meanings.

Feature Request - Additional Midi support

First of all, I have greatly enjoyed using FamiStudio and I think it's incredible.
I've been teaching myself 6502 asm on and off for the past year, in part by reading the nesdev.com forums.

I have a feature request for FamiStudio which I know is non-trivial.
I would like to be able to record midi performances into a track in FamiStudio.

There are a few key elements I think would enable this :

  • Arm certain patterns for recording
  • Record events while the project is playing
  • Better audio latency (Probably the primary showstopper for this request)
  • Capture midi velocity
  • Record key release as stop-note
  • Metronome (optional but helpful)
  • Add or Replace Recording mode (also very optional but helpful)

In this way, I could :

  • Arm a few patterns for recording
  • Hit play on the song
  • When those patterns come up, play them on my keyboard
  • Tweak them and reuse them throughout the song

I could also simply record a drum fill with my midi controller pads.

If you need a bug tester for anything midi related, I am setup with midi controllers and usb audio interfaces in Linux, Windows, and OSX environments.

Alternate control for zooming

I'm using a pen tablet and don't have a scroll wheel at all so it's impossible to zoom in or out. Having another way to zoom would be useful, for example keyboard shortcuts or a way to do it with clicking (for example alt+right click, then dragging up or down)

FamiStudio Won't launch and installer won't repair

Hi,

I downloaded FamiStudio from itch a few days ago but it dosen't seem to want to launch, all I get is nothing, same when running as administrator.

Im on windows 10 2004, with a R3 2200G and 8GB of RAM.

Text containing double-quotes does not round-trip to FamiStudio text format

If any text in a FamiStudio project contains a double-quote, parsing of that line will misinterpret that double-quote as the end of the attribute value.

For example, name an instrument Before "During" After, save to FamiStudio text format, and load back in. Its name becomes Before, as the double-quote in "During" After is misinterpreted as the end of the attribute value.

I could raise a PR to replace quotes in strings with pairs of double-quotes and interpret them on load, similar to how CSV commonly escapes strings if that'd be good? I'd of course also update the docs to explain that.

Saving files and exporting doesn't enforce file extensions on Linux

When saving a project on FamiStudio 2.1.0 on Linux, file extensions aren't added automatically. Saving a project doesn't add a .fms extension, so unless it's added manually, the resulting file can't be opened again because the file type is unrecognized. I have to manually add .fms to my projects for them to be usable, which I think should be added by the program and enforced automatically.

Similarly, the export function also requires file extensions to be added manually. It would be nice if we didn't have to add these ourselves, and I don't actually know what the extension is for some of the export formats, rendering them basically unusable at the moment unless I look those up separately.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.