Coder Social home page Coder Social logo

sidtool's Introduction

sidtool's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

sidtool's Issues

Installation fails due to problems with mini_racer

Issue:

Using gem install sidtool results in an error

Expected:

Installation should work as described

Reproduction of error:

  1. Open the repository in a fresh GitPod instance --> Fails
  2. Try after that from the terminal gem install sidtool --> Fails

Details:

After opening the repository in GitPod:

 HISTFILE=/workspace/.gitpod/cmd-0 history -r; {
bin/setup
}
gitpod /workspace/sidtool (master) $  HISTFILE=/workspace/.gitpod/cmd-0 history -r; {
> bin/setup
> }

bundle install
+ bundle install
Bundler 2.3.21 is running, but your lockfile was generated with 2.1.4. Installing Bundler 2.1.4 and restarting using that version.
Fetching gem metadata from https://rubygems.org/.
Fetching bundler 2.1.4
Installing bundler 2.1.4
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
Fetching gem metadata from https://rubygems.org/.......
Fetching rake 10.5.0
Installing rake 10.5.0
Using bundler 2.1.4
Fetching coderay 1.1.2
Installing coderay 1.1.2
Fetching diff-lcs 1.3
Installing diff-lcs 1.3
Fetching libv8-node 16.10.0.0 (x86_64-linux-musl)
Installing libv8-node 16.10.0.0 (x86_64-linux-musl)
Fetching method_source 0.9.2
Installing method_source 0.9.2
Fetching mini_racer 0.6.2
Installing mini_racer 0.6.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.2/ext/mini_racer_extension
/home/gitpod/.rvm/rubies/ruby-3.1.2/bin/ruby -I /home/gitpod/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0 -r ./siteconf20220911-676-dmcsal.rb extconf.rb
checking for -lpthread... yes
creating Makefile

current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.2/ext/mini_racer_extension
make DESTDIR\= clean

current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.2/ext/mini_racer_extension
make DESTDIR\=
compiling mini_racer_extension.cc
linking shared-object mini_racer_extension.so
g++: error: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/libv8-node-16.10.0.0-x86_64-linux-musl/vendor/v8/x86_64-linux/libv8/obj/libv8_monolith.a: No such
file or directory
make: *** [Makefile:263: mini_racer_extension.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.2 for inspection.
Results logged to /home/gitpod/.rvm/gems/ruby-3.1.2/extensions/x86_64-linux/3.1.0/mini_racer-0.6.2/gem_make.out

An error occurred while installing mini_racer (0.6.2), and Bundler cannot continue.
Make sure that `gem install mini_racer -v '0.6.2' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  sidtool was resolved to 0.0.5, which depends on
    mos6510 was resolved to 0.1.2, which depends on
      mini_racer

After doing gem install sidtool:

gitpod /workspace/sidtool (master) $ gem install sidtool
Fetching mini_racer-0.6.3.gem
Fetching sidtool-0.0.5.gem
Fetching mos6510-0.1.2.gem
Building native extensions. This could take a while...
ERROR:  Error installing sidtool:
        ERROR: Failed to build gem native extension.

    current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.3/ext/mini_racer_extension
/home/gitpod/.rvm/rubies/ruby-3.1.2/bin/ruby -I /home/gitpod/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0 -r ./siteconf20220911-1633-njl3lr.rb extconf.rb
checking for -lpthread... yes
checking for whether -Wl,--exclude-libs=ALL  is accepted as LDFLAGS... no
creating Makefile

current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.3/ext/mini_racer_extension
make DESTDIR\= clean

current directory: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.3/ext/mini_racer_extension
make DESTDIR\=
compiling mini_racer_extension.cc
linking shared-object mini_racer_extension.so
g++: error: /home/gitpod/.rvm/gems/ruby-3.1.2/gems/libv8-node-16.10.0.0-x86_64-linux-musl/vendor/v8/x86_64-linux/libv8/obj/libv8_monolith.a: No such file or directory
make: *** [Makefile:263: mini_racer_extension.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/gitpod/.rvm/gems/ruby-3.1.2/gems/mini_racer-0.6.3 for inspection.
Results logged to /home/gitpod/.rvm/gems/ruby-3.1.2/extensions/x86_64-linux/3.1.0/mini_racer-0.6.3/gem_make.out

Convert whole song

Just let it play from start to finish, instead of iterating a certain amount of frames.

Support "middle notes"

Currently we round all notes to the nearest MIDI note. This actually works pretty well, but some songs use a lot of "sliding". Maybe we should enable using frequencies between MIDI notes through a command-line option?

Support volume levels

...both the global volume registers and the sustain values for the individual sounds...

Output to MusicXML

Having the songs shown as sheet music would be totally awesome!

However, it's probably not totally straightforward. For example, which key should be used, and how long would a measure be? Maybe just require that as arguments on the command-line.

question about instrument mapping

Hey nice tool ! I really want to use it, but I wanted to ask first if it does some kind of mapping according to General Midi specs ?

Like, are the "drums" of a song mapped to one of the drum codes of the GM specs ?

Thanks !

"Release" is sometimes too long

Try to convert e.g. Rob Hubbard's Commando.sid. It's just weird. Seems like we're starting a lot of sounds but not ending them soon enough.

Support NTSC in addition to PAL

Currently the frame rate is hard-coded to 50 Hz. The .sid file specifies if we're running on NTSC or PAL, so we should adhere to that.

This will involve changing the playback code, e.g. by just dumping some metadata in the sidtool output file and using that in the player.

Support CIA interrupts

Currently we just call the music code each frame. Not quite sure how CIA timers work, but that should be supported as well.

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.