A mirror of SoundHelix, the software MadHelix is based on.

[[ 🗃 ^zoKmE soundhelix ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Commits]

Clone

HTTPS: git clone https://vervis.peers.community/repos/zoKmE

SSH: git clone USERNAME@vervis.peers.community:zoKmE

Branches

Tags

soundhelix-0.0.4 :: doc /

FAQ.txt

SoundHelix
----------

Author: Thomas Schürger (thomas@schuerger.com)


Frequently Asked Questions
--------------------------

1. SoundHelix complains about the MIDI device. What can I do?

Depending on your platform, the names of the available MIDI devices can vary.
This is true even between different Windows platforms. For example, the
standard Windows MIDI device is called "Microsoft GS Wavetable SW Synth" on
Windows XP, but is called "Microsoft GS Wavetable Synth" on Windows 7.

You can change the MIDI device to use in the XML file (look for the <device>
tag). The tag defines a comma-separated list of MIDI devices to try to open.
SoundHelix will use the first MIDI device in the list that is available on your
system. If none of the MIDI devices are available, an exception will be shown
where the available MIDI devices are listed. You can then adapt the list of
MIDI devices in the XML file accordingly.

The standard MIDI device that is available in Java on all platforms is the
"Java Sound Synthesizer" device. This device provides a software synthesizer
that is compatible with the General MIDI standard. Please read FAQ entry #2.


2. I'm using the MIDI device "Java Sound Synthesizer", but I can't hear anything. Why?

If you are using the standard MIDI device "Java Sound Synthesizer", please make
sure that a MIDI soundbank file is available. Otherwise the device will pretend
it's playing something but it will just remain silent. Please read the
following document about instructions how to download and install such a file:
http://java.sun.com/products/java-media/sound/soundbanks.html


3. What is the "groove" tag for?

The MidiPlayer device supports a "groove" tag. This tag defines the timing of
how the ticks are played. If it includes a single positive number,
the ticks are played with uniform, equal length. If you provide more than one
value (comma-separated), the tick lengths are played using these numbers as
ratios, repeating this pattern in a round-robin manner. For example, if you use
"2,1", then every even tick (ticks are counted from 0) is played using 133% of
its standard length and every odd tick is played using 66% of the standard
length, giving a ratio of 2:1. This will make playing more groovy (try it
out!). Of course, larger numbers and more numbers are possible as well (e.g.,
"120,80", or "120,80,110,90").


4. I like a specific song. Can I generate the exact same song again later?

Yes, at least if you are using the same XML file later and are using the same
version of SoundHelix. Simply record the logged song name and start SoundHelix
with the XML file as the first parameter and the song name (in quotes) as the
second parameter. For example, run 'run.bat examples/SoundHelix-Piano.xml "The
angry cat"' if the logged song name was "The angry cat". Alternatively, you can
record the name as the second parameter. You can start SoundHelix with any song
name (even with song names that cannot be generated by the configured
SongNameEngine) and can recreate the same song later by specifying the same
song name.


5. Playing seems to hang a bit every now and then. Why?

SoundHelix uses a custom real-time MIDI player for playing songs. The created
thread for MIDI playback is given high priority. Still, it is possible that
your system sometimes is too busy for playing the notes with exactly the correct
timing. If that happens, SoundHelix will notice this and will try to "catch up"
to the correct timing again as soon as it can. So if a note was played with a
delay, SoundHelix tries to reduce the delay of the next note by the same amount
to correct that timing glitch. This way, SoundHelix keeps the overall timing
accurate.


6. Why is only one example provided?

Creating good examples is quite a bit of work. If you have created an example
yourself, you can send me that example and I will consider adding your example
in the next release.


[See repo JSON]