MetaGame - sgml/signature GitHub Wiki

Project Spark

Chiptune Coding

Note | Frequency (Hz) | Assembly Code

C4 | 261.63 | 0x1A3F D4 | 293.66 | 0x1C2B E4 | 329.63 | 0x1E1A F4 | 349.23 | 0x1F4C G4 | 392.00 | 0x2200 A4 | 440.00 | 0x2500 B4 | 493.88 | 0x2800 C5 | 523.25 | 0x2A3F


Helpful Game Boy Development Resources:

Music Macro Language (MML) vs MIDI Music

Attribute Music Macro Language (MML) Assembly for MIDI Music on Old Nokia Phones
Definition A high-level, text-based language for describing musical sequences. Low-level code written in assembly to directly control MIDI hardware.
Syntax Uses simple characters (e.g., letters for notes, numbers for durations) and commands. Utilizes explicit opcodes, register operations, and direct memory manipulation for MIDI events.
Abstraction Level Abstracts hardware details; relies on an interpreter or compiler to manage hardware output. Operates at a hardware-specific level, interfacing directly with the sound chip and registers.
Ease of Use Easier for composers and hobbyists; intuitive and musically oriented. Requires detailed knowledge of the device’s architecture and assembly programming.
Flexibility Focuses on musical composition with limited control over low-level sound synthesis. Offers precise control over sound synthesis and timing, but increases programming complexity.
Performance Generally sufficient for its intended use, though less optimized due to interpretation. Highly optimized for performance, ideal for low-resource devices like early Nokia phones.
Portability More portable across systems that support MML interpreters or compilers. Tied to specific hardware; non-portable and tailored to a particular device architecture.
Developer Experience Debugging and modifying musical scores is more straightforward due to its compositional format. Debugging is more challenging because errors often arise from direct hardware interactions.
Usage Context Widely used in computer and video game systems for chiptunes and other retro music projects. Employed in early mobile phones (such as Nokia) to generate MIDI music in a resource-constrained environment.

Scratch 3.0

MakeCode

Blockly

Koji

Nintendo Web Framework

Delphi