473,408 Members | 2,734 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,408 software developers and data experts.

Improvements to existing code

Hi all,
There is a powerful software synthesizer available today, but it lacks
a few key features. It's been awhile since I've coded, but was wonder
if anybody would be interested in a collaboration on this project?

http://sourceforge.net/projects/zynaddsubfx

One of the main things this synth needs is a way to accept Program
Changes within a bank. There are some revisions initially set up in
the software, but no routines have been written to handle the request.

Snippet from ZynAddSubFX/src/Seq/MidiFile.C:

case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;

I understand some coding, but I'm a little rusty. Any thoughts on
this?

-NexxuSix

Jul 5 '07 #1
7 1165
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:

case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;

I understand some coding, but I'm a little rusty. Any thoughts on
this?
It is not valid C++, if that's what you wanted to ask.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jul 5 '07 #2
On Jul 5, 7:41 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote:
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:
case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;
I understand some coding, but I'm a little rusty. Any thoughts on
this?

It is not valid C++, if that's what you wanted to ask.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Well, I don't know if this makes a difference, but this is the source
code that is written with g++ for Linux. Source code should be source
code, no matter what the compiler is, I suppose. What I was hoping was
to soo if anybodt might be interested in helping co-author a routine
for ZynAddSubFX so that it can change programs within a bank. Would
anybody be interested in partnering with me on this project?

-Nexx

Jul 5 '07 #3
NexxuSix wrote:
On Jul 5, 7:41 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote:
>NexxuSix wrote:
>>[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:
>> case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;
>>I understand some coding, but I'm a little rusty. Any thoughts on
this?

It is not valid C++, if that's what you wanted to ask.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask

Well, I don't know if this makes a difference, but this is the source
code that is written with g++ for Linux.
Of course it does. Most likely whoever wrote it relied on certain C++
*extensions* in g++ (and plenty of those there are, I might add).
Source code should be source
code, no matter what the compiler is, I suppose.
You're absolutely right. It *should*.
What I was hoping was
to soo if anybodt might be interested in helping co-author a routine
for ZynAddSubFX so that it can change programs within a bank. Would
anybody be interested in partnering with me on this project?
I don't know. I am not, though.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jul 5 '07 #4
NexxuSix wrote:
On Jul 5, 7:41 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote:
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:
case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;
I understand some coding, but I'm a little rusty. Any thoughts on
this?
It is not valid C++, if that's what you wanted to ask.
Well, I don't know if this makes a difference, but this is the source
code that is written with g++ for Linux. Source code should be source
code, no matter what the compiler is, I suppose.

Many compilers provide various extensions to the language. These
extensions are non-standard and off-topic here. The case range you show
in the original is one such extension.

I believe g++ provides compiler flags to force it into a conforming
mode, which would disallow or warn such extensions.


Brian
Jul 5 '07 #5

Victor Bazarov <v.********@comAcast.netwrote in message
news:f6**********@news.datemas.de...
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:

case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;

I understand some coding, but I'm a little rusty. Any thoughts on
this?

It is not valid C++, if that's what you wanted to ask.
GCC has an extension that does case ranges. And yes, it bit me once!

OP: Invoke g++ with -ansi -pedantic, and you should get an error out of it.
(assuming you use GCC)

case 0xc0:
case 0xc1:
// .....
case 0xce:
case 0xcf: { /* body here */ skipnbytes(1); break; }

--
Bob R
POVrookie
Jul 5 '07 #6
On Jul 5, 7:45 pm, NexxuSix <Nexxu...@gmail.comwrote:
On Jul 5, 7:41 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote:
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:
case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;
I understand some coding, but I'm a little rusty. Any thoughts on
this?
It is not valid C++, if that's what you wanted to ask.
Well, I don't know if this makes a difference, but this is the source
code that is written with g++ for Linux. Source code should be source
code, no matter what the compiler is, I suppose.
It depends. C++ source code should be C++ source code, no
matter what the compiler is. But as Victor pointed out, the
above is not C++. When g++ is invoked as a C++ compiler ("g++
-std=c++98 -pedantic"), it doesn't compile with g++. (Like most
compilers, when invoked without special options, g++ compiles a
language of its own, somewhat similar to C++, but not exactly
the same language.)

--
James Kanze (GABI Software) email:ja*********@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Jul 6 '07 #7
On Jul 6, 4:56 am, James Kanze <james.ka...@gmail.comwrote:
On Jul 5, 7:45 pm, NexxuSix <Nexxu...@gmail.comwrote:
On Jul 5, 7:41 am, "Victor Bazarov" <v.Abaza...@comAcast.netwrote:
NexxuSix wrote:
[..]
Snippet from ZynAddSubFX/src/Seq/MidiFile.C:
case 0xc0 ... 0xcf://program change - ignored
skipnbytes(1);
break;
I understand some coding, but I'm a little rusty. Any thoughts on
this?
It is not valid C++, if that's what you wanted to ask.
Well, I don't know if this makes a difference, but this is the source
code that is written with g++ for Linux. Source code should be source
code, no matter what the compiler is, I suppose.

It depends. C++ source code should be C++ source code, no
matter what the compiler is. But as Victor pointed out, the
above is not C++. When g++ is invoked as a C++ compiler ("g++
-std=c++98 -pedantic"), it doesn't compile with g++. (Like most
compilers, when invoked without special options, g++ compiles a
language of its own, somewhat similar to C++, but not exactly
the same language.)

--
James Kanze (GABI Software) email:james.ka...@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Ahh... so, in other words, g++ will compile the c++ to a linux
derivitive. I think I'm starting to understand all of this. Well...
the other thing (and to update this thread) is, that I've asked Paul
Nasca to consider updating his code, but so far, nothing. And, I don't
think anybody out on Google Summer of Code has taken consideration as
well. So I'm told that because this Synth is a real time synth, it
might not be possible at all, without stopping the sound first to
change a patch. Well, it would be nice if this was possible, because
ZynAddSubFX has a lot of potential.... and it's a very powerful synth.
I could only hope that Paul Nasca would consider updating the code...
but it seems unlikely... hence the reason I am "here" asking for help.

Jul 13 '07 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

23
by: Rotem | last post by:
Hi, while working on something in my current project I have made several improvements to the logging package in Python, two of them are worth mentioning: 1. addition of a logging record field...
2
by: Bennett Smith | last post by:
Could anyone within Microsoft comment on the status of the XmlResolver class in upcoming versions of the .NET framework? I am particularly interested in hearing about any improvements in how...
3
by: The Frog | last post by:
Hi everyone, I am trying to refine some ADO code that is used to extract data from excel spreadsheets and do a simple ETL type process to place the data into a table. The code works fine and is...
71
by: Jack | last post by:
I understand that the standard Python distribution is considered the C-Python. Howerver, the current C-Python is really a combination of C and Python implementation. There are about 2000 Python...
11
by: =?Utf-8?B?Z3V5?= | last post by:
Just a though but three trivial changes which I would like to see in VB:- 1- Make Null a synonym for Nothing, progressively phasing Nothing out, you have to know null anyway so why not use it in...
8
by: Grizlyk | last post by:
To continue some ideas of "C++ Archeology: Limits of OO paradigm", i want to ask about C++ development. There are C++ compilers, that has been written in old good C. Are C or pascal perfect...
1
by: Frank Rizzo | last post by:
According to ScottGu, Winforms will experience some cold startup improvements following the installation of .net 3.5 sp1. That's due the way pages are loaded from disk. Does anyone know whether...
18
by: maxhugen | last post by:
I have an Access app (split into FE and BE) running for some years, that is now also being used in a second office, connected by a WAN. This office has network problems, as it's over-utilized (97%...
0
by: Orestis Markou | last post by:
I'm very proud to announce the release of PySmell v0.7.2, now with extra goodness. Changes: * TextMate's dialog no longer errors when dealing with a huge number of entries. * New --input...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.