forked from Halcyoninae/Halcyon_v2
-
Notifications
You must be signed in to change notification settings - Fork 0
Simple Audio Player for desktop with a nice UI
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE.md
Unknown
LICENSE.txt
B33F70C8E8/halcyon
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
====== Halcyon Music Player ====== A simplistic robust music player, with full feature transparency. ================================== This repository contains the source code for the Halcyon Music Player. Copyright(C)Jack Meng 2021 Licensed under the following: 1. Source Code: GPL OR Vendor 2. EULA & Binaries: VENDOR (See section "Legals" for more info). ---------------------------------- [?] Table of Contents > Version Info Basic Description Extern. Legals Q&A Building Release & Download Package Layout MISC Sys. Requirements < ---------------------------------- [!] Version Info Note: Check /root/VERSION for the absolute version info history. Current Version: 3.3 Current Iteration: 3.0 Current Build Meta: Beta Version Logic: > For each +1 in current version the iteration will go up by 0.1 ---------------------------------- [!] Basic Description Halcyon is a music player designed with the following aspects in mind: 1. Simplicity for the user 2. Absolute Optimizations 3. Maximum User Control of Flow 4. Easy API (if to be used as a library) 5. A no cluster user interface This is technically a third iteration of an original project titled MP4J. I ended the original because of the sheer complexity and noodle code that I wrote. Currently the program supports: 1. MP3 2. WAV 3. AIFF & AIFC* (partially tested) 4. OGG (Vorbis, FLAC, Opus) Hopefully to support: 1. AU 2. MP2 (Partial support) 3. AAC 4. USAC Memory usage usually hovers at around 30-50 mB of memory usage no matter the file being played back. This is according to Java Mission Control, which may differ from the actual committed Java Heap which is allocated to the individual Java Processes. The program will allow for multiple audio API integrations. By default, the program must support the standard Java Sound abstraction (Tailwind) along with the Tritonus Open Java Sound API. The JavaFX media platform shall only be required if the "com.sun.media" package is present. Along with everything else, the program features its own image manipulation library, filesystem API, and custom GUI components that can be used. ---------------------------------- [!] Extern. The term extern here is to denote "external"; or anything foreign. The minimization of third party libraries is a must so that users can have as much of the original code as possible without secondary licenses. The only main reason things like a Discord RPC and the FlatLaf Laf are bundled with the program is because they do not interfere with audio playback. This is unlike using someone else's audio library for audio playback. Currently there are a few 3rd party libraries that I will try and minimize the usage of and fully find alternatives and adopt them. ---------------------------------- [!] Legals Legals refer to licensing of this software and all other third party libraries and software that are bundled with it. This program's source code is provided under: Standard GPL2.0 (WITHOUT CLASSPATH EXCEPTION) However, if you are to distribute any pre-built binaries of any kind are subject to the standard: VENDOR_LICENSE. > See File: VENDOR_LICENSE The software's own license can be viewed from the file: 1. LICENSE.md Licenses for any third parties: 1. LICENSE.txt Standard Vendor Licensing: 1. VENDOR_LICENSE ---------------------------------- [!] Q&A 1. Why Java? > This was more of a first hand experience with Java, before I started learning it in school (previous MP4J prj). > It also challenged me for stronger methods of optimization methods, instead of using something like Object Pascal, C#, C/C++, or JavaScript/TypeScript. > Although I knew how to create apps and audio playback in C & C++, it felt like bigger fun to do it in Java ;) 2. Why not JavaFX? > In the section "Extern.", I clearly state that I want to minimize the usage of third party libraries for as much as possible. > JavaFX would not improve any form of making this program faster. It only simplifies the process of creating graphical items using HTML/CSS. ---------------------------------- [!] Building Note: Binary released built by the original author is licensed under the default Yttrium License. Pre-req: This program was tested on Window10+11 & Linux (515) with zero to minimal faults. Default testing kit: > JavaJDK -> 11+ > JavaJRE -> 11+ > JavaFX -> 12+ The code struct tree: (src/com/jackmeng/halcyon/...) src -> Source Root com jackmeng/halcyoninae halcyon Halcyon.java -> Main() ---------------------------------- [!] Release & Download Releases are provided under the releases tab in this repository. All releases & provided downloads are provided by the following official vendor(s): 1. Jack Meng 2. Halcyoninae 3. Yttrium Terminus NOTE: Any downloads and releases under any circumstances, whether it just be reuploaded are not considered official vendors. Official releases are only provided and signed by the above vendors. Use extern. vendors with caution All builds are designed to be an archive file which will each contain their respective usage README (based on their version). Release Exec Types: 1. General Archive Bundle -ZIP -Tarball 2. Specifc Platform PKG -RPM -MSI -EXE 3. Specific Platform Exec. Dev. Release Exec Types: 1. General Archive Bundle -Tarball -Contains archives: -Documetnation -Raw Executables -Sampling Piece -Malimbica API The dev release exec provides the end-user with easier control over the specific internals of the program and are not made for the average end-user. NOTE: Downloading a FAT-JAR can have extended setup requirements, as there might be specific platform dependent pkgs that are required. ---------------------------------- [!] Package Layout Source Root Locale: /src/ Source Tree: com/ halcyoninae/ halcyon/... cloudspin/... tailwind/... cosmos/... setup/... Halcyon -> Default Running Package - Features the default backend utils for the program CloudSpin -> Graphics Manipulation - Features default libraries related to graphics, like image manipulation. Cosmos -> GUI Components - The first half of the program, which is the GUI user interface. Tailwind -> Audio Processors - Features the audio playback library. This is the second half of the program. Setup -> General runner that is called to perform a setup routine - First that runs to make sure every required pkg is present ---------------------------------- [!] MISC You can view the JavaDocs here: halcyoninae.github.io/halcyon You can read more about submitting a FEATURE request or a bug report, here: /root/External/README Note: This is WIP ---------------------------------- [!] Sys. Requirements Note: This is not final. -> The JVM memory differs from the actual memory b/c it allocates a certain amount to itself. Check with your RE vendor with specifics JVM: Check with your vendor Minimum-Version: 9 Sys.: Minimum-Program-Memory: N/A CPU: 32bit / 64bit GPU: Any OS: Win32,MacOS,Linux ================================== Made by Jack Meng :) ==================================
About
Simple Audio Player for desktop with a nice UI
Resources
License
Unknown, Unknown licenses found
Licenses found
Unknown
LICENSE.md
Unknown
LICENSE.txt
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Java 99.5%
- Other 0.5%