Skip to content
Please note that GitHub no longer supports old versions of Safari.

We recommend upgrading to the latest Safari, Google Chrome, or Firefox.

Learn more
FamiStudio NES Music Editor
C# C++ C
Branch: master
Clone or download

README.md

FamiStudio NES Music Editor

FamiStudio is a very simple NES Music editor. It is intended to be more user-friendly than FamiTracker.

Its feature set is designed to match FamiTone2, a popular audio library among NES homebrew developers.

While I intend to keep this reference version simple and on-par with FamiTone2, it could easily be extended to support modified/unofficial FamiTone versions (3 and 4, by nesdoug for example), add support for more effects, or audio expansion chips.

Tutorial

There is a 10 minutes tutorial on YouTube:

Tutorial

Features

  • Modern DAW-style UI with sequencer and piano roll, no hexadecimal anywhere
  • Full Undo/Redo support
  • Native export to FamiTone2 music format
  • Famitracker text import
  • Basic MIDI input support
  • Low CPU usage (Direct2D for graphics, XAudio2 for audio, fairly well threaded)
  • Runs on top of Blargg's Nes_Snd_Emu.

Limitations / Known Issues

  • No High-DPI support, any scaling larger than 100% will make the application look blurry
  • No PAL support (*)
  • No copy-paste support (other than pattern instancing) (*)
  • No FamiTone2 SFX format support (could be added, but for short SFX, Famitracker is probably a better tool)
  • Lots of missing keyboard shortcuts (also no piano keyboard input) (*)
  • MIDI support is barebone: it only uses device #0 and notes are never stopped (*)
  • The UI code is terrible

(*): plan to improve in the coming weeks/months

Releases

Version 1.0.0 is available for download in the Releases section.

Demo Songs

A few demo songs are included in the installation folder (typically C:\Program Files (x86)\FamiStudio):

  • After The Rain (by Shiru, included with FamiTone2)
  • Danger Streets (by Shiru, included with FamiTone2)
  • Mega Man 2 - Stage Select (my approximate recreation)
  • Journey To Silius - Intro (my approximate recreation)

Getting Started

Please check out the Wiki for instructions on how to use FamiStudio.

Compiling

The solution/projects are in VS2017:

  • The main application is written in C#.
  • You will need C++ support installed if you plan to edit the DLL wrapper around Nes_Snd_Emu.
  • The Setup project is built using the "Microsoft Visual Studio Installer Projects" extension which can be installed from Visual Studio in the "Extensions and Updates" menu.

The C# application is built on top of SharpDX 4.2.0. It should install the required packages automatically, but in case it does not, simply open the Package Manager console and type in the following:

Install-Package SharpDX -Version 4.2.0
Install-Package SharpDX.Direct3D11 -Version 4.2.0
Install-Package SharpDX.Direct2D1 -Version 4.2.0
Install-Package SharpDX.DXGI -Version 4.2.0
Install-Package SharpDX.XAudio2 -Version 4.2.0

If that fails, or if you have general issues with packages, running this in the Package Manager console often fixes issue:

Update-Package -reinstall

Issues and Contributing

Please open issues contact me if you find bugs or have feature suggestion ideas. You can find me:

Acknowledgments

  • Shiru for the FamiTone2 library and the demo songs that are included (After the Rain and Danger Streets)
  • Blargg for Nes_Snd_Emu and the underlying Blip_Buffer
You can’t perform that action at this time.