Prepare for open-source release under GPL-3.0-or-later; docs & test maintenance

- Add GPL-3.0 LICENSE and SPDX headers (GPL-3.0-or-later) to every source file
  (58 Kotlin, the C++ file, and the sample-pack HTML tool).
- README: state the GPL-3.0-or-later license (+ badge); fix stale "256 beats"
  -> "256 bars"; fix build instructions (the Gradle wrapper is committed);
  mention master recording and the sample-pack tool.
- DEVELOPER_HANDOVER: resync with the codebase — corrected the wrapper note,
  architecture diagram, full file map, the add-instrument/effect guide, Oboe
  (now default with fallback, not an opt-in toggle), moved SF2/XI to implemented,
  and added recently shipped features with an honest remaining/optional list.
- Fix a pre-existing broken unit test: SngFormatTest called the old
  SngFormat.import(text); the API is importInto(project, text). Tests compile
  and pass again.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Reactorcoremeltdown
2026-07-17 09:47:29 +02:00
co-authored by Claude Opus 4.8
parent 3df4bb645a
commit a5fdc7b6c4
63 changed files with 955 additions and 42 deletions
+3
View File
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
// Native Oboe (AAudio) output backend for Sizzletracker.
//
// Opens a low-latency mono float Oboe output stream. On each real-time data
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker
import android.Manifest
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker
import android.app.Application
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import com.reactorcoremeltdown.sizzletracker.model.AmbiencePresets
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import android.media.AudioAttributes
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import com.reactorcoremeltdown.sizzletracker.model.DelayDivisions
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import java.io.File
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import android.annotation.SuppressLint
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import java.nio.ByteBuffer
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import kotlin.math.exp
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
import java.nio.ByteBuffer
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.audio
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
import android.content.Context
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
import android.view.InputDevice
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
import android.view.KeyEvent
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.input
import android.content.Context
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.model.ToolboxSlot
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.audio.SampleStore
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.model.Cell
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.model.Project
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import android.content.Context
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.model.Arrangement
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import java.io.File
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import androidx.compose.ui.graphics.Color
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.io
import com.reactorcoremeltdown.sizzletracker.ui.theme.RetroPalette
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.model
/**
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.playback
import android.os.Looper
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.playback
import android.content.Context
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui
import androidx.activity.compose.BackHandler
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui
import androidx.compose.runtime.getValue
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui
import android.content.res.Configuration
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui
import androidx.compose.foundation.background
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.components
import androidx.compose.ui.text.TextLayoutResult
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.components
import androidx.compose.foundation.background
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.components
import androidx.compose.foundation.background
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.mixer
import androidx.activity.compose.rememberLauncherForActivityResult
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.settings
import android.content.Context
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.theme
import android.app.Activity
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import androidx.compose.foundation.Canvas
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import androidx.compose.foundation.layout.Arrangement
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import androidx.compose.foundation.layout.Column
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import androidx.activity.compose.rememberLauncherForActivityResult
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import androidx.activity.compose.rememberLauncherForActivityResult
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.toolbox
import android.content.Intent
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.tracker
import androidx.compose.foundation.Canvas
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.tracker
import androidx.compose.foundation.Canvas
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later
package com.reactorcoremeltdown.sizzletracker.ui.tracker
import androidx.compose.foundation.background