Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/burgerindividual/recordable
A Minecraft mod that allows recording and playback custom records.
https://github.com/burgerindividual/recordable
fabric-mod minecraft minecraft-mod
Last synced: 6 days ago
JSON representation
A Minecraft mod that allows recording and playback custom records.
- Host: GitHub
- URL: https://github.com/burgerindividual/recordable
- Owner: burgerindividual
- License: mit
- Created: 2022-03-13T13:54:01.000Z (over 2 years ago)
- Default Branch: 1.18.x/main
- Last Pushed: 2022-05-22T16:26:34.000Z (over 2 years ago)
- Last Synced: 2023-04-28T14:38:25.153Z (over 1 year ago)
- Topics: fabric-mod, minecraft, minecraft-mod
- Language: Java
- Homepage:
- Size: 617 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Recordable
An optimized quilt mod for 1.18.x which adds user-recordable music discs with no external setup or file management.
User recordable disks are made out of copper, and are written to directly via a Recorder. A custom Record Player block is used to play them, but support for the original Jukebox may be added at some point.
There are more ideas and thoughts in [the planning file](https://github.com/burgerguy/recordable/blob/1.18/planning.txt).
## Technical Stuff
On the server, Recorders are registered which collect all sounds broadcased nearby. The recorded sounds, their volumes, and the ticks they were played on are all formatted in a custom binary format to take up the least space, and the entries are stored in a LMDB database on the server.Each "score" (fancy musical term for a list of notes) has its own ID represented as a long, and each Copper Record that isn't blank will have one of these in its NBT.
The server has Broadcasters, which will strategically send out play packets to nearby players, allowing the client to take most of the control in the actual playing process, avoiding potential lag. If a client doesn't have the score data for a particular score ID when requested, it can follow up with the server to query its database, and then send back to the client so it can keep it in its cache.
The client also has Players, which play back the scores locally in the correct positions in relation to the position to keep playback smooth and accurate.
## Setup
(TODO)