Git Product home page Git Product logo

yoyofr / modizer Goto Github PK

View Code? Open in Web Editor NEW
132.0 132.0 45.0 608.33 MB

iOS chiptune/module player

Home Page: http://yoyofr.blogspot.com/p/modizer.html

C 63.44% C++ 20.72% Shell 2.46% Objective-C 1.61% Makefile 5.59% Python 0.13% JavaScript 0.20% Lua 0.11% Perl 0.01% Tcl 0.03% Emacs Lisp 0.02% Objective-C++ 2.75% Fortran 0.15% Ruby 0.01% Awk 0.02% HTML 0.43% C# 0.21% Assembly 1.99% TeX 0.02% Batchfile 0.12%

modizer's People

Contributors

mistydemeo avatar sappharad avatar yoshisuga avatar yoyofr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modizer's Issues

iPhone 6 and 6 Plus

I've just forked the latest and committed some really rough (bad) changes that add iPhone 6 support, in case you're interested. I didn't submit a pull request because I'm not sure if you'd want these changes, since some of it was just me fixing compiler errors until the code would build again.
Sappharad@b7649d2
(Either way, you probably won't want the splash screen, since I just let Pixelmator's healing tool fill in the missing area for the extra resolution. It looks decent actually, but it's obvious that the squares pattern doesn't match)

Xcode 6 has a bunch of problems building the current code out of the box. What I ended up doing to get it to build (but didn't include in my check-in because I don't like it and I'm not convinced it was necessary to do) was removing the embedded projects like libgme, libmodplug, etc, and building them separately and including the .a files in the main project instead of sub-projects. Otherwise Xcode 6 seemed to freeze when trying to compile with no errors listed. There was probably a better solution but I was just looking for a quick fix for the zoomed UI.

Anyway, I'm opening this issue for you to add support officially. :-)

USF Tempo Issues

Hey, I've noticed that certain game tunes from the Nintendo 64 play absurdly fast when played in your app. Examples of soundtracks include this Super Mario 64
Rerip.

Another USF Tempo Issue

First of all, many thanks for solving the infinity loop problem. Now I can insert many more soundtracks without any issues.

About my problem, I noticed certain USF sets are no longer being played at a crazy speed, but now I believe they are being played a bit too slowly. Track rerips like the ones for Super Mario 64 and Mario Kart 64 now play with the slower tempo much like their initial versions. They seem to work perfectly when played in Foobar with the USF Decoder component. So what's going on here?

Pseudo Stereo for sidplayfp

This means that one has the option of setting up 2SID 'support' despite the song itself only having one SID chip, much in the same vein as the respective in_sidplay Winamp plugin

It offers to change the chip model for the two chips

Question: sexypsf?

Out of curiosity, why is sexypsf being used instead of AOSDK for PSF? Is it faster?

VGMStream Issue

I Tried to Play Those Format with New 2.9.4, It Not Working:
.at3
.at9
.xma
.xwb
.msf (Under Defeat HD PS3 MSF)
and Also VGMStream Looping Option Not Working as Well.(Song starts Less 1 Sec, and Force Repeat)
and Modizer UTF-8 Non-English Strings Seems not Working(all of strings crash)

Modizer being unable to play FM instruments in S3M/MPTM modules

First off, I love this app, it is my go to for anything chiptune when I'm out.

One issue however is the lack of the player being unable to play S3M/MPTM files with OPL instruments (I assume this is due to libopenmpt not being updated to reflect this), which results in the instruments attempted to be played as samples, when they aren't, causing odd blips to be heard during playback

Update plugins/libraries used

As was mentioned in #42 about the USF issue (and because I saw libsidplayfp update to 2.1.1 yesterday or so), it might be a good idea to update the libraries used to mitigate any issues the current versions could have.

Option for fadeout times

For vgmstream-supported files, I strongly suggest having an option to choose the fadeout time because whenever I have the infinite loop disabled, every song just abruptly stops at the end.

Broken Playlists

6142B43B-A771-42FA-A28A-966766E90F0D

Playlists currently have multiple issues.

  1. Playlist items randomly duplicate when playing playlists, quitting, shuffling playlists or refreshing the app.

  2. The “Shuffle & Play” function takes several minutes for large playlists (20+ items) and crashes on extremely large playlists (100+ items).

  3. Playlist items can only be removed one at a time from the playlist viewer, and there is a delay caused by deleting each one that seemingly increases proportionally to the number of items in the playlist, up to several seconds. This makes manually deleting duplicates created by issue 1 tedious and difficult.

I really like this app, it’s basically the only music app I use but playlists have had this issue for years now, including multiple updates, without a fix. I hope you read this and make it a priority to rectify these issues.

Settings are sometimes reset

Sometimes, when I open Modizer, I discover that all of the settings have returned to the defaults. I can't figure out what circumstances are causing this, except that it happens after Modizer has been closed for awhile. When this happens, I'm never given the "Modizer crashed, do you want to reset your settings?" prompt - it simply opens with the default settings.

Building fails using existing library search paths

Hi there! I'm trying to build the latest modizer code (downloaded 2016-12-10) and get the following linker errors based on what paths are already in the Search Paths -> Library Search Paths setting for the project (/Users/lux/dev/app-dev/ is where I put the unzipped modizer-master):

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/libgsf-binfcpiwhuepmgcxhjvwsfpwozex/Build/Products/Debug-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/libgsf-binfcpiwhuepmgcxhjvwsfpwozex/Build/Products/Release-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/modizer-ewutdrprzhzobpehilyynkpuyhkd/Build/Products/Release-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/timidity-bpysqhjfftpcwddzpyetxenbgpde/Build/Products/Release-iphonesimulator'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/timidity-bpysqhjfftpcwddzpyetxenbgpde/Build/Products/Debug-iphonesimulator'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/timidity-bpysqhjfftpcwddzpyetxenbgpde/Build/Products/Debug-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/libgme-atjusmvlwaaasocyozwfnmzcavmb/Build/Products/Release-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../Library/Developer/Xcode/DerivedData/modizer-ewutdrprzhzobpehilyynkpuyhkd/Build/Products/Debug-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../../Library/Developer/Xcode/DerivedData/modizerws-djikcqenfakshqfxajwtzatnvpau/Build/Products/Release-iphoneos'

(null): Directory not found for option '-L/Users/lux/dev/app-dev/modizer-master/modizer/../../../../../Library/Developer/Xcode/DerivedData/modizerws-djikcqenfakshqfxajwtzatnvpau/Build/Products/Debug-iphoneos'

It also gives a "duplicate symbols" warning for various libvgmplay functions (likely because vgmplay and gme implement the same chips) and over 1300 warnings regarding implicit conversions, unused variables, etc.

I've tried building both Debug and Release, as well as changing profile from iPhone 6 (8.1) to iPhone 5s (8.1) or Resizable iPhone (8.1) because I only have a 5s.

MacBook Air 11" mid-2013 running Mavericks 10.9.5, XCode 6.2

Distorted sound output from PMDMini(May be frequency related)

PMD tracks sound distorted, and said distortion sounds very similar to hoot's when the frequency isn't set to the one the PC98's sound cards natively output at, 55.5khz(55,466.66666666667 to be exact but either 55466 or 55467 work for hoot). Hope you can look into this. Thanks.

GSF Looping And Some GSF Problem

  1. All the GSF File (GBA CHIPTUNE) can't loop infinity. what's the problem?
  2. Specific GSF File(example a link to the past on zophar) Can't Play. it has error mean "MISSING GSFLIB" But i can play SAME GSF FILE on highly advance 0.11 version. what's the problem?

OpenMPT resampler

The OpenMPT resampler option won't apply on first play, i.e. I selected to use "Near" though when restarting the app, it will play in Linear mode instead of what I wanted, to fix this one has to restart the song

Bump AdPlug dependency to latest version

The version of AdPlug used by Modizer is 2.2, which is over 8 years old. Support for several new formats has been added since then, as detailed in the NEWS file.

Note that in the latest version of AdPlug (currently 2.3.2) there are now two music formats that use the CMF file extension (Creative Music File Format by Creative Technology and SoundFX Macs Opera tracker by Linel).

Including libgsf in an iOS App

First things first, I am not reporting an issue here. :)

I am working on an iOS app in which I am required to read MSG files and display them within my app. Quick search on the Internet suggested that using libgsf can have it done for me, however, I am unable to find any valid pointers as how I can include libgsf in my app and then how I can use it to read files.

Do you have some sort of a how-to or some sample code which can help me with that?

Please let me know at the earliest convenience as I am on a very tight deadline.

Thanks in advance.

any plan to support these extensions?

I always thanks for you support new vgm and streamed vgms. and I hope some update for these extension support.

.at3 (Playstation Portable, Playstaion 3 VGM)
.at9 (Playstation Vita, Playstation 4 VGM)
.xma, .xwma (XBOX 360 Generic VGM)
.wsr (Wonderswan VGM)

wsr has own plugin. at9 uses newest version of VGMStream.

additional problem - if I turn on Endless Loop, VGMs use VGMStream don't play normally. only solution is turn off that.

Edit
Good news. at9 Finally playable in VGMSTREAM. at3, at9, xma are using newest vgmstream.

HVSC content missing

I just did a fresh install of Modizer v2.9 from the App Store on my iPhone 8 Plus and opened the application. I then tried to search for "salmon" to get to /MUSICIANS/B/Blues_Muz/Gallefoss_Glenn/Curved_Salmon.sid. However the search returns zero results (yes, "HVSC" was selected in the list of search providers). I then browsed the HVSC collection in the app to /MUSICIANS/B/Blues_Muz/Gallefoss_Glenn/ but the song Curved_Salmon.sid is not there.

Is this because Modizer and HVSC is not in sync? I read at https://itunes.apple.com/us/app/modizer/id393964792?mt=8 that "HVSC updated to #68 and mirrors updated" but I still can't find the same content on Modizer and HVSC #68.

Can I somehow force a mirror refresh in the app or am I doing something completely wrong?

Thanks!

Refactor ModizMusicPlayer

I've found the current structure of ModizMusicPlayer to be a really big barrier to contributing new players and improving or upgrading the current players in Modizer. I was looking at refactoring ModizMusicPlayer into a more object-oriented manner. Namely:

  • The overall controller code needs to be separated out from classes encapsulating the actual playback libraries themselves. For instance, a lot of controller functionality that's merged in with the players right now (setting the device volume, writing audio buffers to the device, handling compressed archives, etc.) really ought to be handled by a separate class dedicated to that purpose.
  • The different playback libraries need to be separated out into separate playback classes with a common external API, which inherit from a generic parent class.

The playback classes could roughly resemble, based on the current API and the API I've been developing for Paula:

Class methods:
+(array) extensions - Class variable storing the file extensions the player supports.
+(bool) detectsFormats - True if the class can automatically detect formats without using the filename. Some players (uade, xmp) have no canonical extension list.
+(bool) canPlay(string file) - Allows a class to specify whether it can play the specified input file, for selecting a player. (This would allow for fallbacks when multiple players support a format, like .mod; currently if Modizer selects a primary player for the format and the plugin rejects it, the file can't be played even if a player which can is available.) Defaults to use the file extension but subclasses can override to use the file's properties, if the player supports this.
+(player object) fromFile(string file, int loops, int frequency) - Attempts to instantiate a player object given a file path. I'm assuming here that multiple libraries need loops specified when playback starts.

Instance methods:
-(bool) finished
-(string) nextSample - returns a rendered sample from the song at the current position and moves the playback position forward
-(bool) seek(int time) - seek to the specified location in the song.
-(string) getMessage - defaults to an empty string unless subclassed
-(string) getTitle
-(string) getType - defaults to the file extension unless subclassed
-(string) getPlayerName
-(int) getSongLength
-(int) getCurrentTime
-(int) subsongs - defaults to one, counting the primary song
-(void) changeSubsong(int number)

At a minimum classes would need to redefine +fromFile and -nextSample in order to function.

Separating out and encapsulating the code like this will make the logic a lot more readable, and make Modizer more inviting to contributors like me.

If you agree, I'll start expanding what the classes should look like and begin working on the code.

Further options for refinement could include:

  • introduce a songfile class instead of using strings, like I do in Paula, to provide helper methods specific to what Modizer needs.

DSF plays back at the wrong speed when 22kHz is selected at the menu

I think this was introduced by pull request #3. The DSF playback ratio is now hardcoded to 22kHz, but the player will still try to adjust the playback speed depending on what's chosen in the options menu even though the options do nothing. As a result the audio plays back at half speed if 22kHz is selected in the AOSDK options.

Modizer asks to reset settings when it was autoclosed

Modizer will display its post-crash "reset your settings" prompt after being autoclosed by the OS. In practice, I find this means that most times when I open it I'm asked whether I want to wipe my settings - which I don't! I wonder, is there a better way to handle this?

I'm using an iPod Touch October 2011 with iOS 5.0.1.

VGMPlay player does not loop tracks

This happened with the most recent version.

Repro steps:

  • Play a vgm file like an .nsf - anything that shows the format "VGM" on the info screen
  • Tap the infinity ∞ button to loop the track

Observed:

  • VGM format files like nsf and many others played by the VGMPlay player does not loop the track and will fade out and start at the first track or replay it.

Expected:
VGM format files should loop endlessly like they did before.

I noticed that other players like the gameboy player, the loop works as expected.

I tried debugging the app after I got it to build but couldn't find where this problem is originating. I'll try to dig deeper.

About VGM(play) Version

i saw vgm core version in modizer is 1.70 and VGMplay verson is 0.40.5.
Well. there is a new version came out 2015. that version is 1.71(VGM), 0.40.7(VGMplay).
vgm 1.71 and vgmplay 0.40.7 have more chiptune compatibility feature c352, nmk112(okim6295)(later toaplan 2), Wonderswan, NES, And more.
i think you say "Compile yourself guy." But i don't have ios development technology and I DON'T HAVE MAC.
hmm.. what's your opinion, developer?

Add support for Files on iOS 11+

Currently, there's no way to copy files from other apps/Safari to Modizer (the app isn't a share target on iOS 14). The simplest way to allow for this seems to be to expose the Documents directory to the Files app. This seems to be a simple change to the Info.plist (in the case of this repo, modizer/modizer-info.plist):

Add the following:

<key>LSSupportOpeningDocumentsInPlace</key>
<true/>

I was planning on submitting a pull request with the change, but I'm currently unable to get the app on master to run without crashing on startup. As is, the code on master doesn't build on a fresh clone.

“∞” function issues

When playing certain file formats, most prominently VGM/VGZ and anything supported by the vgmstream plugin, the ∞ function does not work as intended.
Instead of looping the song continuously it will fade out the song after a period of time and restart from the beginning. The best workaround I can find for some of these file formats is to go into the plugin settings and set the “max loop” slider to the maximum level, although this will only loop the song 16 times instead of indefinitely.

Support MPTM module format

Currently mptm files are not listed in the file browser. Since Modizer is using libopenmpt, mptm support should work out of the box.

Thank you

Modizer receives random sigkills while playing mods

This is a weird bug. I haven't been able to 100% track it down yet.

While playing large playlists of mods, I've had Modizer close without warning seemingly at random. So far, I've only had this happen with Dumb as the playback library. After some diagnosis in the iOS Simulator, it looks like Modizer is receiving a sigkill, so it's not actually a crash.

NSF doesn't respect global default length

Any NSF file that doesn't internally specify a length defaults to libGME's built in default of 2:30 instead of the value you pick in settings.

This generally only impacts homebrew NSF's, such as most entries to the Famicompo contests. Haven't checked to see if you have control over this, but figured I'd report it so that it's documented somewhere.

Multi-subsong files skip to the next file after a short track

If a file with multiple subsongs has a very short jingle or sound effect, Modizer will skip playing to the next file instead of the next subsong. This causes a big problem for HES files, which very often either start with sound effects or have sound effects mixed in among actual music - it's impossible to listen to all of the songs in a file, and if a file starts with a sound effect in the first subsong, it's not possible to advance at all.

Most SIDs creating a buzzing noise

With the latest update, most SIDs are now playing back a buzzing noise, as if it were constantly restarting, with Mr_Marvellous.sid it restarts about 34 seconds after the song had begun playing, so this bug seems to affect every SID.

https://files.catbox.moe/0htycd.MP4

Edit: this only seems to occur with infinite playback enabled

Downloads feature throws the towel too easily

The downloads feature only works fine on a stable WiFi connection. But it throws the towel too easily if anything gets rought. For example:

  • When connected to more unstable networks like 3G or 4G: has issues to connect to FTP, gives up too easly, then resume doesn't work anymore
  • When the lock screen is activated (clears the download list)

Many other events can make it clear the download list, forcing the user to search all over again and again for the modules he wanted to download.

Suggestion: in preferences, treat Amiga MODs different from PC MODs

Rationale: My personal preference is UADE for Amiga mods, while I find the Dumb provides better playback for the songs I listen to than Modplug does. Since UADE only plays Amiga mods though, the hardcoded fallback means that if I choose UADE as my mod format, all PC songs will play in Modplug. I'd find it convenient to be able to set default player for Amiga and PC formats separately.

Wanted to check in on your opinion before submitting patches.

Errors trying to compile on Apple Silicon DTK from fresh clone

Trying to compile the repository (to test Modizer running on an Arm DTK), but running into some issues. I was wondering if you had any thoughts

libxsf

First libxsf is throwing up issues

in port.h there were 3 errors:

first line 224 had 'uint32-t' rather than 'uint32_t'

Second, has issues with the operands in 223 and 224

inline uint16_t READ_WORD(const uint8_t *s) { return s | ((s + 1) << 8); } inline uint32_t READ_3WORD(const uint8_t *s) { return s | ((s + 1) << 8) | ((s + 2) << 16); }

Errors:

`
Showing Recent Messages
/Users/tarasis/Programming/Projects-Others/modizer/libxsf/src/in_snsf/snes9x/port.h:223:67: Invalid operands to binary expression ('const uint8_t *' (aka 'const unsigned char *') and 'int')

Showing Recent Messages
/Users/tarasis/Programming/Projects-Others/modizer/libxsf/src/in_snsf/snes9x/port.h:224:68: Invalid operands to binary expression ('const uint8_t *' (aka 'const unsigned char *') and 'int')

`

I assume it should be using FAST_LSB_WORD_ACCESS given LSB_FIRST is defined in modizer_Prefix.pch.

Is this because I am building on the DTK, so its not picked up on the if on line 211? I've tried adding "defined(aarch64)" but that isn't working. (I bypassed this for the moment by forcing it to use FAST_LSB_WORD_ACCESS

Lexical or Preprocessor issue

Xcode reports ao.h is missing when compiling

/Users/tarasis/Programming/Projects-Others/modizer/modizer/aosdk/eng_psf/peops/externals.h:19:10: 'ao.h' file not found

but the file is there

tarasis@DTK modizer % find . | grep ao.h ./modizer/Resources/sc68/Replay/tao_hubbard.bin ./modizer/aosdk/ao.h

libxml

Keeps throwing up different files as being missing, for instance

/Users/tarasis/Programming/Projects-Others/modizer/modizer/libxmp/libxmp-master/src/loaders/sym_load.c:24:10: 'depackers/readlzw.h' file not found

but its clearly there

tarasis@DTK modizer % find . | grep readlzw ./modizer/libxmp/libxmp-master/src/depackers/readlzw.c ./modizer/libxmp/libxmp-master/src/depackers/readlzw.h

vgmstream

Similar issue

/Users/tarasis/Programming/Projects-Others/modizer/vgmstream/vgmstream.h:21:10: 'vorbis/vorbisfile.h' file not found

File is there, and I was able to build the vorbis module successfully

tarasis@DTK modizer % find . | grep vorbisfile.h ./libopenmpt/openmpt-trunk/include/vorbis/include/vorbis/vorbisfile.h

SIDs aren't infinite even with infinite mode enabled

As the title suggests, with infinite mode enabled, sidplayfp insists on still using the songlength provided from the HVSC instead of playing contineously like it did in versions prior, without infinite mode it behaves as it should

Database messages don't check for success of action

There are two database popup messages, which occur if

a) The Modizer database doesn't exist, or
b) The database needs to be upgraded to a new version

The messages don't actually check for the success of the action, so if creating or upgrading a database fails Modizer will still produce the "Database created" message with no indication that there was a problem. This results in the messages popping up every time Modizer is opened.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.