GithubHelp home page GithubHelp logo

moppyclassic's Introduction

    __  ___                           __                  __  ___                    ____
   /  |/  /___  ____  ____  __  __   / /_  ____ ______   /  |/  /___ _   _____  ____/ / /
  / /|_/ / __ \/ __ \/ __ \/ / / /  / __ \/ __ `/ ___/  / /|_/ / __ \ | / / _ \/ __  / / 
 / /  / / /_/ / /_/ / /_/ / /_/ /  / / / / /_/ (__  )  / /  / / /_/ / |/ /  __/ /_/ /_/  
/_/  /_/\____/ .___/ .___/\__, /  /_/ /_/\__,_/____/  /_/  /_/\____/|___/\___/\__,_(_)   
            /_/   /_/    /____/                                                          

#FFD700 This project has been replaced with Moppy 2.0 and will not see any updates in the future. Moppy 2.0 implements nearly all the features that this version had, and adds many additional features, so there's no reason not to head on over there to check it out. This repo will be preserved for historical purposes and just incase someone needs something that this older version offers.


FAQ

Why Moppy 2.0?

The original Moppy was good at doing its thing, but not very suitable for modifications and features added by the community (at least without making the initial setup experience more complicated for everyone). Moppy 2.0 has been redesigned with the goal of keeping the out-of-the-box experience and easy as possible while allowing for advanced users to build and contribute new features and support new devices (like scanners, stepper motors, and relays!).

Why a new repository?

Moppy 2.0 was built from the ground up, so any new "branch" would have started its life by having all its contents deleted and no future merge would ever be possible.

What if I still need this version of Moppy (for some reason)?

You can still checkout the last-available version of this repository, but there will be no future development or bug fixes.

Original README


This version attempts to improve upon the original Moppy by adding additional functionality including:

  • MIDI-IN support
  • Per-channel output control
  • Support for multiple Arduinos/MIDI devices
  • Drive pooling

This document is meant to be a sort of quick-start guide. You can find an FAQ and troubleshooting guide on the Wiki.

Installation

The Arduino code requires the TimerOne library available here: http://www.arduino.cc/playground/Code/Timer1

The latest build is using NRJavaSerial, which should include suitable native drives for most systems. If you've previously run an older version of Moppy, you'll need to make sure that the RXTX jar file(s) are not being loaded (i.e. not on the classpath, &c.), since the two libraries will conflict if both present.

Upload the included Arduino code to the Arduino of your choice (requires Arduino IDE), and open up the included Java code in your favorite IDE. This code includes a NetBeans project for your convenience, so you should be able to open the project directly in NetBeans.

Hardware

I built Moppy using an Arduino Uno, though it should work just fine on most Arduinos. The pins are connected in pairs to floppy drives as follows: Even pins (2,4,6...) are connected to each drive's STEP pin, the matching odd pins (3,5,7...) are connected to the each drive's DIRECTION control pin. So the first floppy would be connected to pin 2 & 3, the second floppy to 4 & 5, and so on.

Some pinout information can be found here: http://pinouts.ru/Storage/InternalDisk_pinout.shtml

Make sure you ground the correct drive-select pin, or the drive won't respond to any input (just connect the drive-select pin on the floppy to the pin directly below it). You can tell when you have the right drive selected, because the light on the front of the drive will come on.

Also, it's VERY IMPORTANT that your Arduino is grounded with the drives, or the drives will not register the pulses correctly. To do this, make sure that the GND pin on the Arduino is connected to the odd-numbered pin below the STEP pin on the floppy (i.e. if the STEP pin is 20, connect the Audnio's GND pin to Floppy-pin 19). You might need to do this for the DIRECTION pin as well (I did it for both, but I don't know if it's required).

Configuration and use

  • Open up the code in NetBeans (or your favorite IDE) and run it. Alternatively, you can build the MoppyDesk.jar file and run that directly.
  • On the right half of the screen, check the channel output boxes for the number of drives you have connected, select "Moppy", and choose the COM port that you have your Arduino connected to.
  • Click the "Load Sequence" button and select a suitable MIDI file (see below).
  • Click the "Connect" button to connect the program to the devices specified in the output area.
  • Click "Start" to start playback (if all goes well).
  • The Stop/Reset button will stop playback and reset the drives.

MIDI file information and guidelines

  • MIDI files should have one MIDI channel for each controller pin on the Arduino. Channel 1 will be sent to pin2, channel 2 to pin4, &c.
  • Each drive can only play a single note at a time.
  • The software will only attempt to play notes between C1 and B4. Floppy drives don't seem to respond well to notes outside of this range (especially higher).
  • Generally shorter notes tend to sound better, as longer notes are marred by the read-heads changing directions repeatedly.

Cross your fingers, and enjoy!

Help / contributions

https://github.com/SammyIAm/Moppy

moppyclassic's People

Contributors

brantmeierz avatar felixphew avatar sammy1am avatar solidsnake745 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  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

moppyclassic's Issues

Issue with jDesktop

I am trying to compile your code in Eclipse Indigo, but i am having trouble. Steps:

  1. Open Eclipse
  2. Set the workspace to C:\Users\malachipclover\Downloads\SammyIAm-Moppy-ec7e437\SammyIAm-Moppy-ec7e437\Java\
  3. Add new Java project
  4. Name it MoppyDesk to purposefully conflict with the MoppyDesk folder inside the Java folder
  5. Eclipse creates a project around the existing source
  6. In the package explorer pane on the left, it indicates that there is a problem with the project
  7. I find out it's in MoppyUI.java
    Error: "The import org.jdesktop cannot be resolved" line 7

I did a web search for jDesktop and all I could find was something for Javascript.
Any help would be appreciated.

Moppy crashes with SIGSEGV

Moppy have crashed. I'm grab it via "git clone", compile with NetBeans, open it, load midi (Tetris.mid from samples), mark the first channel, connect to my Arduino Uno (it's on /dev/ttyACM0, but Moppy was only see the /dev/S0, I've created a symlink and give a rw rights to both), choose /dev/S0. Press Play. It's starting to play something about two notes, than crashed. How it was:

$ /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -jar MoppyDesk.jar 
Experimental:  JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version   = RXTX-2.1-7
Loaded sequence with 3 MIDI channels.
Tempo changed to: 100
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f794d724733, pid=28273, tid=140159003662080
#
# JRE version: 7.0_15-b20
# Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [librxtxSerial.so+0x7733]  Java_gnu_io_RXTXPort_nativeDrain+0xc3
#
# Core dump written. Default location: /media/DATABIG/Downloads/Arduino/from git/Moppy-moppy-advanced/Java/MoppyDesk/dist/core or core.28273
#
# An error report file with more information is saved as:
# /media/DATABIG/Downloads/Arduino/from git/Moppy-moppy-advanced/Java/MoppyDesk/dist/hs_err_pid28273.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-7/
#
Aborted (core dumped)

The same with Moppy-advanced and regular Moppy. The same with Java6 and Java7. The same with two different floppies.

I have connect one floppy per time. OS - Ubuntu 12.04 x86_64, Java6 and 7 from repos (openjdk, not oracle). DE - KDE:) NetBeans 7.0.1. RXTXcomm-2.1-7. If you want, I can send the *.log and "core" files to you.

Appreciate for any help. Sorry for my English, my native language is Belarusian.

Multiple Arduinos

I was curious if you've considered any code that would allow multiple Arduinos to work together. For example, say you want to use 10 or 12 drives, you'd need 2 Arduino Unos. I could see using something like shift registers to really expand the system, however the arduino code would really have to change.

Using 2 Arduino Uno Cards to play on 16 Drives

Hi SammyIAm,

I have set up 2 Arduino Uno Cards with 8 Drives on each card.
In Moppy Advanced you have the option of which COM port you want to send each channel to.
I cannot get Moppy Advanced to play channels 9 - 16.
I hope it is as easy as altering the code in Timer1 to get the data from channels 9 - 16 instead of channels 1 - 8, then uploading this code to the 2nd Arduino Card?

Could you tell me how can I do this?
(I have also sent you a tweet with my email address if you could reply to this?)

Lyndon.

Netbeans Unable to open Zip File?

So, I've been thinking about doing this project for a while, and I finally got a floppy drive, so I have all the parts. I set up all the hardware, and then I got to the software. Everything installed correctly, and when i went to run MoppyDesk in NetBeans, I received this error:

error: error reading C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\RXTXcomm.jar; error in opening zip file
warning: [options] bootstrap class path not set in conjunction with -source 1.5
1 error
1 warning
C:\Documents and Settings\EB\My Documents\NetBeansProjects\MoppyDesk\nbproject\build-impl.xml:915: The following error occurred while executing this line:
C:\Documents and Settings\EB\My Documents\NetBeansProjects\MoppyDesk\nbproject\build-impl.xml:307: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)

I followed all the directions, even including the crtdll.dll, as I run windows XP. I can't figure out what I'm missing, so can someone help? Thanks in advance.

moppy advanced : where is the usb port drop-down ?

hi there, thanks for giving us this wonderful program that makes wishes comes true :)
sorry to bother with such a simple question but, i installed Moppy and can make the simple version working like a charm.

but i'm looking to use the advanced version, that compiles well too, but, reading the instruction i find this

Select the COM port that the Arduino is hooked up to from the "Arduino Port" drop-down.

but i just can't find the drop down menu you are talking about :)

if you can please enlighten me i would be a glad floppy lover .

thanks in advance

Old 5.25" drive support?

I have an even older 5.25" floppy drive with my rapidly growing collection of (now six) 3.5" drives. other problems aside, (the volume on these things is entirely inconsistent) the 5.25" drive seems to have half the steps that the other drives do. That is, it will spend half a cycle playing its note properly and the other half banging against the end of its track. The banging is INCREDIBLY LOUD compared to the other six combined (louder than the speakers on my Mac, too), is roughly an octave lower, and is slightly off key. Removing the reverse pin causes it to play notes like this constantly, but it's not great, because it overshadows all the other drives, is an octave lower, and is off key. I'd imagine this isn't the only one with such a problem. Any ideas? Is there a setting somewhere to tell Moppy that the track on one drive is half as long as it normally expects?

Serial Driver incompatible with Arduino SDK

I managed to install the RXTX Serial Driver and get Moppy to work however later when I was uploading a sketch to my arduino the upload crashed the SDK. Upon further research I found that the RXTX driver was the cause. Is there any way to fix this? I am on a MacBook.

Calculating microPeriods Note Value

I'm attempting to extend the dynamic range of Moppy due to the addition of an amplified hard drive to my array. I found the area of the code that I need to change, but I am unsure what formula to use for determining the note values.

Better - is there a chart of the values somewhere?

(ex. 30578, 28861, 27242, 25713, 24270, 22909, 21622, 20409, 19263, 18182, 17161, 16198, //C1 - B1)

Thanks.

Midi files and hardware

       Hi,

I've been trying to make my old floppy drive play some music, but being a complete dunce at these kind of things, i need some clarification. I only have one floppy drive, so I should connect the 2nd pin to STEP pin, 3rd pin to DIRECTION pin and then ground? This would play a midi file with 1 channel? Or am i messing something up? So far the floppy drive doesn't respond to any track i play.

Runtime Warning

I'm getting a warning when starting MoppyDesk in NetBeans:

org.jdesktop.application.LocalStorage getId
WARNUNG: unspecified resource Application.id using MoppyUI

Is this normal behaviour?

MoppyDeskwill start after that, but can only playback one tune, after that I would have to restart the Arduino and MoppyDesk. Could these two issues be related?

Using RXTX 2.2pre2 on Mac OS X 10.7.3

netbeans error opening project.xml

hello people,
everytime i try to open the moppy java project in netbeans i get this error

Error in project.xml: Attribute name "data-pjax-transient" associated with an element type "meta" must be followed by the ' = ' character.

any help would be appreciated

Unknown Issue

I am trying to set this up with a single drive to start. MoppyDesk compiles and seems to be running fine, and I have tested the connections as was shown in the video (http://www.youtube.com/watch?v=w6tuMn5sPyM) and have confirmed which pins are for step and direction and they are connected to the proper pins on my Arduino UNO. Except that when I press the MoppyDesk play button the drive doesn't respond at all. A little light blinks for a while on the Arduino and nothing else happens. Console output says it has loaded a sequence with 3 MIDI channels, and the tempo has been changed to 100. Any idea what I might be doing wrong?

Option to transpose notes being played

I'm testing Moppy with my internal drive; however, my drive cannot handle high frequencies, so I had to modify Mappy to subtract semitones when calculating the period to make it play at a lower octave.

An actual option to transpose notes down or up to a different key would be really helpful.

MB cannot find symbol

Hi all

Forgive me if i'm being stupid here but I came up against this:

Copied all drivers, and tried the 32 bit versions (I'm running 32 bit win 7)

Did I copy wrong? Or is there something else I'm missing? as far as I can see all the libraries are available, I'm not sure what it's looking for?

Any ideas would be appreciated

init:
Deleting: C:\Program Files\Java\jre6\MoppyDesk\build\built-jar.properties
deps-jar:
Updating property file: C:\Program Files\Java\jre6\MoppyDesk\build\built-jar.properties
Compiling 6 source files to C:\Program Files\Java\jre6\MoppyDesk\build\classes
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:3: cannot find symbol
symbol : class CommPortIdentifier
location: package gnu.io
import gnu.io.CommPortIdentifier;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:4: cannot find symbol
symbol : class NoSuchPortException
location: package gnu.io
import gnu.io.NoSuchPortException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:5: cannot find symbol
symbol : class PortInUseException
location: package gnu.io
import gnu.io.PortInUseException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:6: cannot find symbol
symbol : class SerialPort
location: package gnu.io
import gnu.io.SerialPort;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:7: cannot find symbol
symbol : class UnsupportedCommOperationException
location: package gnu.io
import gnu.io.UnsupportedCommOperationException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:24: cannot find symbol
symbol : class SerialPort
location: class moppydesk.MoppyBridge
SerialPort com;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:26: cannot find symbol
symbol : class NoSuchPortException
location: class moppydesk.MoppyBridge
public MoppyBridge(String portName) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:26: cannot find symbol
symbol : class PortInUseException
location: class moppydesk.MoppyBridge
public MoppyBridge(String portName) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:26: cannot find symbol
symbol : class UnsupportedCommOperationException
location: class moppydesk.MoppyBridge
public MoppyBridge(String portName) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyMainWindow.java:13: cannot find symbol
symbol : class CommPortIdentifier
location: package gnu.io
import gnu.io.CommPortIdentifier;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:3: cannot find symbol
symbol : class NoSuchPortException
location: package gnu.io
import gnu.io.NoSuchPortException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:4: cannot find symbol
symbol : class PortInUseException
location: package gnu.io
import gnu.io.PortInUseException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:5: cannot find symbol
symbol : class UnsupportedCommOperationException
location: package gnu.io
import gnu.io.UnsupportedCommOperationException;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyPlayer.java:3: cannot find symbol
symbol : class SerialPort
location: package gnu.io
import gnu.io.SerialPort;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:32: cannot find symbol
symbol : class NoSuchPortException
location: class moppydesk.MoppySequencer
public MoppySequencer(String comPort) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException, MidiUnavailableException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:32: cannot find symbol
symbol : class PortInUseException
location: class moppydesk.MoppySequencer
public MoppySequencer(String comPort) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException, MidiUnavailableException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppySequencer.java:32: cannot find symbol
symbol : class UnsupportedCommOperationException
location: class moppydesk.MoppySequencer
public MoppySequencer(String comPort) throws NoSuchPortException, PortInUseException, UnsupportedCommOperationException, IOException, MidiUnavailableException {
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyPlayer.java:44: cannot find symbol
symbol : class SerialPort
location: class moppydesk.MoppyPlayer
SerialPort com;
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:27: cannot find symbol
symbol : class CommPortIdentifier
location: class moppydesk.MoppyBridge
CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(portName);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:27: cannot find symbol
symbol : variable CommPortIdentifier
location: class moppydesk.MoppyBridge
CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(portName);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:28: cannot find symbol
symbol : class SerialPort
location: class moppydesk.MoppyBridge
com = (SerialPort) cpi.open("MoppyDesk", 2000);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:29: cannot find symbol
symbol : variable SerialPort
location: class moppydesk.MoppyBridge
com.setSerialPortParams(SERIAL_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:29: cannot find symbol
symbol : variable SerialPort
location: class moppydesk.MoppyBridge
com.setSerialPortParams(SERIAL_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyBridge.java:29: cannot find symbol
symbol : variable SerialPort
location: class moppydesk.MoppyBridge
com.setSerialPortParams(SERIAL_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyMainWindow.java:55: cannot find symbol
symbol : class CommPortIdentifier
location: class moppydesk.MoppyMainWindow
Enumeration e = CommPortIdentifier.getPortIdentifiers();
C:\Program Files\Java\jre6\MoppyDesk\src\moppydesk\MoppyMainWindow.java:55: cannot find symbol
symbol : variable CommPortIdentifier
location: class moppydesk.MoppyMainWindow
Enumeration e = CommPortIdentifier.getPortIdentifiers();
26 errors
C:\Program Files\Java\jre6\MoppyDesk\nbproject\build-impl.xml:605: The following error occurred while executing this line:
C:\Program Files\Java\jre6\MoppyDesk\nbproject\build-impl.xml:285: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 1 second)

Wiring and other ideas

Here are some ideas about the wiring:

  • I measured that with my floppy drives ALL odd pins of the floppy connector BUT pin 1 are connected internally so if one of them is grounded with the Arduino everything works fine.
  • The SELECT pin can be grounded by connecting it to one of the other odd pins.
  • This reduces the total number of wires between each floppy drive and the Arduino to 5 including power supply (STEP, DIRECTION, GND, 5V, GND)

Sammy, I'd really like to understand the java/midi part of your software, because I'd like to control some other acoustic devices like bells, little organ pipes or micro drum sets via midi and the Arduino, BUT I'm not very good at Java programming, so I can't understand what you did just by analyzing your code in NetBeans. Can you tell my something about your method or where you got the information on how to read and convert midi signals and how to send them to the Arduino? Thanks in advance, any help is much appreciated!

Regards,
Thorsten

Power supply for the arduino uno

Hi,

This is probably a very silly question, but as this just might become my first arduino uno project, please bear with me. :)

What do you power your arduino uno with? Is the USB-power enought to power it or do I need another external source? Do I have to get an arduino uno power supply or can I just use the ATX power supply for that too? I know that some power supplies do not deliver the right amount of power in all cases, so I just want to be sure...

More drives for Arduino Mega and/or live MIDI playback?

I have an Arduino Mega 2560, and I was wondering if it were possible to expand the capabilities of Moppydesk and the Arduino code for 10 or more drives and/or playing MIDI input from instrument controllers. I was wondering this mainly because of the potential to play full piano pieces using an electronic piano and being limited to only eight notes at once. I myself cannot play piano, nor do I even have an electronic piano, but I know people who do, and can. It would be nice, I think, to add more drives, and maybe offer the option to mesh the notes instead of dedicated drives per tracks. It would offer the potential for faster pieces, and less wear on individual drives.

New Ideas

Hey Sammy,

it's been over a year now since I last worked on my "Moppy Project". Now my floppies want to get to work again ... and I am thinking about a "headless" standalone version where I don't need a separate computer running while playing music on the floppy organ. A lot of work ahead now ... especially on the Java side ...

And, Sammy, could I please request your "Imperial March" midi file? I'm not very good at midi-composing for the floppies yet, and that song is so cool! ... Would have written you an e-mail about it, but I can't find a contact address anywhere...

That would be so cool, many thanks in advance!

Cheers

Thorsten

What's the license?

I was wondering what license Moppy uses.

I'm asking because I just wrote a floppy music how-to for a magazine, including Moppy, and was wondering if I could offer binaries for novice readers to download so they don't have to toy around with Java unless they really want to.

Issue with loading a file to be played

I'm unable to get the application to load a file to be played. It pops up with a java.lang.NullPointerException every time I try to load the Tetris sample file. The specific line I'm having trouble with is line 248 in MoppyMainWindow.java:

app.ms.loadFile(sequenceFile.getPath());

It has the correct path before execution, but generates the exception anyway. Any suggestions?

MoppyUI.java

Every time I compile, I get this:
Created dir: C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\build
Updating property file: C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\build\built-jar.properties
Created dir: C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\build\classes
Created dir: C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\build\empty
Compiling 6 source files to C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 1.5
C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\src\moppydesk\MoppyUI.java:19: error: not a statement
Moppy,MainWindow mainWindow = new MoppyMainWindow(this);
C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\src\moppydesk\MoppyUI.java:19: error: ';' expected
Moppy,MainWindow mainWindow = new MoppyMainWindow(this);
2 errors
1 warning
C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\nbproject\build-impl.xml:920: The following error occurred while executing this line:
C:\Users\Sean\Desktop\Floppy\Moppy-master\Java\MoppyDesk\nbproject\build-impl.xml:300: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)

Android version?

I think I may have casually mentioned it a year ago in a YouTube comment, but now I'd love to see an Android version of this. Especially since I have a tablet with a USB port.

Wiki page for MIDI-editing software?

I was thinking about making a Wiki page listing software capable of editing the MIDI files. Perhaps categorizing it by type, then in the table: its name and a link to it, potential cost, and pefhaps other things as needed...

Error: Could not find or load main class C:\Program

Hi, when I try to run MoppyDesk I get this message in the output:

ant -f "C:\Users\User1\Desktop\Floppy Music\MoppyDesk" run
init:
Deleting: C:\Users\User1\Desktop\Floppy Music\MoppyDesk\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\User1\Desktop\Floppy Music\MoppyDesk\build\built-jar.properties
compile:
run:
Error: Could not find or load main class C:\Program
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

I am running Windows 7 Home Premium x64 and have put
RXTXcomm.jar in C:\Program Files\Java\jre7\lib\ext and
rxtxParallel.dll and rxtxSerial.dll in C:\Program Files\Java\jdk1.7.0_17\jre\bin

Does anyone have any ideas about what I've done wrong?

Thanks.

Rob

Issue with midi tracks on Moppy

I'm in the process of creating a MIDI file to be used with Moppy, however I'm running into a consistent problem in which all the tracks in my MIDI file are being combined into one when played through Moppy and the floppy drives. I've tried taking a pre-existing MIDI track with enough channels (eight) and just pasting my tracks over top which works almost flawlessly, however it seems some tracks are still being combined (tracks 5 and 6 are both trying to be played on just the fifth drive for some reason when using one of the pre-existing files, and other ones have similar problems).

I suppose it comes down to some strange data stored in the tracks themselves that tells what floppy should play the track, which I personally am not able to make any sense out of. I use Logic Pro 8 if that helps any.

Thanks!

Fails when 2 drives are added

Not sure if anyone else is having this problem or not. I am setting up the musical floppy drives for a club project and we are having an issue that whenever two drives are added it fails to play music. Each drive works independently but when we try to have them play different tracks it does nothing. We are using the Arduino Mega 2650. Thanks for any help.

rxtx issues on OSX 10.8

Running into that lovely rxtx bug (i.e. java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path) with:

OSX 10.8
JDK 1.7
NetBeans IDE 7.5

I've tried every available binary, even tried building an x64 version from source on my hardware and I'm still getting that bug.

@Sammyiam have you considered any alternatives to rxtx? I'm not a Java developer so I'm not going to try and suggest any alternatives, but IMHO the rxtx dependency is seriously impacting the stability of this otherwise awesome project.

Need help getting this to work, drives are not responding

I tried building a 3-drive setup for a weekend project, but I can't get it to work.. No matter what I do, I can't seem to get the floppy drives to respond to anything, they just sit there silently. Here's what I've done:

Connected power to the floppy drives
Connected the dir and step pins to the arduino according to the readme.
Connected the pins below the dir and step to ground.
Bridged the drive select pin and pin below it (drive LED lights up)
Flashed my arduino with moppy.ino after installing Timer1
Downloaded JDK w/ netbeans
Copied the serial drivers as directed in the readme file

But when I start the moppydesk program and play a midi file, nothing happens. I've verified with a multimeter than the digital pins are actually outputting the data but the floppy disks are not responding. What could be wrong? Do I need to bridge more pins, like motor enable or something? Is there any troubleshooting I can do with the drives to see if they are working properly?

Everytime i try and run moppy in net beans i get this message.....

java.lang.UnsatisfiedLinkError: C:\Users\BenB\Desktop\SammyIAm-Moppy-15e2b0c\Java\SerialDrivers\rxtx-2.1-7-bins-r2\Windows\ch-rxtx-2.2-20081207-win-x64\rxtxSerial.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Users\BenB\Desktop\SammyIAm-Moppy-15e2b0c\Java\SerialDrivers\rxtx-2.1-7-bins-r2\Windows\ch-rxtx-2.2-20081207-win-x64\rxtxSerial.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:123)
at moppydesk.MoppyMainWindow.updateComSelectionMenu(MoppyMainWindow.java:55)
at moppydesk.MoppyMainWindow.(MoppyMainWindow.java:43)
at moppydesk.MoppyUI.startup(MoppyUI.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Pinout Needed!!! Dell floppy drive with unusual cable.

Hello. My Dell floppy drive has an unusual cable and I dont know what the problem is. I thought I followed the pin numbers well, but it just doesnt work! Its the drive out of an old Dell optiplex GX280. I got 2 other drives to work but the third doesnt want to. Ill post a picture of the drive if needed. If you would like to email me, email me at [email protected].

Thanks!

Seth Hope
Programmer
Jcam Technologies
www.jcamtech.com

Arduino not sending signals

Hi,

Sorry I am still new to the arduino and I love the potential of this project however I am having an issue getting the arduino to run the drive. I can confirm that my drive is working and wired up right as I can take the wires to the arduino and tap them together to get the drive to move in both directions however I cannot get the program to play on the drive. It connects fine with no errors and I can see the RX light flash as I'm playing the music but nothing happens on the drive.

Any help you can offer would be amazing!

Thanks,
Thedr001.

GUI doesnt show up even though build is complete and no errors

Hi, I opened a moppy project in my netbeans and added the rxtxcomm.jar file to the library. the project was still giving me a org.jdesktop.application does not exist error so i added the appframework-1.0.3.jar file and it fixed that issue. There seems to be no errors and the build completes successfully but nothing happens.

Here's my project
capture

info:
Windows 8.1 x64
JRE 7.1 x86 with rxtxcomm x86 files in correct folders
netbeans 7.4

Thanks.

mbed Port

If anyone is interested, I'll be porting this to mbed as an open library. The extra speed should allow us to clean things up a bit using a "floppy_drive" class instead of looping through ports and skipping even/odd indices.

I'll also be porting the java app to QT 5.1.1

OSX Mountain Lion MIDI IN issues

I've managed to put together a humble little setup of 4 drives, which play very nicely under Windows and OSX with MIDI files. This much is flawless. However, as I do not own Logic, my favorite music editing software by far is Apple's GarageBand. It has only one major flaw - it does not let you export MIDI. However, I've found a solution:

  1. Set up the Apple IAC driver with a few virtual midi cables
  2. Use the MidiO component as an instrument in GB to play the tracks to the IAC driver
  3. Start Moppy-Advanced, set to play MIDI IN from the IAC driver

Unfortunately, attempting to use the playable keyboard in GB will cause Moppy to play a single note that will never stop (until Moppy is disconnected), or a single note for about half a second before refusing to play any further notes.

I have tried using Moppy with the included MIDI synthesizers instead of connecting the floppy drives, but this does not help. The most bizarre part of this was that it was working for about 20 minutes, then suddenly when I started playing the song, each drive started playing the first note, stopped playing the first note, and, upon reaching the second note, played the first note again forever until Moppy was disconnected, and now Moppy refuses to play any notes again.

Any ideas? Suggestions? I know this is a series of terrible hacks that would just be alleviated if Apple could put such an important feature in their products, but I would expect nothing less from them. :) My suspicion is that something still thinks it is playing a note, even though I restarted everything twice.

MoppyDesk doesn't see Arduino via USB on Linux

I compiled both the Java and Arduino pieces of code in Linux, and got the Arduino code installed just fine. MoppyDesk came up, but all that's coming up is "/dev/ttyS0".

'lsusb" brings up "2341:0043", and "ls /dev/tty*" brings up "/dev/ttyACM0".

Thing is, the Arduino development software brings up both "/dev/ttyS0" and "/dev/ACM0"

Again, "/dev/ttyS0" is the motherboard's onboard serial port, and "/dev/ttyACM0" is the Arduino USB-serial adapter.

Some ideas

First it would be nice to set the highest/lowest notes for each/all drive in the interface.
Second: support for more channels (with arduino mega).
Third: i need to reconnect in the interface or reset the arduino to play a new track?! otherwise the arduino recieves data but nothing happens.

NetBeans MoppyDesk Project Run Problem

Hello,

I've been trying to get the MoppyDesk project to work in NetBeans, and it seems like it is working, but I don't get a window. If it helps, this is what the console says: 

run:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:123)
at moppydesk.MoppyMainWindow.updateComSelectionMenu(MoppyMainWindow.java:55)
at moppydesk.MoppyMainWindow.(MoppyMainWindow.java:43)
at moppydesk.MoppyUI.startup(MoppyUI.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

I'm very new at this, so please forgive me for not knowing much about this stuff.
Thanks!
-Toastdude

Getting MoppyDesk to Work in NetBeans

Hey! I'm working on a floppy drive setup with Moppy, and I'm so close I can taste it.

NetBeans throws this exception:

WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
java.lang.UnsatisfiedLinkError: C:\Windows\System32\rxtxSerial.dll: %1 is not a valid Win32 application thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Windows\System32\rxtxSerial.dll: %1 is not a valid Win32 application
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:123)
at moppydesk.MoppyMainWindow.updateComSelectionMenu(MoppyMainWindow.java:55)
at moppydesk.MoppyMainWindow.(MoppyMainWindow.java:43)
at moppydesk.MoppyUI.startup(MoppyUI.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Any help would be greatly appreciated!

Unresponsive Drives

I'm running Mac OSX Mountain Lion and have got everything up and running with the Arduino software and Netbeans and my arduino UNO is connected, but when I load a sequence and click start I get no response from the two drives which I am using. Both drives work - I have tested them - but I get only a constant 'ticking' from one drive and nothing from the other. It may be a grounding problem? I have all my ground wires coming out of a breadboard and into the single GND on the Arduino and when I fiddle with the connection to the ground I do get a tiny bit of movement from both drives.

I feel like I'm almost there but I'm struggling here just to get it all together right at the end.

Mac_OS_X VM Options

Im running Mac OS X Mavericks and I can't seem to find the right VM options and continuously get either a failed build or

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:123)
at moppydesk.outputs.MoppyCOMBridge.getAvailableCOMPorts(MoppyCOMBridge.java:113)
at moppydesk.ui.ChannelOutControl.initComponents(ChannelOutControl.java:123)
at moppydesk.ui.ChannelOutControl.(ChannelOutControl.java:31)
at moppydesk.ui.MoppyControlWindow.setupOutputControls(MoppyControlWindow.java:77)
at moppydesk.ui.MoppyControlWindow.(MoppyControlWindow.java:58)
at moppydesk.MoppyUI.startup(MoppyUI.java:50)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Im not sure if the "librxtxSerial.jnilib" file is working, or if Net beans just can't use it because of different versions. I'm extremely confused and am pretty sure that it has something to do with the VM options, Help please.

Thanks in advance.

Running on an Arduino Duemilenove?

I seem to be having an issue running the program on a Duemilenove. I believe I have set it up to the extent of my knowledge, and my wiring is good (enough). However, when I connect to the single drive (pins 2+3), select the midi output to channel 1, and play a sample song, all the drive does is tick.

I've tested manually stepping the drive and shifting direction- that all works, so the drive is not dead. But it just won't play the file, which confuses me- the only difference is the board- Would it cause an issue like this? Possibly timing?

Any input would be very helpful, thanks.

Potentially a useful tool for converting MIDIs

Hello, this isn't really an issue but I didn't know where else to post.
http://www.midi-plugins.de/mplug/mplug-splpol.html

This is a plugin called Split Poly. From reading the site it looks like exactly what we need to convert MIDI files to Moppy compatible ones. It looks for overlapping notes and pushes them to a free channel.

I'm on a Mac so can't test it (the software is Windows only), but I thought someone out there would benefit from it.

Let me know if it works! There's a demo version that'll convert the first half of the track.

Cheers,
J

Multiple Arduinos

So, I've tried using Multiple Arduinos.

It works in the sense that I can use two arduinos at once, but I cannot assign midi channels 9 through 16 to any of the drives on either arduino. Thus I can't make use of 16 floppy drives at a time.

What is to be done on this matter? I just checked the MoppyCOMBridge and the MoppyPlayerOutput files, and I'm not even sure how I'm able to use two arduinos at the same time in the first place. Also confused on the role of the ReceiverMarshaller :/

Any help is appreciated!

Software or hardware issue?

My Floppy Drive don't work well with Floppy Desk. The stepper motor does one movement sometimes, and goes next when I click on the "reset/stop" button. I think I'm near the solution, but I need a little help! Could you help me please? Sorry for my english. If something is not clear, you can ask me. Good job! It's an amazing project!

Unable to compile moppy

Hi,
I,ve copied the rxtxSerial.dll file to the java/ire7/bin folder, but I,m still getting a rxtsSerial related error on my Win XP Pro PC

"compile:
run:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:123)
at moppydesk.MoppyMainWindow.updateComSelectionMenu(MoppyMainWindow.java:56)
at moppydesk.MoppyMainWindow.(MoppyMainWindow.java:43)
at moppydesk.MoppyUI.startup(MoppyUI.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)"

What am I doing wrong?

Texy

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.