neoretrosynth/README.md
2024-08-18 00:49:37 +02:00

2.7 KiB

NeoRetro Synth - Cyberpunk Edition

NeoRetro Synth is a retro-style synthesizer and drum machine with a cyberpunk aesthetic, built using the Pyxel library for Python.

Installation

Clone the repository with git clone https://github.com/tcsenpai/neoretro-synth.git

Then cd neoretro-synth pip install -r requirements.txt

Now you can run the application with python main.py

Features

  • 4 tracks: 2 drum tracks and 2 synth tracks
  • 8-step dynamically sized sequencers for each track (expandable up to 32 steps)
  • Multiple waveforms for synth sounds: Triangle, Square, Pulse, and Noise
  • Drum sounds: Kick, Snare, Hi-hat, and Open hi-hat
  • Real-time keyboard input for playing notes
  • Adjustable octave, sound length, and BPM
  • Loop recording and playback functionality
  • Arpeggiator with customizable pattern
  • Volume control for both drum and synth tracks
  • MIDI and WAV export capabilities
  • Preset saving and loading
  • Edit mode for fine-tuning sequencer patterns
  • Cyberpunk-inspired user interface

Controls

All controls are displayed in the GUI for easy reference. Key features include:

  • Z-M keys: Play synth notes (C2-C4)
  • 1-4 keys: Play drum sounds
  • R: Toggle recording
  • SPACE: Play/Stop loop
  • C: Clear loop
  • UP/DOWN arrows: Change octave
  • LEFT/RIGHT arrows: Adjust sound length
  • W: Change waveform
  • TAB: Toggle sequencer
  • E: Enter/Exit edit mode
  • T: Switch edit target (in edit mode)
  • +/-: Change sequencer length (in edit mode)
  • .: Increase BPM
  • ,: Decrease BPM
  • 6/7: Adjust drum volume
  • 8/9: Adjust synth volume
  • F1: Export to MIDI
  • F2: Export to WAV
  • F3: Save preset
  • F4: Load preset
  • F5: Toggle arpeggiator
  • Q: Quit application

Sequencer

  • 4 tracks: 2 drum tracks and 2 synth tracks
  • Each track has an 8-step sequencer, expandable up to 32 steps
  • Edit mode allows for detailed pattern creation and modification
  • Dynamic length adjustment for each sequencer

Sound Generation

  • Synth tracks use multiple waveforms: Triangle, Square, Pulse, and Noise
  • Drum tracks have four distinct sounds: Kick, Snare, Hi-hat, and Open hi-hat
  • Adjustable sound length and volume for both synth and drum sounds

Export Options

  • MIDI export: Saves the current sequence as a MIDI file
  • WAV export: Renders the current sequence as a WAV audio file

Additional Features

  • Preset system for saving and loading synth configurations
  • Arpeggiator with customizable pattern
  • Real-time visual feedback in the GUI
  • Cyberpunk-inspired color scheme and design

Requirements

  • Python 3.x
  • Pyxel library
  • NumPy
  • SciPy

Usage

Run the main.py file to start the NeoRetro Synth application. Use the on-screen controls or keyboard shortcuts to create and manipulate sounds and sequences.