Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 22 additions & 14 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
1.6.0-bacon0
Contributions:
drbscl
Add 64 bit soundfont support (#211)

Fixes:
Add 64 bit soundfont support (#211)

1.5.0-bacon3
Contributions:
purelygrey
Expand All @@ -15,9 +23,9 @@
* instrumentation by clsource

simotek
Add color options for Border Play and Mute (#143)
Add color options for Border Play and Mute (#143)
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, my editor's autoformatting has gone a bit aggressive, sorry about that. I can revert if you need me to.

* Adds different color for the > play and _ mute indicators
Fix rg35xx mapping (#139)
Fix rg35xx mapping (#139)
* rshoulder and lshoulder were the wrong way

kompadre
Expand All @@ -40,7 +48,7 @@
Nudge functionality (#130)
* In Project view, select tempo and hold B+LEFT/RIGHT to nudge slower/faster
* In Song view, pressing LT+LEFT/RIGHT will do the same

Printable fx in InstrumentView (#155)
* Uses ffmpeg to print reverb to currently selected sample
* New sample with fx is created and assigned to the current instrument
Expand All @@ -63,7 +71,7 @@
Set songview b jumping length to 16 rows in correspondence with LSDJ and M8
Scales no longer affect instrument numbers ([djdiskmachine/LittleGPTracker#172](https://github.com/djdiskmachine/LittleGPTracker/issues/172))
Bug in Variable:SetString [djdiskmachine/LittleGPTracker#169](https://github.com/djdiskmachine/LittleGPTracker/issues/169)

Issue in deep clone (#135)
Was possible to accidentally deep clone position into another position

Expand Down Expand Up @@ -108,27 +116,27 @@
Fixes:
RG35XX no longer segfaults on boot
USB MIDI disabled due to missing OS dependencies

1.4.0
Adds:
Automated build for bittboy, Win32, PSP, Miyoo, Deb32, RG35XX
Shoutout to xquader for the initial RG35XX port (https://boosty.to/xquader)
License changed from CC-BY-SA-NC to GPL-3

* MVEL cmd
* MVEL cmd
Set step velocity for MIDI instruments
https://github.com/democloid/picoTracker/pull/163

Author: @maks@fluttercommunity.social
Co-authored-by: djdiskmachine <djdiskmachine@proton.me>

* Config option to set major beat color in phrase screen

Author: koisignal <koitokakitsubata@gmail.com>

* Deep clone
Clones selected chain and the phrases within

Author: koisignal <koitokakitsubata@gmail.com>
Co-authored-by: djdiskmachine <djdiskmachine@proton.me>

Expand Down Expand Up @@ -190,29 +198,29 @@

1.3o-beta-1
Pingpong loop now stable
Courtesy of djdiskmachine
Courtesy of djdiskmachine

Add ability to change font
USAGE: ./mkfont.py FONT_BMP [OUTPUT_FILE]
FONT_BMP must be a black/white (#000000, #FFFFFF) 128x64px bmp
if OUTPUT_FILE is omitted, will print to stdout
Courtesy of subnixr
Courtesy of subnixr

Adds Miyoo mini build
Courtesy of Nine-H

Changes filter attenuation to attenuation
Adjust volume post scream filter
Adjust volume post scream filter
https://github.com/Mdashdotdashn/LittleGPTracker/issues/22

Missing wiki content dumped to repo
Courtesy of Peter Swimm
Courtesy of Peter Swimm

1.3o-alpha-5
Adds native SteamOS build
Adds Bittboy/RS97/RG350 builds
Merge of Gameblaba, CalebCDE and RafaVicos work
Shoutouts!
Shoutouts!
1.3o-alpha-4
Adds Save As menu item - save a copy of your project with a new name
Courtesy of yoyz (https://github.com/yoyz), biggup!
Expand Down
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ Recommended reading to get you started:
|-------------|---------------|--------------|------------|--------------------------------------|
| PSP | NO | NO | YES | [See notes](projects/resources/PSP/INSTALL_HOW_TO.txt) |
| DEB | YES | YES | YES | |
| X64 | YES | YES | NO | |
| X64 | YES | YES | MAYBE | |
| X86 | YES | YES | YES | |
| STEAM | YES | YES | NO | |
| STEAM | YES | YES | MAYBE | |
| MIYOO | NO | NO | YES | Port by [Nine-H](https://ninethehacker.xyz) |
| W32 | YES | YES | YES | Built in VS2008 with love |
| RASPI | YES | YES | YES | Versatile platform |
Expand All @@ -55,10 +55,8 @@ Recommended reading to get you started:
| GARLIC | MAYBE | NO | YES | Port by [Simotek](http://simotek.net)|
| GARLICPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net)|
| RG35XXPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net)|
| MACOS | YES | YES | NO | Port by [clsource](https://genserver.social/clsource) |
| MACOS | YES | YES | MAYBE | Port by [clsource](https://genserver.social/clsource) |


* **Soundfont library is currently not ported for 64bit OS**
* **MIDI functionality __greatly__ depends on kernel support, please feature request your favourite OS maintainer =)**
* **Install ffmpeg by following install instructions for your platform [here](https://www.ffmpeg.org/download.html)**
* **PrintFX requires full ffmpeg. If marked as TBA, it requires a redesign using [libav](https://trac.ffmpeg.org/wiki/Using%20libav*)**
15 changes: 4 additions & 11 deletions sources/Application/Instruments/SoundFontManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
#include "System/System/System.h"
#include "System/FileSystem/FileSystem.h"

#ifdef _64BIT
#include <stdint.h>
#endif

SoundFontManager::SoundFontManager() {
} ;

Expand Down Expand Up @@ -66,14 +62,11 @@ sfBankID SoundFontManager::LoadBank(const char *path) {
current.dwEnd=(current.dwEnd-current.dwStart) ;
current.dwStartloop=(current.dwStartloop-current.dwStart) ;
current.dwEndloop=(current.dwEndloop-current.dwStart) ;
#ifdef _64BIT
current.dwStart=(intptr_t)buffer ;
#else
current.dwStart=(DWORD)buffer ;
#endif
// ADDR is pointer-sized, works on both 32-bit and 64-bit
current.dwStart = (ADDR)buffer;

sampleData_.push_back(buffer) ;
}
sampleData_.push_back(buffer);
}
fin->Close() ;
SAFE_DELETE(fin) ;

Expand Down
7 changes: 3 additions & 4 deletions sources/Application/Model/Project.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
#define VAR_SCALE MAKE_FOURCC('S', 'C', 'A', 'L')

#define PROJECT_NUMBER "1"
#define PROJECT_RELEASE "5"
#define BUILD_COUNT "0"
#define PROJECT_RELEASE "6"
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, I'm happy to change to indicate it's RC

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, let's go for 1.6.0-bacon0 💪🥳

#define BUILD_COUNT "0-bacon0"

#define MAX_TAP 3

Expand Down Expand Up @@ -63,8 +63,7 @@ class Project: public Persistent,public VariableContainer,I_Observer {
int midiDeviceListSize_ ;
int tempoNudge_ ;
unsigned long lastTap_[MAX_TAP] ;
unsigned int tempoTapCount_ ;
unsigned int tempoTapCount_;
} ;

#endif

156 changes: 84 additions & 72 deletions sources/Externals/Soundfont/DATATYPE.H
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,25 @@

#include <limits.h>

#if defined(_MSC_VER) && _MSC_VER < 1600
/* Workaround for MSVC 2008 and earlier */
typedef signed __int32 int32_t;
typedef unsigned __int32 uint32_t;
#ifdef _WIN64
typedef unsigned __int64 uintptr_t;
#else
typedef unsigned __int32 uintptr_t;
#endif
#else
#include <stdint.h>
#endif

/************
* Defines
************/
/************
* Defines
************/

#ifndef __BYTE_INCOHERENT /* Big Endian (IE 680x0) */
#define __BYTE_COHERENT /* Little Endian (IE 80x86) */
#ifndef __BYTE_INCOHERENT /* Big Endian (IE 680x0) */
#define __BYTE_COHERENT /* Little Endian (IE 80x86) */
#endif

#ifdef _UNIX_STUB_
Expand All @@ -51,90 +63,92 @@
#endif

#ifdef EMU_WINDOWS
#include <windows.h>
#include <windows.h>
#else
#define _export
#define _export
#endif

/* Expected data values */
#define CHAR_MINVAL -127
#define CHAR_MAXVAL 127
#define BYTE_MAXVAL 255
#define SHRT_MINVAL -32767
#define SHRT_MAXVAL 32767
#define LONG_MINVAL -2147483647L
#define LONG_MAXVAL 2147483647L
#define DWORD_MAXVAL 4294967295L
/* Expected data values */
#define CHAR_MINVAL -127
#define CHAR_MAXVAL 127
#define BYTE_MAXVAL 255
#define SHRT_MINVAL -32767
#define SHRT_MAXVAL 32767
#define LONG_MINVAL -2147483647L
#define LONG_MAXVAL 2147483647L
#define DWORD_MAXVAL 4294967295L

#ifndef FALSE
#define FALSE 0
#define FALSE 0
#endif

#ifndef TRUE
#define TRUE 1
#define TRUE 1
#endif

#ifndef EMU_WINDOWS // windows.h defines these already
// #define LOBYTE(x) ((x) & 0x00FF)
// #define HIBYTE(x) (((x) & 0xFF00) >> 8)
// #define LOBYTE(x) ((x) & 0x00FF)
// #define HIBYTE(x) (((x) & 0xFF00) >> 8)
#endif

/*************
* Typedefs
*************/

/*************
* Typedefs
*************/

typedef char CHAR; /* 8 bit signed value */
typedef short SHORT; /* 16 bit signed value was: INT */
typedef char CHAR; /* 8 bit signed value */
typedef short SHORT; /* 16 bit signed value was: INT */

#ifdef EMU_WINDOWS
/*****************************************************************
* These idiosyncratic pointer definitions for memory allocations
* which are greater than 64K and are Intel-centric compiling
* environment necessities, at least for Windows environments.
* Perhaps, however, Windows NT will eliminate the 'huge' keyword
* requirement altogether.
*****************************************************************/
typedef BYTE huge* BYTEPTR;
typedef WORD huge* UINTPTR;
typedef DWORD huge* DWORDPTR;
typedef void huge* VOIDPTR;
/*****************************************************************
* These idiosyncratic pointer definitions for memory allocations
* which are greater than 64K and are Intel-centric compiling
* environment necessities, at least for Windows environments.
* Perhaps, however, Windows NT will eliminate the 'huge' keyword
* requirement altogether.
*****************************************************************/
typedef BYTE huge *BYTEPTR;
typedef WORD huge *UINTPTR;
typedef DWORD huge *DWORDPTR;
typedef void huge *VOIDPTR;
/* Pointer-sized type for runtime memory addresses (32 or 64-bit) */
typedef uintptr_t ADDR;
#else
typedef unsigned char BYTE; /* 8 bit unsigned value */
typedef unsigned char BYTE; /* 8 bit unsigned value */
#ifndef BOOL
typedef int BOOL; /* 16 bit signed value */
typedef int BOOL; /* 16 bit signed value */
#endif
typedef unsigned short WORD; /* 16 bit signed value */
typedef signed long LONG; /* 32 bit signed value */
typedef unsigned long DWORD; /* 32 bit unsigned value */
typedef float FLOAT; /* 32 bit floating point value */
typedef double DOUBLE; /* 64 bit floating point value */
typedef long double LDOUBLE; /* 80 bit floating point value */

typedef BYTE* BYTEPTR;
typedef WORD* UINTPTR;
typedef DWORD* DWORDPTR;
typedef void* VOIDPTR;
typedef unsigned short WORD; /* 16 bit unsigned value */
typedef int32_t LONG; /* 32 bit signed value (fixed-size) */
typedef uint32_t DWORD; /* 32 bit unsigned value (fixed-size) */
typedef float FLOAT; /* 32 bit floating point value */
typedef double DOUBLE; /* 64 bit floating point value */
typedef long double LDOUBLE; /* 80 bit floating point value */

/* Pointer-sized type for runtime memory addresses (32 or 64-bit) */
typedef uintptr_t ADDR;

typedef BYTE *BYTEPTR;
typedef WORD *UINTPTR;
typedef DWORD *DWORDPTR;
typedef void *VOIDPTR;
#endif /* EMU_WINDOWS */

/********************************************************************
* This 16 bit unsigned value is used for routines which return
* standard E-mu error codes (see emuerrs.h)
********************************************************************/
typedef unsigned short EMUSTAT;
/********************************************************************
* This 16 bit unsigned value is used for routines which return
* standard E-mu error codes (see emuerrs.h)
********************************************************************/
typedef unsigned short EMUSTAT;

#ifdef __BYTE_COHERENT
/********************************************************************
* Convenient union datatypes to use for byte swapping or extracting
* bytes and/or shorts within a short or long value without using
* bit shifting.
********************************************************************/
typedef struct twoBytesTag
{
BYTE by0;
BYTE by1;
} twoBytes;

/********************************************************************
* Convenient union datatypes to use for byte swapping or extracting
* bytes and/or shorts within a short or long value without using
* bit shifting.
********************************************************************/
typedef struct twoBytesTag {
BYTE by0;
BYTE by1;
} twoBytes;

typedef struct fourBytesTag
{
Expand All @@ -153,12 +167,10 @@ typedef struct twoWordsTag

#elif defined(__BYTE_INCOHERENT)

typedef struct twoBytesTag
{
BYTE by1;
BYTE by0;
} twoBytes;

typedef struct twoBytesTag {
BYTE by1;
BYTE by0;
} twoBytes;

typedef struct fourBytesTag
{
Expand Down
Loading