Skip to content

skywodd/Cheaptune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cheaptune - simple yet powerfull chiptune generator

by SkyWodd

"Cheaptune" is a total rework from scratch of my previous chiptune generator attempt.

This version use object oriented programmation strategy, no more "pseudo-object" oriented C code. No more crap, no more "spaghetti include", only clean C++ code.

BREAKING NEWS Version 2.0 is out !

Changelog:

  • Extensible (virtual class based code. You can now add custom waveform generator, envelope, ...)
  • Fast execution (old switch based code VS virtual function call: same performance with GCC)
  • Integer 16/32 bits calculation ONLY (no more fuck*ng float !)
  • Exponential response using precomputed tables (ultra fast)
  • Sinus wave table optimized (1/4 sinus wave required instead of full table in v1.0)
  • Special low frequency oscillator available
  • Improved audio resolution, now full 16 bits
  • Adjustable frequency synthesis resolution, from 9 bits to full 16 bits
  • Automated wave table generation (python script)

TODO list:

  • Filter rework, goal: 100% integer based code (removed for now)
  • Vibrato oscillator
  • Tremolo envelope
  • Ring modulation
  • Hard sync
  • Tracker-like music sheet decoder

Source code

The code itself is commented to provide implementation details. The whole source code is released under the GPLv3 license.

To compile the source code you only need to get an GCC-based compiler with C++ support. Remarks : I'm using Eclipse IDE with built-in builder, so no makefile for now.


References

Here a list of URL used to create this program :

About

Yet another simple chiptune generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published