• 0

    posted a message on [1.6.4] MineTunes - MIDI Music from Vanilla Blocks
    Hazzat: I've got lots of ideas for new features for all three types of music, and possibly in the future some BookTunes. If you have any suggestions, feel free to air them here!

    GrandChaos9000: This mod has been in development for roughly a year now, and is tested for both Java 6 & 7, but I'm still always paranoid it won't work for people :P Have fun with it!
    Posted in: Minecraft Mods
  • 9

    posted a message on [1.6.4] MineTunes - MIDI Music from Vanilla Blocks




    For Minecraft 1.6.4
    With or Without Forge
    (Previously MCDitty)

    MineTunes combines Minecraft blocks with a MIDI synthesizer to create the ultimate musical solution for doorbells, adventure maps, and creative multiplayer block-jamming. MineTunes works in both single and multiplayer, and adds no new blocks. Further, the mod's attention to detail is vast: you can disable and enable each individual part, you can save music to MIDI files, and new updates arrive every couple of weeks at the press of a button.New: Now with 100% more voice synthesizer!



    Features:

    Noteblocks:
    • Tooltips -- See what noteblocks are set to
    • Netherrack / Endstone -- 4 new octaves, for a total range of F#1 to F#7 (for piano)
    • Noteblock Tuner - Use a transposable keyboard screen to tune noteblocks (Shift+W)
    • Lyrics -- Put signs on noteblocks
    BlockTunes:
    • Musical Floor -- Blocks inside a rectangle of 1 Jukebox and 3 Noteblocks (plus a lever on the jukebox!) play notes.
    • Varies by Location -- Some boimes have their own instruments for blocktunes, and the higher the BlockTune is made, the higher the key.
    • Varies by Time -- Night now means more than zombies!
    • Easy Jams -- Works great with other players in SMP.
    SignTunes:
    • Detailed Music -- Uses MusicStrings, a complete music language that lets simple songs be simple and detailed songs masterfully easy
    • Compact -- Short songs may take only three blocks!
    • Lyrics -- SignTunes, with the help of framed books, can show lyrics on the chat
    • Animations -- Fireworks, Sound Effects, Bots (coming soon), and more.
    • Redstone -- Signs can be wired up to redstone contraptions.
    • Voice Synthesis -- Read your lyrics aloud, don't just hum!

    Installation:
    MineTunes works with or without Forge.

    With Forge (Recommended)
    • Copy MineTunes zip into your /.minecraft/mods folder
    Without Forge
    • Copy the contents of the MineTunes zip into .minecraft/versions/1.6.2/1.6.2.jar using WinRAR, 7-Zip, MultiMC, MCPatcher, or any other patcher.
    • If done manually, remember to delete META-INF from your jar file
    Either way, no other resources need to be copied around: MineTunes downloads any needed images and sounds at first run.

    SignTune Examples:
    As well as these, there is a whole example world available for download from inside the mod.

    "Hello World!":

    Time to break out the wood planks and sticks: we're building signs!

    1. Place a sign. Write a MusicString (See examples) with the tune you wish to play on the sign.
    2. Right or left-click the sign. I suggest using an empty Minecraft hand for this.
    3. The tune will play

    Shave and a Haircut


    Example Ditty: Mister Dooley (Intermediate)
    After a long day chopping wood to finish my new basement / livestock room, I decided to unwind with a jaunty march. I found some old sheet music on the internet, and this was the result:



    (Click the picture to enlarge)



    In under 10 minutes I had a functional and musical decoration that my and the sheep would enjoy for years to come. Until the great lamb-meat famine of 2012.

    How to Write SignTunes:
    There's plenty of examples and help in the mod, but for those who prefer a written tutorial:

    ***

    SignTunes are written using MusicStrings.

    MusicStrings are musical notes, "strung" together like words on a page. MineTunes's MusicStrings are based on JFugue's MusicStrings: several examples of JFugue MusicStrings can be found on the JFugue website, and a detailed guide in a book on the JFugue website.

    The MCDitty Wiki has an entry on MusicStrings, and some reference cards.


    MusicString notes, compared to sheet music

    Here's a quickstart guide:

    Example: Shave and a Haircut

    C6 Gi Gi Gi A G R B C6
    • C6 indicates a C quarter-note (the default) in the 6th octave (6).
    • Gi indicates a G (G) eighth-note (i) in the 5th octave (the default).
    • A and G indicate quarter notes (the default) in the 5th octave (by default).
    • R is a rest, for a quarter note (the default).
    Basic notes are laid out like this:
    (A note letter or R)(# or b if needed)(An octave if needed)(One or more length letters if needed)

    Example: Note with Everything:

    Ab6hq
    (A-flat, in the 6th octave, for a half note and a quarter note)
    • The note letters are A, B, C, D, E, F, and G, or R for "rest"
    • # and b after the note indicate sharp or flat (Ex.: Ab or C#)
    • Octaves can go from 0 to 10: "3" and "5" are where the left and right hand usually sit on a piano. (Default is 5)
    • Length letters include "w" for a whole note, "h" for a half note, "q" for a quarter note, "i" for an eighth note, "s" for a sixteenth note, and so on.
    • Tack an asterisk on the end to denote a triplet note.
    Example: Changing Instruments:

    I[Piano] C D E I14 F G A I[Flute] B C6w

    This plays 3 notes on a piano, 3 notes on the Tubular Bells, and the last two notes on a flute. If you can't fit the name of an instrument on the line of a sign, use its number: Midi Instrument Numbers.

    Example: Changing Tempo & Playing Chords:
    T300 C E G T250 C E G T200 C E G T120 C5majw

    OR

    T300 C E G T250 C E G T200 C E G T120 Cw+Ew+Gw

    This plays the same three notes three times at decreasing speed, and finishes with a C Major chord.
    • Tempos are in Beats Per Minute: a whole note lasts one whole beat, so at 60 BPM, a whole note lasts one second.
    • Chords are laid out like notes, except that they have a chord name between the octave and note length letters. My friends use the "maj" (major) and "min" (minor) chords frequently in ditties. The JFugue Guide sample chapter has a list of other chord names. Chords are in the 3rd octave by default.
    • If you don't know a chord's name, you can just chain together individual notes with "+" signs.
    That's all you need to know to write the melodies of most any song you can think of.
    Good luck, and have fun!

    Source Code
    The source code for this mod is hosted on GitHub.

    The Fine Print
    You may redistribute this mod freely, under the terms of the LGPL. HOWEVER, as noted below, you MAY NOT distribute, copy, or republish this document.

    This mod includes a modified version of the JFugue library, whose website is http://www.jfugue.org . It is licensed under the LGPL.

    This mod includes a modified version of J-Ogg, "This software is based on or using the J-Ogg library available from http://www.j-ogg.de and copyrighted by Tor-Einar Jarnbjo."

    This mod includes a version of Gervill, a MIDI synthesizer library. Licensed under the GPL and used under the CLASSPATH exception.

    This mod also contains other libraries, detailed in the README.txt file included in every MineTunes download. These other libraries are all licensed under either the LGPL or a compatible license.

    This mod and its code, as well as the JFugue library and its code, are licensed under the LGPL (source code is included in the "src" folder of your download). You can use this code to update the mod yourself, if you wish, or make a fork under the terms of the LGPL.

    This document is Copyright © 2012-2013 William Karnavas (a.k.a. FenceFoil) All Rights Reserved and is the intellectual property of the author. It may be not be reproduced under any circumstances except for personal, private use as long as it remains in its unaltered, unedited form. It may not be placed on any web site or otherwise distributed publicly without advance written permission. Use of this document on any other website or as a part of any public display is strictly prohibited, and a violation of copyright.

    This Document Is
    Copyright © 2012 - 2013 William Karnavas a.k.a. FenceFoil
    All Rights Reserved
    Posted in: Minecraft Mods
  • 0

    posted a message on Remote VersionCheck Possible with GitHub?
    I have sent you a Pull Request in GitHub, featuring a almost-working update checker (I couldn't set up Eclipse with your mod, so you'll need to organize imports etc.)

    Now go and work on the fun bits of your mod :)

    EDIT: Never mind, Mod Update Manager looks way cooler. IGNORE MY PULL REQUEST.
    Posted in: Modification Development
  • 0

    posted a message on Remote VersionCheck Possible with GitHub?
    I've got an LGPL open-source mod with an update system. My system:
    • Checks for updates once in the mod's constructor (in a thread)
    • Only tells the user whenever a new version is first found (in practice, about once a week). This reduces annoyance.
    • Keeps the updates in a java.util.Properties file on Dropbox (or GitHub) and separates them by Minecraft version
    • Downloads and swaps the new version into your mods folder. Considering those who do not like this feature on principle, it must be triggered manually with a button in a gui.
    I'll clean up and comment my update package and see if I can send it to you or put it in your GitHub. Good luck!
    Posted in: Modification Development
  • 0

    posted a message on new particle effect[texture]
    Five months later: You can override method "renderEffect" (or something close) in your particle class, and insert the following code:

      int particleTex = Minecraft.getMinecraft().renderEngine
        .getTexture("/com/minetunes/resources/textures/particles.png");
      Minecraft.getMinecraft().renderEngine.bindTexture(particleTex);
      super.renderParticle(par1Tessellator, par2, par3, par4, par5, par6, par7);


    This binds your custom texture before rendering the particle. Be sure to include a sheet of your own particle textures, put your texture on it, and set your particle's texture index correctly.
    Posted in: Modification Development
  • 1

    posted a message on [Help] My (car) HUD is flickering !
    I had this problem before, when rendering text onto the screen during normal ticks, e.g. when Entity.update() is called.

    I understand that in Forge, you need to register your TickHandler to listen for TickType.RENDER, specifically. Tell me if this works -- if it does, I'll start using it!

    EDIT: And also do your rendering at the end of the tick, and no sooner.
    Posted in: Modification Development
  • 0

    posted a message on [SOLVED] I want to make my forge mods to notify players when there is an update
    I was rather sleepy, and launched off on how my non-Forge mod does update checking instead of actually answering his question :P

    That code has nothing to do with updateURL as it stands today, leave updateURL blank (that is, as a "") until its function is defined.

    You have to do updating code yourself.
    Posted in: Modification Development
  • 0

    posted a message on [SOLVED] I want to make my forge mods to notify players when there is an update
    I just happened to start learning Forge today... the documents on the Wiki claim that the updateUrl field is unused currently. Pity, that.

    Technically, you should put a pair of empty double quotes ("") in its space.
    Posted in: Modification Development
  • 0

    posted a message on Modloader for Multiplayer Server?
    I've just started looking into Forge, and they have a couple wikis, on GitHub and their website. Tutorials are everywhere on the internet, of every vintage and of every level of quality imaginable. There's also a posse on here, it seems, who will get you help pretty quickly on anything Forge-related if you put [Forge] in your topic's title. :)

    This tutorial got me rolling pretty quickly: http://www.minecraftforge.net/wiki/Basic_Modding.
    Posted in: Modification Development
  • 0

    posted a message on [SOLVED] I want to make my forge mods to notify players when there is an update
    My mod, MCDitty, has an update checker that uses Dropbox (popular free cloud-file-storage site) to host the version file. It also has an updater that runs in-game, and only when you explicitly press an Auto-Update button.

    The update checker works as follows: on Dropbox, I share the link to a text file, say, modVersions.txt. It looks like this:

    mc-1.4.6-latestVersion=0.9.9.04
    mc-1.4.4-latestVersion=0.9.1.01
    mc-1.4.6-latestDownload=http://dl.dropbox.com/blahblahblah.zip
    mc-1.4.4-latestDownload=http://dl.dropbox.com/blahblahblah.zip


    This file can be loaded with the Java Properties class: just open a stream up to the shared link, and load the Properties from it. As you can see, it is sorted by minecraft version: a consideration to those who still use, say, Minecraft 1.4.4.

    Every time the mod starts, I download and check this index for new versions. If there's a new one, I tell the player. Note that you should only tell the player once per new update released: OptiFine in particular is a jerk about this. My mod has a "lastVersionFound" in its config file, so it can remember not to tell you about the same new version twice.

    Finally, Auto-Update is an option in my mod's main menu. It downloads the new version's zip file (also on Dropbox) and patches it into a copy of minecraft.jar after removing the current version of the mod. When the JVM exits, I swap the updated jar with the current one.

    Edit: My mod is API-independent.
    Posted in: Modification Development
  • 0

    posted a message on Modloader for Multiplayer Server?
    I have only the sketchiest knowledge, but I understand ForgeModloader lets you make one set of code that works with both client and server?
    Posted in: Modification Development
  • 1

    posted a message on ---GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);--- Questions.
    r g b a -- red, green, blue, alpha. OR, a scambled version of those. Color components range from 0 to 1 each, with all zeros being black and clear and all 1s being the orb's natural color and opaque. Alpha is transparency.
    Posted in: Modification Development
  • 0

    posted a message on Edit A Class File Without Editing It
    Another alternative is Java Reflection. It will work even if the int is 'private' or 'final.' The more you get into modding (esp. without an API), the more you will love Reflection.

    Oracle's Reflection Tutorials are a good place to learn about that, but remember that when accessing a field by name, when your mod is reobfuscated all Minecraft field names become gibberish. Then you have to get clever: use reflection to fetch a list of the fields (or variables) in the class, and use logic to find the one you want without using the name. I.E., if there's only one int, search the list for a field of type Integer, if there's multiple but yours is always equal to "5" at start, look for Integers that are equal to 5, etc.

    It sounds complex, but once you figure it out you can easily poke almost any value in any class without editing it!
    Posted in: Modification Development
  • 0

    posted a message on Modding without modloader or forge
    There aren't a lot of general guides on this, that I've found. The best guide is Minecraft itself.

    After modding with no APIs for a year, my best friend is the "Ctrl+H" shortcut in Eclipse: it lets you find what code uses what methods, and where. When in doubt, find something similar to the effect you want and imitate it. If you can't figure out how a system works, just use Ctrl+H to surf Minecraft until you find and understand its parts.

    There are some parts of ModLoader / Forge that are easy to replicate yourself. Registering network packets, blocks, etc. can be done by reflection (and have I learned about reflection doing this). If you extend a block class, you can put code in its constructor that acts nearly the same as ModLoader's "onLoad()," and if you have that spawn a thread that checks for and places a dummy Entity in the World, its "update()" method is the same as ModLoader's "onTick()." Etc.

    If you have any questions in particular, PM me and I can try to offer advice!
    Posted in: Modification Development
  • 0

    posted a message on How can I make an item do something on left click?
    There's a long way around: every tick you mod is updated, check to see if the mouse is clicked and whether Minecraft.objectMouseOver isn't null: this will tell you when you've left clicked on something. Then just make sure that the player is holding your banana, and if they are, let the fruit fly!

    This is what I use in my mod, and I'll post the code here if you need it.

    Your mod sounds pretty apeeling!
    Posted in: Modification Development
  • To post a comment, please .