electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
Live streaming at radio.electro-music.com

  host / artist show at your time
  EdisonRex Edison's Electronic Review
Please visit the chat
 Forum index » DIY Hardware and Software » Microcontrollers and Programmable Logic
FPGA's and Development Boards
Post new topic   Reply to topic Moderators: State Machine
Page 1 of 3 [73 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: 1, 2, 3 Next
Author Message
JovianPyx



Joined: Nov 20, 2007
Posts: 1250
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Sun Jan 06, 2008 12:21 pm    Post subject: Reply with quote  Mark this post and the followings unread

Great idea, and thanks to whoever's idea it was Cool

I'd like to make a point about FPGAs here. An FPGA is not at all like a traditional DSP or microprocessor. Instead it is like an ocean of initially unconnected logic blocks which I like to call "Logic Lego". With HDL you can describe extremely complex configurations or circuits. All of the logic blocks are familiar to anyone who has played with CMOS or TTL logic devices.

With a device like a microprocessor or a PIC or AVR, etc., you write a program that performs functions in a step by step manner. A drawback of this is that it is wholly bound by time. If the device contains hardware to multiply two numbers, it usually contains just one and that hardware must be "shared" by all operations that need it. This limits the amount of work the device can do within a given period of time.

An FPGA, on the other hand, has many copies of the same basic logic circuits. When you configure them, they all work "in parallel" just like all six inverters on a CD4069 work (contrasting to a microprocessor which allows an OR function, but literally one operation at a time). These copies include internal RAMs and multipliers as well as adder/subtractors, comparators, etc. This means that you can construct circuits which take advantage of parallelism to increase speed and efficiency.

One must wrap their brain around this idea of "parallelism" which may seem slightly foreign to a traditional programmer at first. One must also get past the fact that HDLs (Hardware Definition Languages) *look* like a programming language. They are nothing of the kind. Rather they literally describe hardware.

Really, using an FPGA is more like designing a huge PCB with tons of logic on it.

And FPGAs are fast too. The one I use is capable of 200 MHz operation, but I've never needed more than the crystal clock of 50 MHz provides.

Another thing to note is that while microprocessors have fixed word size, FPGAs do not. If you need to do 128 bit arithmetic, then do it. This is an obvious efficiency point. In my own work, I've designed phase accumulator NCOs that have a 48 bit wide word size. In a microprocessor, this would take repeated use of 16 bit resources and adds complexity and size to the program. In an FPGA, it's just a matter of defining the word size of the "logic objects" that you are using.

IMO, digital synthesizers can take great advantage of the parallelism and vast resources in an FPGA. The fact that they contain several multipliers means that parallel DSP is possible. That is, you can have more than one DSP circuit in an FPGA, each operating in parallel and processing completely different signals. My own synth designs take advantage of parallelism, at the very least, the synth itself is one chunk of hardware while the MIDI controller is yet another that operates in parallel with it meaning that no care needs to be paid to whether an interrupt or other microprocessor action will degrade the audio performance of the design. In fact, my MIDI controller is just HDL code that creates a microcontroller within the FPGA which runs an assembly language program to perform MIDI functions such as "turn a specific note on".

I am not trying to disuade people from building projects using other computation capable devices, only that one should consider the FPGA, especially if the project is considered rather large. After seeing what an FPGA can do in my own lab, I am glad to have abandoned the idea of attempting similarly large projects with a microprocessor (for me, this all started with attempting to replicate the AVR-synth with a 486-133 - this would have been a monosynth with little possibility of ever becoming polyphonic). I've done 8 voice polyphony using only the on-chip resources of an FPGA and there are still unused resources within the IC.

It is my hope that more people will experiment with FPGAs for music and share their designs.

I do not work for Xilinx or any other FPGA mfr, I just think they are really cool.
Back to top
View user's profile Send private message Visit poster's website
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Sun Jan 06, 2008 6:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

Scott,

Well written and thank you for the insight on this remarkable subject Very Happy

Quote:
I do not work for Xilinx or any other FPGA mfr, I just think they are really cool.


Well that makes two of us Very Happy

Quote:
it is my hope that more people will experiment with FPGAs for music and share their designs.


Well, I am purchasing a Spartan 3E starter kit. This is is the recommended, and a very good one, development board that will suit design efforts involving audio synthesis and manipulation of audio. I believe this is the platform you are running Scott?

Here is a link to purchase one:

http://www.nuhorizons.com/xilinx/boards/spartan-3/SP3eStarterKit/index.asp

Here is a ink to the boards documentation in case others are interested:

http://www.xilinx.com/support/documentation/spartan-3e_board_and_kit_documentation.htm

The Spartan 3E kit is pictured below ......

There is plenty of DDR RAM (16 MB), FLASH Memory, a BIG FPGA, (2) 14 bit - A/D's and quad 12 bit DAC !! Among many other cool attributes !!

I also just got this Coolrunner II board also from Avnet ........ This board is shown below the Spartan 3E board .......

The Coolrunner II is great for smaller projects that are less "math" intensive and thus does not have the hardware multipliers but you can embed the Picoblaze 8 bit MCU in this thing and it's great for very low power applications .....

Bill


image63209.jpg
 Description:
 Filesize:  88.72 KB
 Viewed:  129 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

image63209.jpg



image99920.gif
 Description:
 Filesize:  95.35 KB
 Viewed:  142 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

image99920.gif


Back to top
View user's profile Send private message Send e-mail
Uncle Krunkus
Moderator


Joined: Jul 11, 2005
Posts: 4760
Location: Sydney, Australia
Audio files: 52
G2 patch files: 1

PostPosted: Sun Jan 06, 2008 11:49 pm    Post subject: Reply with quote  Mark this post and the followings unread

Are these programmers, or do you need one of these for every project?

PS I know that is possibly a silly question to those who know this stuff, but I just wanted to check.

_________________
What makes a space ours, is what we put there, and what we do there.
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1250
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Mon Jan 07, 2008 7:02 am    Post subject: Reply with quote  Mark this post and the followings unread

Uncle Krunkus wrote:
Are these programmers, or do you need one of these for every project?


I can't say for the CoolRunner board, but the FPGA (Starter Kit) board is a development board. An FPGA is RAM based, so it must be programmed each time it is powered up. You cannot program an FPGA in one board and drop it into another circuit like you do with a PIC. In fact, the FPGA on the Starter Kit board has a grid of 320 contact balls on the bottom and as far as I know, this must be soldered so the FPGA cannot be removed once it's installed. The dev board that I use (the same one pictured above) contains an FPGA and a whole lot of useful doodads for developers. Among them are (as mentioned) the DAC and ADC, an SDRAM (which I believe is 32 megabytes, not 16) etc. I have 4 of these boards because each one can be a synthesizer (or audio effect)

What would be extremely cool is if someone would put together an FPGA development board that is geared more toward audio than general purpose use as the Xilinx board is. We don't need VGA or Ethernet for example, but a big static RAM would be nice. And the 12 bit DAC, while servicable and quite musically useful would be nice if it were 16 or 24 bits. BTW, one nice thing about the DAC chosen for this board is that it can operate at an update rate as fast as 1.0 MHz. As I may have said before (old man memory), all I had to add to the starter kit board was a resistor and cap for the DAC output to audio monitor circuit and a 6N138 with 2 resistors for the MIDI input.

I might also mention that an FPGA is not strictly for MIDI. If the ADC is used as CV and audio inputs, an FPGA (even on a dev board) can be incorporated in a modular.

Also, because an FPGA is RAM based, it is easily reused simply by pushing another bit file into it. So you can do one piece with synth-A and another piece with synth-B using the same board. As far as gigging goes, the Starter Kit board has a platform flash IC that reprograms the FPGA at startup. You can (and I have) stored a synth in that platform flash so that it powers up as a synth I use often. This means that if you have such a favorite design, you can gig with it without having to bring a computer to the gig.

I hope this helps. dalek <- heh, a Dalek!
Back to top
View user's profile Send private message Visit poster's website
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 7:44 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
We don't need VGA or Ethernet for example


Really? Maybe the VGA may become useful at some point to develop a simple user feedback? I know that lots of IP exists in "FPGA Arcade" that utilizes the VGA. It might be a good thing to have. Very Happy Maybe even at "open_cores" website.

I agree on the data converters. It would have been nice to have at least 16 bit converters onboard the Spartan 3E development board.

Oh, BTW, the Coolrunner II is flash memory based, unlike the RAM based FPGA's, so the configuration data resides on chip. So this IC does not require an external bit configuration EEPROM. The Coolrunner II however can be reprogrammed many many times over so you can reconfigue this IC when desired to change it's function.

Bill
Back to top
View user's profile Send private message Send e-mail
Scott Stites
Janitor
Janitor


Joined: Dec 23, 2005
Posts: 4121
Location: Mount Hope, KS USA
Audio files: 96

PostPosted: Mon Jan 07, 2008 7:45 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks indeed for that write-up, Scott. I learned a heckuva lot right there. I guess the first step is to really understand what the device is, and that certainly widened my pathetically thin knowledge of what an FPGA is and how it works. Uncle K already asked my first question. Very Happy

It's odd that I work with instruments that incorporate FPGAs in a big way, but I have such a dim understanding of them. It's exciting to think of a vast plain of logic gates waiting to be configured and told what to do, though the aspect of learning and using the code to control it is still a bit daunting to me.

My quest would be to create an interface to convert control voltages to MIDI data. I know Analogue Solutions (or is it Analogue Systems? - one of those Analogues, anyway) has done it, but it would be really cool to custom build one. I can't imagine applying all of the groovy control surfaces of a modular (like Ian's chaotic circuits or the Klee, or both) to MIDI controlled synths, even VAs. I think that would open up worlds for me.

I suppose such an endeavour would require something greater than 12 bits, but, again, I suppose there's nothing stopping one from adding higher resolution ADC/DAC's to the inputs and outpts of the FPGA, no?

Cheers and thanks for the new forum, electro-music.

Scott

_________________
My Site
Back to top
View user's profile Send private message
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 7:52 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Are these programmers, or do you need one of these for every project?


The Spartan board requires a downloader cable such as a Multilinx or something to get a bit configuration into the configuration EEPROM. For debug, you can just load the FPGA directly to test your design. When your done debugging, then you can commit the configuration to the EEPROM.
Each time the board is powered up, the FPGA bitstream is loaded into the device from the EEPROM so there will be a short delay of several milliseconds before the FPGA is ready to work. No big deal in most cases. The programming interface for this board is a program called IMPACT which is part of the development package that comes with the board.

The Coolrunner II board just requires a USB cable and there is a processor on the flip side of this board, nort shown in the picture, that receives and sorts the USB data out and programs the CPLD on the board.

Hope this helps further for you .........
Bill
Back to top
View user's profile Send private message Send e-mail
JovianPyx



Joined: Nov 20, 2007
Posts: 1250
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Mon Jan 07, 2008 7:56 am    Post subject: Reply with quote  Mark this post and the followings unread

State Machine wrote:
Quote:
We don't need VGA or Ethernet for example


Really? Maybe the VGA may become useful at some point to develop a simple user feedback? I know that lots of IP exists in "FPGA Arcade" that utilizes the VGA. It might be a good thing to have. Very Happy Maybe even at "open_cores" website.


Actually, yes, VGA could be useful. Parameter navigation in a complex design would be easier with VGA (and there's a mouse/keyboard port too). than using the 2 line 16 character LCD. Bear in mind, however, that the "hardware" supplied for VGA is nothing more than several FPGA pins connected to the VGA socket through resistors - that's it - there's no intelligent VGA chip - you have to provide all of the driving logic in the FPGA. When I got my first board, I downloaded a free demo bit file that contains a full blown implementation of Space Invaders...

In my work, I haven't tried to use the VGA at all. I've used the LCD for minimal important information for the user. The designs I have that are complex enough to need full screen parameter navigation I did with a VB program sending data over a serial link (or alternatively MIDI via system exclusive).
Back to top
View user's profile Send private message Visit poster's website
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20681
Location: The Netherlands, Enschede
Audio files: 156
G2 patch files: 318

PostPosted: Mon Jan 07, 2008 7:58 am    Post subject: Reply with quote  Mark this post and the followings unread

I think OSC over ethernet would be very worthwhile Very Happy
_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1250
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Mon Jan 07, 2008 8:05 am    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:
I think OSC over ethernet would be very worthwhile Very Happy


Well then, see what I know? Rolling Eyes

Someone on some forum I'm on has thought about using Ethernet instead of MIDI as an instrument/sequencer interconnect, but other than "thinking", I've seen nothing.

What is "OSC" ?

Anyway, the board has the basic audio parts and has "extra" stuff on it that (apparently) eveyone can use. Heck, I use a serial port on my synths because writing code for VB to inject messages into a MIDI stream is a total mystery to me - and the serial port is actually faster than MIDI (I use 115.2 Kbaud).
Back to top
View user's profile Send private message Visit poster's website
DrJustice



Joined: Sep 13, 2004
Posts: 2052
Location: Morokulien
Audio files: 3

PostPosted: Mon Jan 07, 2008 8:11 am    Post subject: Reply with quote  Mark this post and the followings unread

Folks, perhaps this welcome thread should be split off at the FPGA-point?

And yeah, OSC over ethernet is cool but sadly underused - it ought to be the new music industry standard! In a programmable logic device OSC really needs a CPU core, because of the protocol complexity (it's actually very simple, but would probably use far too many gates if implemented as a straight up state machine).

@ ScottG : here's some electro-music.com OSC talk.

DJ
--
Back to top
View user's profile Send private message Visit poster's website
Junk Rhythm



Joined: Jan 07, 2008
Posts: 81
Location: San Francisco, CA

PostPosted: Mon Jan 07, 2008 8:38 am    Post subject: Reply with quote  Mark this post and the followings unread

Thank you for this sub-forum. I have lurked on this site for a long time and this forum was the last straw forcing me to finally register.
_________________
[twitter] [blog] [flickr] [toppobrillo] [buzz]
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20681
Location: The Netherlands, Enschede
Audio files: 156
G2 patch files: 318

PostPosted: Mon Jan 07, 2008 8:41 am    Post subject: Reply with quote  Mark this post and the followings unread

DrJustice wrote:
Folks, perhaps this welcome thread should be split off at the FPGA-point?


Well ... yes of course ... but there are some more subjects even ... already ... but indeed the idea of having a subforum was to have multiple message threads Laughing

I'll leave it to the moderator Very Happy

_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20681
Location: The Netherlands, Enschede
Audio files: 156
G2 patch files: 318

PostPosted: Mon Jan 07, 2008 8:42 am    Post subject: Reply with quote  Mark this post and the followings unread

g.p.macklin wrote:
last straw


welcome

_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 10:32 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Well ... yes of course ... but there are some more subjects even ... already ... but indeed the idea of having a subforum was to have multiple message threads

I'll leave it to the moderator


Yes, this thread probably could be split into two, or more. I would encourage anyone with a new topics to post in a separate thread. Unless of course you are posting to say "hey great subforum" or something like that. Very Happy I will look this evening to see what I can do. I also have to move some stuff over to this subforum that appeared in the DIY area that really is more suitable here.

OK, so, if you have a question or project, please start a new topic .... Wink

Bill
Back to top
View user's profile Send private message Send e-mail
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 10:34 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
I have lurked on this site for a long time and this forum was the last straw forcing me to finally register


Hey, Welcome sir!! Glad to hear that we are attracting new members due to the subforum ..... Expansion is always welcomed !

Bill
Back to top
View user's profile Send private message Send e-mail
bugfight



Joined: Aug 02, 2007
Posts: 188
Location: Arlington, TX USA

PostPosted: Mon Jan 07, 2008 1:10 pm    Post subject:
Subject description: Spartan FPGA
Reply with quote  Mark this post and the followings unread

alright, i feel myself getting sucked into the fpga thing now...
but wouldn't the Spartan 3A DSP be better than the 3e for audio applications?
Back to top
View user's profile Send private message
frijitz



Joined: May 04, 2007
Posts: 1712
Location: NM USA
Audio files: 54

PostPosted: Mon Jan 07, 2008 2:15 pm    Post subject: Reply with quote  Mark this post and the followings unread

ScottG wrote:
It is my hope that more people will experiment with FPGAs for music and share their designs.

Thanks for the great post, Scott. This is just the kind of information we beginners need to understand the capabilities of these interesting systems.

Can the flash part be removed to pop in different instruments, or does it need to be reprogrammed for that?

Very Happy

Ian
Back to top
View user's profile Send private message
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 2:31 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Bear in mind, however, that the "hardware" supplied for VGA is nothing more than several FPGA pins connected to the VGA socket through resistors - that's it - there's no intelligent VGA chip


Yup, I am aware of that. Thanks ........ Very Happy This is the reason why I mentioned that IP exists for VGA controllers so you would not have to "roll your own" from scratch .... Thanks

Bill
Back to top
View user's profile Send private message Send e-mail
frijitz



Joined: May 04, 2007
Posts: 1712
Location: NM USA
Audio files: 54

PostPosted: Mon Jan 07, 2008 3:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

Scott Stites wrote:
My quest would be to create an interface to convert control voltages to MIDI data. I know Analogue Solutions (or is it Analogue Systems? - one of those Analogues, anyway) has done it, but it would be really cool to custom build one. I can't imagine applying all of the groovy control surfaces of a modular (like Ian's chaotic circuits or the Klee, or both) to MIDI controlled synths, even VAs. I think that would open up worlds for me.

Hi Scott --

I'm interested in exactly the same thing. In fact, I upgraded my PIC programming system and bought some more up-to-date PICs to do just this. No time for it so far though.

I have a little bit of experience in this area from building my wind controller to MIDI interface. Since MIDI is built around the note on - note off concept, incorporating continuous signals is a challenge. There are the MIDI CC control commands, of course, but how useful these are depends on how the synth itself incorporates them.

For example, I can send MIDI Breath data to my Roland JV box, but since they don't do any data interpolation or smoothing, there is a significant amount of zippering noise. I haven't even thought about how to incorporate three anaolg signals from a chaotic flow system into running a MIDI synth.

Also, you have to think about what admixture of "event" and "flow" data you want to send. In fact, you may very well want this to be easily reconfigurable. And again how you go about this may depend on the device you are sending the data to. This may make it difficult to come up with a generally useful system.

Maybe we should think about a separate thread for this topic at some point?

Very Happy

Ian
Back to top
View user's profile Send private message
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 4:51 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
My quest would be to create an interface to convert control voltages to MIDI data. I know Analogue Solutions (or is it Analogue Systems? - one of those Analogues, anyway) has done it, but it would be really cool to custom build one. I can't imagine applying all of the groovy control surfaces of a modular (like Ian's chaotic circuits or the Klee, or both) to MIDI controlled synths, even VAs. I think that would open up worlds for me.

I suppose such an endeavour would require something greater than 12 bits, but, again, I suppose there's nothing stopping one from adding higher resolution ADC/DAC's to the inputs and outpts of the FPGA, no?



Quote:
There are the MIDI CC control commands, of course, but how useful these are depends on how the synth itself incorporates them.


As Ian said, it would depend on how the MIDI instrument will interpret MIDI continuous controllers. The MIDI implementation chart should tell you that. Most control parameters use a 7 bit control value but some can be up to 14 bits in resolution. For example, CC #'s 0-31 can be paired with CC #'s 32-63 to form a 14-bit control value. As an example, CC 0 can be the MSB (Most Sig. byte) while CC 32 can be the LSB (Least Significant Byte) to form the 14 bit word. Of course you have to send 6 bytes of data to convey this. Total transmission time for a 14 bit CC is about 2 milliseconds. If controller numbers 0-31 or 32-63 are sent alone, then the controller value is meant to be only 7 bits. The key point here is that when you select your data converter, the best scenario would be to go with 14 bits just in case your MIDI receiving device can use these higher resolution controllers. You can compromise and use A/D's with lower resolutions.

The PIC series of MCU's support up to 12 bit A/D's in their DSC family. All the others support up to only 10 bits. If that if not enough, then a discrete IC approach may be the best thing in terms of selecting an A/D.

Bill

Last edited by State Machine on Mon Jan 07, 2008 4:57 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 4:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
alright, i feel myself getting sucked into the fpga thing now...
but wouldn't the Spartan 3A DSP be better than the 3e for audio applications?


Off hand, how does it differ? I know the 3E is $150.00 while the 3A is $230.00. I figured I would save myself from going to the website Very Happy Very Happy

I just purchased a 3E Board from "NU Horizons Electronics" .... Cool

Bill
Back to top
View user's profile Send private message Send e-mail
bugfight



Joined: Aug 02, 2007
Posts: 188
Location: Arlington, TX USA

PostPosted: Mon Jan 07, 2008 5:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

State Machine wrote:
Quote:
alright, i feel myself getting sucked into the fpga thing now...
but wouldn't the Spartan 3A DSP be better than the 3e for audio applications?


Off hand, how does it differ? I know the 3E is $150.00 while the 3A is $230.00. I figured I would save myself from going to the website Very Happy Very Happy

I just purchased a 3E Board from "NU Horizons Electronics" .... Cool

Bill


i almost ordered the 3e this weekend, but foolishly started looking at the other offerings...

the 3A DSP version developer brd is what i was thinking of, which seems to have more of everything (gates, ram, flash, etc) plus dedicated dsp. it is twice as much though, at $300. this will be my first adventure in fpga, so i may well be missing something...
Back to top
View user's profile Send private message
frijitz



Joined: May 04, 2007
Posts: 1712
Location: NM USA
Audio files: 54

PostPosted: Mon Jan 07, 2008 6:37 pm    Post subject: Reply with quote  Mark this post and the followings unread

State Machine wrote:
Most control parameters use a 7 bit control value but some can be up to 14 bits in resolution. For example, CC #'s 0-31 can be paired with CC #'s 32-63 to form a 14-bit control value. As an example, CC 0 can be the MSB (Most Sig. byte) while CC 32 can be the LSB (Least Significant Byte) to form the 14 bit word. Of course you have to send 6 bytes of data to convey this. Total transmission time for a 14 bit CC is about 2 milliseconds. If controller numbers 0-31 or 32-63 are sent alone, then the controller value is meant to be only 7 bits. The key point here is that when you select your data converter, the best scenario would be to go with 14 bits just in case your MIDI receiving device can use these higher resolution controllers. You can compromise and use A/D's with lower resolutions.

That's a good, thorough explanation, Bill. I would emphasize that you may not need the full 14 bits even when it is available, i.e., you could use just 3 bits for the second half of the data to get 10 bit resolution. Just from my limited experience I would say that this is usually enough for control applications. In fact, eight is often acceptable.

But the main point to take away is that whatever your interface is, it needs to either take explicit account of the specific instrument you are going to use it with, or it needs to have a fair amount of configurability.

In my PIC-based system, the configuration is set by several switches, which the system examines at startup and sets a set of flags to appropriate values. The operational logic is dependent on these flags. I'd be interested in learning about how you would do this with a FPGA. Obviously you could do it by having a different programming for each configuration you need, but something more general in one program would be more useful, it seems to me.

Great discussion!

Very Happy

Ian

Last edited by frijitz on Mon Jan 07, 2008 8:16 pm; edited 1 time in total
Back to top
View user's profile Send private message
State Machine
Janitor
Janitor


Joined: Apr 17, 2006
Posts: 2747
Location: New York
Audio files: 24

PostPosted: Mon Jan 07, 2008 7:35 pm    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
That's a good, thorough explanation, Bill. I would emphasize that you may not need the full 14 bits even when it is available, i.e., you could use just 3 bits for the second half of the data to get 10 bit resolution. Just from my limited experience I would say that this is usually enough for control applications. In fact, eight is often acceptable.


Yes, 10 bits would most likely give you enough resolution to accomplish most control tasks with a fine enough granularity. If going with a PIC, then probably the 18F series may be a good choice Very Happy They sport multi channel 10 bit A/D converter.

Quote:
But the main point to take away is that whatever your interface is, it needs to either take explicit account of the specific instrument you are going to use it with, or it needs to have a fair amount of configurability.


Yes, that I agree with. A bit of "over design" may be good in some instances.

Quote:
In my PIC-based system, the configuration is set by several switches, which the system examines at startup and sets a set of flage to appropriate values. The operational logic is dependent on these flags. I'd be interested in learning about how you would do this with a FPGA. Obviously you could do it by having a different programming for each configuration you need, but something more general in one program would be more useful, it seems to me.


Here is a good application note explaining a method to multiboot an FPGA that you may be interested to read. I found it to be very useful .... Very Happy Very Happy

Quote:
Great discussion!


Yes it is. I guess we need Scott Stites to give of us maybe more specifics of this "CV to MIDI" so that we can further zero in on a target Very Happy For example, does Scott want to control his Roland SH-201. If so, what messages does it support. ?

Bill


xapp483.pdf
 Description:

Download
 Filename:  xapp483.pdf
 Filesize:  279.55 KB
 Downloaded:  159 Time(s)

Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic Moderators: State Machine
Page 1 of 3 [73 Posts]
View unread posts
View new posts in the last week
Goto page: 1, 2, 3 Next
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » Microcontrollers and Programmable Logic
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
e-m mkii

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use