Skip to content

Commit

Permalink
Merging release candidate (#31)
Browse files Browse the repository at this point in the history
* First stable release!

1.3o-1:
Fixed errors when random naming projects (shoutouts to 256k!)
Start sample navigation behavior adjusted
New: When in Phrase or Table view, FX commands have
      a help legend at the top of the screen (#68)

Official builds for:
    Miyoo mini
    Win32
    CHIP
    Raspberry Pi
    PSP
    Deb32

Bugs:
    SCREENMULT no longer applies for PSP (47)
    Disable default mapping for MIYOO to not conflict with mapping.xml (53)
    Shoutouts to fpiesik and Sacaredo for help debugging

Includes:

* Random project name generator! (#54)
  When entering New in load screen or Save As, select Regen to generate a random name
  Add manual entry
Co-authored-by: djdiskmachine <[email protected]>

* Stop playing back samples on exit of sample browser (#23)
  Hold "A" and navigating up or down to quicker preview when browsing samples
  Hold "A" and press sideways for folder navigation
* Adds filter attenuation (#9)
* Piggy Tracker config & mapping guides (#14)
Co-authored-by: INFU <[email protected]>

* Change default colors dark theme pink hue default (#15)
Co-authored-by: djdiskmachine <[email protected]>

* Improve sample browser (#52) (#55)
  Preview with start
  Browse preview with start + up / down
  Load sample with start + right
  Navigate up in folder structure with start + left
  Bump build number
  Hold A and press up to ".." to navigate one level up
  B navigation no longer wraps around but stays at end points

Co-authored-by: djdiskmachine <[email protected]>

* Unify cursor color (#24)
Cursor now has the same color everywhere
Co-authored-by: djdiskmachine <[email protected]>

* Add save as (#12) 
Save As option in Project page
Mdashdotdashn#1
Shoutouts yoyz!
Co-authored-by: yoyz <[email protected]>

* Miyoo mini release (#43)
Co-authored-by: Nine <[email protected]>

* Add ability to change font (#50)
Co-authored-by: subnixr <[email protected]>

* Update license
License changed from MIT to CC BY-NC-SA 4.0
  • Loading branch information
djdiskmachine authored Jan 23, 2024
1 parent ec13c06 commit 32eabdd
Show file tree
Hide file tree
Showing 105 changed files with 2,489 additions and 306 deletions.
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
bin/**
build/**
projects/buildPSP/**
tracks/**
projects/build**
tracks/**
*.dat
*.wav
*exe*
*elf*
*dge*
.vscode
466 changes: 437 additions & 29 deletions LICENSE

Large diffs are not rendered by default.

27 changes: 18 additions & 9 deletions docs/wiki/What-is-LittleGPTracker.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# What is LittleGPTracker?
[*LittleGPTracker*](http://www.10pm.org/nostromo/lgpt/) *(a.k.a piggy tracker) is a sample based tracker originally programed for the gamepark handhelds, but now also available for Microsoft Windows and Mac OSX. It implements a user interface similar to the refined track-by-joypad software* [*littlesounddj*](http://www.littlesounddj.com/)*. Piggy currently supports 8 monophonic 8Bit/16Bit/44.1Khz stereo channels as well as 16 channel midi output. Piggy is currently under development and the latest versions of the program (along with unstable ghetto builds) can be found at* [*http://gorehole.org/lgptWiki/*](http://gorehole.org/lgptWiki/)*.*
You are reading a reference manual for those who are comfortable with LSDj or trackers in general. An alternative introduction to LittleGPTracker is our very own [quick_start_guide](http://wiki.littlegptracker.com/doku.php?id=lgpt:quick_start_guide). If you have a question this manual does not answer, please ask on the [lgpt mailing list](http://groups.yahoo.com/groups/littlegptracker/) or in #hexawe on efnet. Don't forget to check out the advanced [tips_tricks](http://wiki.littlegptracker.com/doku.php?id=lgpt:tips_tricks)
[*LittleGPTracker*](http://www.10pm.org/nostromo/lgpt/) *(a.k.a piggy tracker) is a sample based tracker originally programed for the gamepark handhelds and PSP but now also available for Microsoft Windows and ~~Mac OSX~~. It implements a user interface similar to the refined track-by-joypad software* [*littlesounddj*](http://www.littlesounddj.com/)*. Piggy currently supports 8 monophonic 8Bit/16Bit/44.1Khz stereo channels as well as 16 channel midi output. Piggy is currently under development and the latest versions of the program (along with unstable ghetto builds) can be found at* [*https://github.com/djdiskmachine/LittleGPTracker/releases/*](https://github.com/djdiskmachine/LittleGPTracker/releases/)*.*
You are reading a reference manual for those who are comfortable with LSDj or trackers in general. An alternative introduction to LittleGPTracker is our very own [quick_start_guide](https://web.archive.org/web/20170310001122/wiki.littlegptracker.com/doku.php?id=lgpt:quick_start_guide). If you have a question this manual does not answer, please join the [Discord](https://discord.com/invite/NMQVbrFgr3) or in #hexawe on efnet. Don't forget to check out the advanced [tips_tricks](https://web.archive.org/web/20170310001122/wiki.littlegptracker.com/doku.php?id=lgpt:tips_tricks)
If you want to grab some sounds to get off the ground quickly, or want to hear and see what other people have been doing with piggy tracker, download some of the .zip archives from [http://hexawe.net](http://hexawe.net/)!

# Files
## Installation

Grab the installation package for your platform from the [download page](http://www.10pm.org/nostromo/lgpt/download.php). Extract the files from the archive & copy it where you like. after that you can run the executable type for your system, located in the lgpt root or in the /bin folder. linux users may need to set the binary as executable (chmod a+x lgpt.deb-exe).
If you're using PPSSPP, LittleGPTracker might boot with a black screen. To workaround
this, set Software rendering **or** change rendering resolution

## Directory Structure
- **bin**
Expand Down Expand Up @@ -46,6 +48,9 @@ After that you can copy additional wavs to the lgptRoot/lgptProject/samples dire

**Piggy now supports .sf2 Soundfonts. You must add these by hand to your SAMPLES directory, use PROGRAM CHANGE commands to load different patches. Loop points are automatically loaded, but you'll need to make VOLM setting to adjust decay.**

## New project
When creating a new project, a random name is selected for you. Generate a new name with Regen or edit it manually selecting characters with A and pressing up/down

## Multiple Projects

The Piggy supports multiple projects! Just create multiple directories in the root folder (where lgptNew and lgpt10k were found). Examples: “lgptProject1”, “lgpt*Author*Name”, “lgptSomethingElse”, “lgptWhatever”, etc. Each project directory must contain its own samples which must be stored in a sub-directory called “samples”. Lgpt will prompt you to choose one of the projects found in the root (lgpt- directories) when starting up.
Expand Down Expand Up @@ -318,7 +323,8 @@ To move from one screen to the other, press the RTrigger combined with the direc
- **cutoff:** filter cutoff frequency
- **reso:** filter resonance frequency
- **type:** this is where it gets a little trickier. The filter now supports continuous change from low pass to high pass. set type to 00 for low pazz. FF for hi-pass and 7f for Band pass (or is it notch? n0s must check). all intermediate values morph in between them.
- **dist:** filter distortion. for the moment we have none & scream. i'm planning on maybe add a third choice that would make the filter behave a little better when resonance is set very high in the old/default mode
- **mode:** filter distortion. Modes are none, bassy & scream. Scream adds loads of distortion when increasing resonance. Bassy makes the filter behave a little better when resonance is set very high compared to the default mode.
- **attenuate:** volume attenuator post (scream) filter
- **fb tune:** length of the feedback delay line
- **fb mix:** how much of the feedback is pushed back in the circuit

Expand All @@ -330,9 +336,11 @@ In oscillator modes, under 0x80 the feedback of specified length is added to the
- **interpolation:** Interpolation mode ('linear'/'none'): selects which interpolation mode is used when in between samples. linear interpols linearly while none takes the nearest neighbor. Use none when playing samples at low range to add some typical overtones.
- **loop mode:** selects the looping mode.
- none will play sample from zero to end.
- loop will start at zero and loop from loopstart to end.
- loop will start at zero and loop from loop start to loop end.
- pingpong will start at "start" and bounce the loop between loop start and loop end.
- oscillator is a special mode where the loop selection (from loop start to loop end) is taken as oscillator data and automatically tuned. Experiment with different settings, do not forget 'root note' is your friend to tune the oscillator back in a useful range
- looper sync will automatically tune a loop so that it plays exactly 16 bars. Use the root note to play twice faster/slower
- oscillator is a special mode where the loop selection (from loopstart to end) is taken as oscillator data and automatically tuned. Experiment with different settings, do not forget 'root note' is your friend to tune the oscillator back in a useful range
- slicer will cut the sample into "slices" amount of samples, mapped from C-2 up to amount of slices
- **start:** start point of the sample regardless of if loop is enabled; in hex
- **loop Start:** start point of the sample when loop is enabled; in hex
- **loop End:** end point of the sample; in hex. You can play samples backwards by setting the end value lower than the start!
Expand All @@ -348,10 +356,11 @@ The samples of the library have to be located in a folder samplelib at the same
![](https://d2mxuefqeaa7sj.cloudfront.net/s_B9C92C3440E8671360862F10CAB0FE70873BFE49CFB51CA246C781C17506C258_1522140496106_sample_import_1.1f.png)


When entering the import screen, the current folder is the library root folder “samplelib”. All sample in that folder are listed.
Use U/D to select a sample and 'A' to load it
B+L/R to rotates between all sub directories.
In the latest ghetto, hitting 'A,A“ will bring up a sample loader pop-up screen, use the cursor to select directories and samples, and chose “listen” to play the sample, “import” to add it to your project, or “exit” to return the instrument screen.
Hitting "A,A“ on the sample selection of the instrument screen will bring up a sample import pop-up screen. Use the cursor to select directories and samples.
When entering the import screen, the current folder is the library root folder “samplelib”. All samples and folders in that folder are listed.
B+L/R jumps a page up/down in the sample folder.
Legacy: Using A, choose “listen” to play the sample, “import” to add it to your project, or “exit” to return the instrument screen. Hold A and navigate up/down to preview samples while navigating.
New in beta-2: Hold Start to preview. Keep holding start and navigate up/down to preview samples while navigating. Hold Start and Press Left to navigate up in the folder structure. Hold Start and press Right to load a sample.

## Midi Instrument Screen
![](https://d2mxuefqeaa7sj.cloudfront.net/s_B9C92C3440E8671360862F10CAB0FE70873BFE49CFB51CA246C781C17506C258_1522140537386_midi_1.1f.png)
Expand Down
144 changes: 136 additions & 8 deletions projects/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,22 @@ RASPIDIRS := ../sources/Adapters/Unix/FileSystem \
../sources/Adapters/SDL/Timer\
../sources/Adapters/SDL/GUI

STEAMDIRS := ../sources/Adapters/Unix/FileSystem \
../sources/Adapters/DEB/Main\
../sources/Adapters/Unix/Process\
../sources/System/Process\
../sources/Externals/RTAudio\
../sources/Externals/RtMidi\
../sources/Adapters/DEB/System\
../sources/Adapters/Jack/Audio\
../sources/Adapters/Jack/Midi\
../sources/Adapters/Jack/Client\
../sources/Adapters/Jack/Midi\
../sources/Adapters/RTAudio\
../sources/Adapters/RTMidi\
../sources/Adapters/SDL/Timer\
../sources/Adapters/SDL/GUI

GP2XDIRS := . \
../sources/Adapters/GP2X/Main \
../sources/Adapters/GP2X/FileSystem \
Expand Down Expand Up @@ -115,6 +131,44 @@ DINGOODIRS := . \
../sources/Adapters/SDL/GUI \
../sources/Adapters/SDL/Timer

RS97DIRS := . \
../sources/Adapters/DINGOO/Main \
../sources/Adapters/Unix/FileSystem \
../sources/System/Process \
../sources/Adapters/Unix/Process \
../sources/Adapters/DINGOO/System \
../sources/Adapters/DINGOO/Midi \
../sources/Adapters/DINGOO/Audio \
../sources/Adapters/SDL/Audio \
../sources/Adapters/SDL/Process \
../sources/Adapters/SDL/GUI \
../sources/Adapters/SDL/Timer

BITTBOYDIRS := . \
../sources/Adapters/DINGOO/Main \
../sources/Adapters/Unix/FileSystem \
../sources/System/Process \
../sources/Adapters/Unix/Process \
../sources/Adapters/DINGOO/System \
../sources/Adapters/DINGOO/Midi \
../sources/Adapters/DINGOO/Audio \
../sources/Adapters/SDL/Audio \
../sources/Adapters/SDL/Process \
../sources/Adapters/SDL/GUI \
../sources/Adapters/SDL/Timer

MIYOODIRS := . \
../sources/Adapters/DINGOO/Main \
../sources/Adapters/Unix/FileSystem \
../sources/System/Process \
../sources/Adapters/Unix/Process \
../sources/Adapters/DINGOO/System \
../sources/Adapters/Dummy/Midi \
../sources/Adapters/SDL/Audio \
../sources/Adapters/SDL/Process \
../sources/Adapters/SDL/GUI \
../sources/Adapters/SDL/Timer

PSPDIRS := . \
../sources/Adapters/PSP/Main \
../sources/Adapters/PSP/FileSystem \
Expand Down Expand Up @@ -199,6 +253,55 @@ DINGOOFILES := GPSDLMain.o \
SDLEventManager.o \
SDLGUIWindowImp.o

RS97FILES := GPSDLMain.o \
UnixFileSystem.o \
DINGOOAudio.o \
Process.o \
UnixProcess.o \
SDLAudioDriver.o \
DINGOOAudioDriver.o \
BITTBOYSystem.o \
DINGOOEventQueue.o \
SDLProcess.o \
SDLTimer.o \
GUIFactory.o \
SDLEventManager.o \
BITTBOYSerialMidiDevice.o \
BITTBOYMidiService.o \
SDLGUIWindowImp.o

BITTBOYFILES := GPSDLMain.o \
UnixFileSystem.o \
DINGOOAudio.o \
Process.o \
UnixProcess.o \
SDLAudioDriver.o \
DINGOOAudioDriver.o \
BITTBOYSystem.o \
DINGOOEventQueue.o \
SDLProcess.o \
SDLTimer.o \
GUIFactory.o \
SDLEventManager.o \
BITTBOYSerialMidiDevice.o \
BITTBOYMidiService.o \
SDLGUIWindowImp.o

MIYOOFILES := GPSDLMain.o \
UnixFileSystem.o \
SDLAudio.o \
Process.o \
UnixProcess.o \
SDLAudioDriver.o \
MIYOOSystem.o \
DINGOOEventQueue.o \
SDLProcess.o \
SDLTimer.o \
GUIFactory.o \
SDLEventManager.o \
DummyMidi.o \
SDLGUIWindowImp.o

PSPFILES := PSPmain.o \
PSPFileSystem.o \
Process.o \
Expand Down Expand Up @@ -266,6 +369,26 @@ RASPIFILES := UnixFileSystem.o \
JackClient.o \
JackAudio.o

STEAMFILES := UnixFileSystem.o \
DEBmain.o \
DEBSystem.o \
GUIFactory.o \
SDLGUIWindowImp.o \
SDLEventManager.o \
Process.o \
UnixProcess.o \
RTAudioDriver.o \
RTAudioStub.o \
RtAudio.o\
RtMidi.o\
RTMidiService.o\
RTMidiOutDevice.o\
RTMidiInDevice.o\
SDLTimer.o \
JackAudioDriver.o \
JackClient.o \
JackAudio.o

NDSFILES := NDSmain.o \
NDSFileSystem.o \
DummyMidi.o \
Expand Down Expand Up @@ -314,7 +437,7 @@ CAANOOFILES := CAANOOSDLMain.o \
SDLTimer.o \
GUIFactory.o SDLEventManager.o SDLGUIWindowImp.o

COMMONFILES := Logger.o Trace.o Result.o Status.o Config.o \
COMMONFILES := Logger.o Trace.o Result.o Status.o Config.o \
Timer.o FileSystem.o \
SysMutex.o TimeService.o \
MidiOutDevice.o MidiInDevice.o MidiService.o Groove.o \
Expand Down Expand Up @@ -429,7 +552,7 @@ $(BUILD):
#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(OUTPUT).$(EXTENSION) $(BUILD) *.elf *.gxb *.fxe
@rm -fr $(OUTPUT).$(EXTENSION) $(BUILD) *.elf *.gxb *.fxe *.gdb


#---------------------------------------------------------------------------------
Expand Down Expand Up @@ -471,10 +594,15 @@ $(OUTPUT).beagle-exe : $(OFILES)
endif
#---------------------------------------------------------------------------------------


# Make as many as possible
# Build W32 first
deploy:
../scripts/deployW32.sh
../scripts/deployGP2X.sh
../scripts/deployGP32.sh
../scripts/deployOSX.sh

make PLATFORM=PSP
make PLATFORM=DEB
# make PLATFORM=RS97
# make PLATFORM=BITTBOY
make PLATFORM=MIYOO
# ./resources/packaging/docker_steam.sh
./resources/packaging/build_and_copy_from_pi.sh
./resources/packaging/build_and_copy_from_chip.sh
./resources/packaging/lgpt_package.sh
7 changes: 5 additions & 2 deletions projects/Makefile.BEAGLEBOARD
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
-include $(PWD)/rules_base

%.beagle-exe: $(OFILES)
$(CXX) $(LDFLAGS) $@ $(OFILES) $(LIBS)

DEVKIT=/usr/local/angstrom/arm

TOOLPATH=$(DEVKIT)/bin
PREFIX := arm-angstrom-linux-gnueabi-

include $(PWD)/beagleboard_rules

SDLBASE:= /home/nostromo/devtree/syntharchitecture/Libs/Beagleboard/SDL/
CFLAGS := -I$(SDLBASE)/include -DDEBUG -O3 -Wall -DPLATFORM_$(PLATFORM) -I$(PWD)/../sources -D__LINUX_ALSA__ -DCPP_MEMORY -D_NO_JACK_

Expand Down
34 changes: 34 additions & 0 deletions projects/Makefile.BITTBOY
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-include $(PWD)/rules_base
STRIP = $(CROSS_COMPILE)strip

%.elf: $(OFILES)
$(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
@$(STRIP) $@

DEVKIT=/opt/arm-buildroot-linux-musleabi_sdk-buildroot
CROSS_COMPILE=$(DEVKIT)/bin/arm-buildroot-linux-musleabi-

CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
SYSROOT := $(shell $(CROSS_COMPILE)gcc --print-sysroot)
SDL_CFLAGS := $(shell $(SYSROOT)/usr/bin/sdl-config --cflags)
SDL_LIBS := $(shell $(SYSROOT)/usr/bin/sdl-config --libs)

DEFINES = -DHAVE_STDINT_H -D_NDEBUG -D_NO_JACK_ -I$(PWD)/../sources -D__LINUX_ALSA__ -DCPP_MEMORY $(SDL_CFLAGS) $(SDL_LIBS) -DBUFFERED
INCLUDES = -Iinclude $(SDL_CFLAGS)
OPT_FLAGS = -O3 -Ofast

OUTPUT = ../lgpt-bittboy

TOOLPATH=$(DEVKIT)/usr/bin
PREFIX := arm-linux-
SDL_BASE = $(DEVKIT)/arm-buildroot-linux-musleabi/sysroot/usr/bin/

CFLAGS := $(DEFINES) $(INCLUDES) $(OPT_FLAGS) -Wall -DRS97

CXXFLAGS:= $(CFLAGS) -std=gnu++03

EXTENSION:= elf

LIBS := -lSDL -lSDL_mixer -lasound -lpthread
LIBDIRS := $(DEKVIT)/usr/lib
12 changes: 7 additions & 5 deletions projects/Makefile.CAANOO
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
-include $(PWD)/rules_base

STRIP = arm-gph-linux-gnueabi-strip

%.gpe: $(OFILES)
$(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
@$(STRIP) $@

DEVKITARM=/home/nostromo/caanoodev/gcc-4.2.4-glibc-2.7-eabi/

PREFIX := arm-gph-linux-gnueabi-

include $(PWD)/caanoo_rules

CFLAGS := -O3 -DNDEBUG -Wall -DCPP_MEMORY -DPLATFORM_$(PLATFORM) -I$(PWD)/../sources -D__LINUX_OSS__
#CFLAGS := -g -D_DEBUG -Wall -DCPP_MEMORY -DPLATFORM_$(PLATFORM) -I$(PWD)/../sources -D__LINUX_OSS__

CXXFLAGS:= $(CFLAGS)

EXTENSION:= gpe

LIBS := -L/c/GPH_SDK/tools/cross-eabi/arm-gph-linux-gnueabi/sys-root/ -L/c/GPH_SDK/tools/cross-eabi/arm-gph-linux-gnueabi/sys-root/lib -L/c/GPH_SDK/tools/cross-eabi/arm-gph-linux-gnueabi/sys-root/usr/lib -lSDL
#-lpthread


LIBDIRS := $(DEKVITARM)/lib
19 changes: 10 additions & 9 deletions projects/Makefile.DEB
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
-include $(PWD)/rules_base
LDFLAGS := -m32

include $(PWD)/deb_rules

CFLAGS := -O3 -DCPP_MEMORY -Wall -I/usr/local/include -I$(PWD)/../sources -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ -D_DEBUG
#CFLAGS := -g -DCPP_MEMORY -Wall -I/usr/local/include -I$(PWD)/../sources -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__


CXXFLAGS:= $(CFLAGS)

EXTENSION:= deb-exe
%.deb-exe: $(OFILES)
$(CXX) $(LDFLAGS) $@ $(OFILES) $(LIBS)

CFLAGS := -m32 -O3 -DCPP_MEMORY -Wall -I/usr/local/include -I$(PWD)/../sources -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ -D_DEBUG
LIBS := -O3 -L/local/lib -Wl,-rpath,/usr/local/lib -lasound -lSDL -ljack -lpthread

#For debugging
#LIBS := -g -L/local/lib -Wl,-rpath,/usr/local/lib -lasound -lSDL -ljack -lpthread
#CFLAGS := -g -m32 -DCPP_MEMORY -Wall -I/usr/local/include -I$(PWD)/../sources -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__

CXXFLAGS:= $(CFLAGS)
EXTENSION:= deb-exe
8 changes: 6 additions & 2 deletions projects/Makefile.DINGOO
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
-include $(PWD)/rules_base
STRIP = ls

%.dge: $(OFILES)
$(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
@$(STRIP) $@

DEVKIT=/opt/mipsel-linux-uclibc

TOOLPATH=$(DEVKIT)/usr/bin
PREFIX := mipsel-linux-
SDL_BASE = /opt/mipsel-linux-uclibc/usr/bin/

include $(PWD)/dingoo_rules

CFLAGS := `$(SDL_BASE)sdl-config --cflags` -O3 -D_DEBUG -Wall -DPLATFORM_$(PLATFORM) -I$(PWD)/../sources -D__LINUX_ALSA__ -DCPP_MEMORY

CXXFLAGS:= $(CFLAGS)
Expand Down
Loading

0 comments on commit 32eabdd

Please sign in to comment.