Jump to content

cedd

Regular Members
  • Posts

    2,429
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by cedd

  1. Thank you so much Alister. I'm going to try it tomorrow with the 2 bytes as constants rather than being read from the midi input - I'm wondering if there's something quirky going on that's different between live values like I have, and simulated ones like you have. I've got Bome's Send SX software running on my laptop and am sending the value to the teensy that way.
  2. Understood and changed. It's now returning 64639 (or 1111110001111111) as 16 bit or -2004288385 in 32 bit. Why did Roland decide you'd need this much resolution on an aux send, when the channel faders are done with a simple 0-127!?
  3. That looked so promising, but alas it's still just returning 15487 when I try and send 0x78 and 0x77, which should be -905. The code now looks like this with the additions from above. I've done some Serial Prints in binary as well, just to see if seeing the bits themselves creates any clues. I'll just post the returned results next to the serial prints for ease. void receivemidi(const byte *a, uint16_t sizeofsysex, bool last){ const byte *received = MIDI.getSysExArray(); if(received[6] == 0x12){ //it's a Data set Serial.println("data set"); if(received[7] == 0x04 && received[9] == 0x12){ //it's aux data Serial.println("aux data"); if (received[10] == auxnumber){ //it's for my aux int chan = received[8]+1; Serial.println(chan); byte rxhigh_part = received[11]; byte rxlow_part = received[12]; Serial.print(rxhigh_part,HEX); 0x78 Serial.print(" : "); Serial.println(rxlow_part,HEX); 0x7F Serial.print(rxhigh_part,BIN); 1111000 Serial.print(" : "); Serial.println(rxlow_part,BIN); 1111111 int val = ((rxhigh_part&0x7F)<<7)|(rxlow_part&0x7F); if(val&0*2000)val|=0xC000; Serial.println(val,DEC); 15487 Serial.println(val,HEX); 0x3C7F Serial.println(val,BIN); 11110001111111 val = map(val,-905,100,0,127); channelvals[received[8]]=val; } } }
  4. That looked so promising, but alas it's still just returning 15487 when I try and send 0x78 and 0x77, which should be -905. The code now looks like this with the additions from above. I've done some Serial Prints in binary as well, just to see if seeing the bits themselves creates any clues. I'll just post the returned results next to the serial prints for ease. Edit to add - I tried the 32 bit version too void receivemidi(const byte *a, uint16_t sizeofsysex, bool last){ const byte *received = MIDI.getSysExArray(); if(received[6] == 0x12){ //it's a Data set Serial.println("data set"); if(received[7] == 0x04 && received[9] == 0x12){ //it's aux data Serial.println("aux data"); if (received[10] == auxnumber){ //it's for my aux int chan = received[8]+1; Serial.println(chan); byte rxhigh_part = received[11]; byte rxlow_part = received[12]; Serial.print(rxhigh_part,HEX); 0x78 Serial.print(" : "); Serial.println(rxlow_part,HEX); 0x7F Serial.print(rxhigh_part,BIN); 1111000 Serial.print(" : "); Serial.println(rxlow_part,BIN); 1111111 int val = ((rxhigh_part&0x7F)<<7)|(rxlow_part&0x7F); if(val&0*2000)val|=0xC000; Serial.println(val,DEC); 15487 Serial.println(val,HEX); 0x3C7F Serial.println(val,BIN); 11110001111111 val = map(val,-905,100,0,127); channelvals[received[8]]=val; } } }
  5. Just tried that and whilst it did change the values, it didn't make them right. Now using Alister's method above, I send it 0x78 and 0x77 (-905 - fader should be to the bottom) and it returns 15487. That's with the Serial Print before the mapping (so it's the raw 16 bit number). If I send it 0x0 and 0x64 (100 - fader should be at the top) it returns 100, so the top end is working fine, but it looks like once it goes negative, it all goes wrong.
  6. Final question (I hope!); I thought I'd nailed the code for receiving the sysex, but the reverse of the above procedure isn't working. Again I think I'm 90% there, but the integer it's spitting out just isn't correct. Would you mind casting an eye over my code and telling me what stupid mistake I've made? I'll add that this code has been messed about with in order to try and get this working. int's have been changed to int16_t's, I've tried adding masks to both hex values (although I don't think I need it on the lower byte). There are lots of unnecessary Serial Prints in here for debugging purposes. The incoming sysex goes in to an array named "received", and I then use a nest of If statements to decide what to do with it (there will eventually be incoming name data as well, so I need to correctly discern what's coming in). I'm sending a hex string in to the teensy (one that I've sent previously, and have checked it's fine). The correct bytes print out when I print the high and low bytes. It's just the maths to switch it back to a signed integer. I'm then mapping it back to 0-127, though the problem is before this step. The +1 on the chan value is because the sysex uses channels starting at 0, whereas I and the user am using chanels starting at 1. I stick the final calculated value in an array called channelvals. Any help hugely appreciated! void receivemidi(const byte *a, uint16_t sizeofsysex, bool last){ const byte *received = MIDI.getSysExArray(); if(received[6] == 0x12){ //it's a Data set Serial.println("data set"); if(received[7] == 0x04 && received[9] == 0x12){ //it's aux data Serial.println("aux data"); if (received[10] == auxnumber){ //it's for my aux int chan = received[8]+1; Serial.println(chan); byte rxhigh_part = received[11]; byte rxlow_part = received[12]; Serial.print(rxhigh_part,HEX); Serial.print(" : "); Serial.println(rxlow_part,HEX); int val = (rxhigh_part*127)&0x7f + rxlow_part&0x7f; Serial.println(val); val = map(val,-905,100,0,127); channelvals[received[8]]=val; } } } }
  7. You, gentlemen, are wonderful! Tested tonight and it's working a treat. I just need to map it logarithmically as the bottom end of the fader is painfully slow, but that is pretty straightforward. Have also worked out how to decide a received sysex to update my remote unit values with what's actually in the desk (which I'll do on Arduino startup, and then just track changes). I can even get the channel names via midi, which will be a nice added bonus. Currently using a Teensy, which is a little overkill for all of this. Planning to use an Arduino nano or similar in the final units for a bit if cost saving. Will keep you updated with progress!
  8. I'm hoping somebody considerably cleverer than me can help me wrap my head around the maths needed to calculate a couple of values to send via sysex to my Roland M300 mixer. I'm working on a remote control for my digital mixing desk (Roland M300). It consists of a rotary encoder and a small OLED display. I'm essentially building my own personal monitor mixer, controlling the sends to an aux. The display shows the user a channel number and a numeric level (plus a graphical representation of level using a bar graph). Rotate the encoder to select the desired channel, then click the encoder and then rotate it to change the send level. I've got a working user interface that selects the channel and increments or decrements an int to change the level (currently 0 to 127, but could be anything. Probably don't want to go much higher as it'll be a lot of rotations to turn something fully off) and am successfully sending a sysex with the correct model number, address, checksum etc. My problem comes in calculating the 2 data bytes to be sent from my current int. The midi implementation can be found here; https://static.roland.com/assets/media/pdf/m300_midi_imple_e02.pdf - page 5, 7th field up from bottom right is the value I'm playing with - "channel 1 aux 1 send level". If my ASCII art is anything to go by then it looks something like this; | 04 00 12 02 | 0aaaaaaa | Channel 1 aux send pan | | 04 00 12 03# | 0bbbbbbb | It also comes with the note "less than -905, -905,,,100 = -Inf, -90.5,,,+10.0dB" In other words it's using a range between <-905 and 100 to do a full travel of the control, from off to full. It also gives the following notes on page 25; "A 7-bit byte can express data in the range of 128 steps. For data where greater precision is required, we must use two or more bytes. For example, two hexadecimal numbers aa bbH expression two 7-bit bytes would indicate a value of aa x 128 + bb" and " In the case of values which have a +/- sign, 40H=-64, 00H=0, 3FH=+63, so that the decimal expression would be 64 less than the value given in the above chart. In the case of two types, 40 00H = -8192, 00 00H = 0, 3F 7FH = +8191" I've really tried my best to understand this! I've done lots of searching and reading. I know 2's complement is involved, and I know I have to turn my integer in to a pair of 7 bit bytes, but I'm waving my white flag and admitting I'm really struggling to work this one out. In a bid of desperation I monitored the midi coming out of the desk, while changing these controls. The levels set are very approximate - it's the position of a fader, without any numeric way of checking what value it's at. The first column is the rough fader position, the rest is the sysex as seen on the connected computer. I'll only show the full sysex once, as it's all the same apart from these few key bytes (the first 2 bytes being the value, the 3rd being the checksum, which I'm able to calculate and have working fine); -inf F0 41 0F 00 00 24 12 04 00 12 02 40 00 28 F7 -20 7E 60 0A -5 7F 5E 0B 0 00 11 57 +5 00 3C 2C +10 00 64 04 Can someone cleverer than me help me come up with a way of converting my integer (0-127 or whatever) to give me a full travel of this control, from -inf up to +10, sending the 2 appropriate bytes? I'm well and truly stuck! I'm sending the sysex as an array, so would just be placing the 2 values in to the relevant spots in the array before sending. Thank you so much in advance!
  9. It was all going really well until I realised somebody had an attempt at making a fraudulent purchase on my AliExpress account back in September. Didn't manage to buy anything, but they did succeed in changing my default address to one in Columbia. Stupid me didn't notice and has just ordered the scammer a lovely bunch of IEM amps which are currently on their way to him, with no way of cancelling the order. Ho hum Thankfully I only bought 2 to play with for the time being. Plus a load of cheap in ear headphones.
  10. Thank you everyone for your thoughts. I think I've settled on buying a set of these and modifying them to be externally powered. I have a carbon copy (named brand) version already and there's loads of space inside, so I can blank one of the xlr inputs and replace the other with an ethercon. They have a regulator that'll accept up to 30 odd volts, so I could very safely feed them with 12 or 24V to counter voltage drop. Balanced inputs so less worries about unbalanced runs. I'd still have an extra pair to each unit so I'm even considering building in a simple cue light to each one too! Then in the rack I just need a few of these to split my mixes, plus some ethercon sockets and a power supply. Voila, monitoring setup! My plan would be to split the pit in to 2 or 3 groups and put each group on an aux that could be controlled from an iPad in the pit. Then there's at least a degree of control. I'd make up a few break-in cables so that one or 2 of the amp units could be fed with their own custom mix via 2 xlr's, so I retain the flexibility to do something special for the one off musician who needs something different. Parts currently on the slow boat from China.
  11. Funnily enough I'd just been looking at an MX400 and MA400 combo. If I stuck them both alongside each other then I've got 4 line inputs, a mic input with thru, and a headphone out. £36 per unit. I'd maybe even go as far as to put their innards in a custom enclosure. If I went local power supply then I could get 4 line inputs down the cat5, or do 3 as planned and then pish the 12V up the final pair (which gives local line in for keys etc.). At the rack end I can foresee a panel of RJ45 outs (I don't plan on using ethercon for this, so a standard 16 way patch panel should work) and then a cheap behringer 1/4" jack patchbay or 2 to patch the various inputs to the monitor mixers. The big question is how to do the splitting/buffering. The MX400's are unbalanced inputs which I think I'd get away with at line level in this environment. I'd need to unbalance and then split up to 16 times. I think we're probably beyond the limits of of a passive split here, and this might need to be where a custom pcb came in.
  12. I've got an XR18 to hand, so I can do 6 mixes on smartphones/tablets using Q Mix. One of my options was to stick a few central headphone amps in the rack with it. I could potentially make up some little attenuator boxes that also had a pan control to select between the click channel and the foldback mix, which I send up a stereo 1/4" jack cable. It doesn't allow for a "more me" channel though - the pit have to work with 6 groups of mixes. I could maybe think about doing that locally at the attenuator box, but then I need a line/mic - headphone amplifier, and that then essentially becomes what I've just described above! Having another digital device isn't hugely attractive - I'm already going to be going A-D and back again through my own desk (Roland M480) so another A-D and back is going to see the latencies stacking up. A wholly analogue system is my preferred choice. Roland's REAC protocol is great but it doesn't allow me to easily get to those digital signals and send them to any other device apart from an M-48, which I can't afford! I'm not adverse to PCB design - that's kind of what I had in mind. I'll do some head scratching first though about if I can make it work with central headphone amps and the XR18 (or the Roland itself, though there's no dedicated monitor app, so I'd have to trust somebody with the ipad that had everything on it, which I'd rather not do!
  13. Hi all I have a few jobs coming up where I need to deploy a pretty basic personal monitor mixing system. This will specifically be used in orchestra pits alongside click tracks. Most of the musicians won't be familiar with Aviom/Roland/Behringer/whatever fancy personal monitor mixers, and indeed they are probably way more complicated than we need. I need each musician to be able to mix probably 3 inputs - a general foldback mix (that I'd produce on the desk), a click/shout mic channel, and a "more me" channel. I need to provide this to probably 15 musicians. There's nothing out there that particularly fits the bill, and the budget for the entire project is probably no more than £500. I'm not adverse to electronic design work though, so I've got a bit of a plan. Input and criticisms welcomed! I build a system based on cat5 cable. 4 pairs gives me 3 balanced lines and DC per cable. Centrally I have a rack with 12V power supply and a patchbay in it. This would have some inexpensive rack mount preamps in it (Behringer) and some passive splitters too. The idea being that it's possible to patch signals up each of the 3 cat5 pairs to each musician, and the rack would have utilities like being able to split and amplify mics going to front of house for the "more me"channels. It'd also house a small mixer for the click and shout mic. Each musician would then have a compact mixer, mixing the 3 channels and providing a headphone output. I might also allow for a local line input. There'd simply be level and pan for each signal. I might also include some sort of signal present led's. PCB design and manufacture is straightforward, as is 3d printed enclosure manufacture. So the question is, can you see it working? Any obvious gotchas or hints? I'd toyed with a central rack of headphone amps and then simple local attenuators for each musician, but the ability to mix a few channels is attractive. More work in the design process though. I'd equally toyed with going unbalanced with more available sources, which is easier to build and design, and cable lengths should be relatively short - 10m absolute maximum Anyone done similar?
  14. For those of you who use the Sennheiser HMD-46, I've made a quick video here showing an easy mod to attach larger ear pads to them. Might be or use. Our users certainly find them more comfortable.
  15. Sennheiser HMD-46 user here. Both in theatre and the day job. I maintain a set of 40 of them at work. I know they're pricey, but they're very nice. Removable downlead is great for quick repairs. Mic boom is easily replaceable and you can get most of the spares easily online. As you say they're not cheap, but they're certainly worth the money.
  16. I'd second and third the suggestion of tinkercad. Once you've got your head around grouping objects, making the grouped object in to a hole, and then using the hole to take a shaped chunk out of another object, it's a piece of cake. As easy as microsoft paint! With a bit of practice you're able to create incredibly complex shapes just by grouping items together. All of my recent 3d printing projects have been created in it. This includes a lifesize animatronic panda, a replica firearm (revolver, with very accurate modelling, containing an RF remote to trigger sound effects) and much more. I did my first few prints via 3dhubs just to try it out. Ultimately though with the cost coming down and the quality coming up, you may find a cheap printer becomes a viable option very quickly. I strongly recommend the Anycubic Mega S, which is an incredibly well built machine that comes with a tonne of spares, for around £200 depending on offers etc. Very active Facebook support group too.
  17. I own a lovely Weller temperature controlled iron, and it's a complete waste - it's always turned up to full. I'd always much rather go in fast, get a good joint first time and then let the thing cool. In practice I find this far kinder on adjacent components than going in with an iron at the "correct" temperature and spending longer waiting for it to flow. I'll also agree with others and say that I can't do a decent job with lead free. I've been soldering for 20 years and pride myself on being the one in my department that people come to for soldering jobs, but my lead free soldering still needs a lot of work. Thankfully much of our work is repairing older equipment, so lead is still the go-to.
  18. Caveats before you read on - I was an apprentice, but not in a theatre or events field. I'm an Electronic and Electrical Engineer working in the aviation industry, who happens to also make a bit of money on the side from theatre, but has spent an awful lot of time in them working alongside full time crew. I've also had a number of young people who I've taught and given opportunities to help over the years -all of whom have gone on to train professionally and enter careers in theatre. I have always flown the apprenticeships flag, and will continue to do so. I would however say that the biggest decision you need to make is about the employer you work with, not the college or course (they're still important though). Sadly recent incentives for companies to employ apprentices seem to have increased the number of apprenticeships out there which have no real end goal. No place in the company for you to graduate in to a full time role. No real will to train somebody to be the best they can be. It's a cheap pair of hands for a few years and then once they've qualified and deserve a better salary and longer term position it's goodbye. Suddenly that apprentice is now competing with the graduates who are finishing uni. The only difference is no debt but also a lesser (on paper) qualification. Next step depends on if their subsequent employer values the practical work experience over the degree. I would, but others may not. The value of an apprenticeship is in the people you work with and the employer you grow up with. If you can find an employer who are wanting you to fill a vacancy once you're done then that's perfect. The employees you work with will become your colleagues and they will want to ensure you're moulded in to the person they need you to be - in qualifications and in personality. They will show you useful tricks and hints. They will guide you through mistakes and hopefully help you not to make them again. The advice I and a number of friends working professionally in theatre have given a few people in your position - do an apprenticeship, but don't do it in theatre. Become an electrician, or an engineer. Gain skills that are 100% useful in theatre but are also in demand in the rest of the world. If theatre work dries up for a while, take on some house rewires or join an agency doing electrical work. Now put yourself in the shoes of a theatre employer looking at a list of applicants. An electrician with specialisms in site power, or industrial electrical installation, or HV, or something else that makes them different - that's an attractive person to have on your team. In my year group at college, nobody failed the course. Everyone walked away with apprenticeships. That doesn't mean we were all good, it meant the college wanted us all to pass. Employers know that. A sea of applicants from technical theatre apprenticeships who may have been excellent or may have just turned up, versus a qualified electrician or engineer who shows they can cut it in a workplace and has very handy skills. That's the call they'll have to make.
  19. Thank You everybody. Lots of leads to follow up there. I have another option I've discovered to follow up too - an ip relay board that'll do 24 outputs and hosts a web page with clickable buttons to activate - that'd give an on screen set of controls on their pc. I can then deal with the mic audio separately, and use one of the buttons for push to talk. I'm experimenting later today with if I can get line level balanced audio successfully over the distance - if so then we have some telephone cabling between the buildings that might suffice. I know the signal SHOULD travel that far. All just depends on noise now. Chris
  20. Ok, QSYS might still be a contender then. It seems a pretty straightforward scenario - one audio output, 8 or so toggling relay outputs for zones, and message playback. This building may not be standing in 2 years time, so anything spent is very short term. We have zero income due to Covid, but need to move this thing quickly - hence the need for a quick ish and cheap solution. I've been musing about this today and I have an alternative solution that may just do the job. It isn't pretty, but it's cheap and interfaces with that we have already. Essentially I need to activate a number of relays remotely - some to do zoning, some to play back messages (closing contacts on the message manager). I then need a mic input to the system with a push to talk. The audio could be a pair of relatively cheap Dante or similar boxes, just streaming audio to each other. Essentially I want mic in at one end, line out at the other. Network inbetween. Everything else could be as simple as a pair of Arduino's with switches in to one and relays out of the other. It's as simple as that.
  21. Hi All At the day job we have a 100V tannoy system. Multiple amplifiers feeding multiple zones (at least 10). The system is all analogue. We have a desk mic with PTT and then multiple zone enable toggle switches (so the user can select which zones they want to address). We also have multiple push buttons to play pre recorded messages in to those zones (from a Plena Message Manager). It's my understanding that the mic and message manager audio are combined and distributed to all the amplifiers, then the relevant amplifiers are enabled using the toggle switches. We've had a request to move this mic to the other side of the building (actually a different building entirely). I think this is going to prohibit retaining the analogue cabling and simply extending it - it's a fair way. I'm therefore on the hunt for an ip based system that will do the above. The ideal setup would have a desk mic with zone select switches and message playback switches. At the rack end we'd have a box with an audio output and relay contacts. I'm aware of the TOA IP-3000 series, which does most of what I want, but I'd have to handle the pre recorded message playback separately. I'd prefer a single box, or something Dante esque where I could at least stream the recorded messages to the box from a PC or other device. What's out there? Either that'll achieve some or all of what I need. Google Fu isn't bringing me much joy, but I don't really know what to search for! Edit - I'm also aware of QSC Q-SYS. It's attractive but I think the budget is going to prevent involving somebody who can configure it. We have links with a firm who could supply this, but I've wasted their time an awful lot with projects involving this system that never happened - I don't want to do that to them again until I have a bit more info and understand the budget. If there's a "buy this box and set it up yourself" solution then it might be more likely to get budgetary approval just at the minute.
  22. Not a solution to this problem, but maybe a project for me to play with sometime; I wonder if a pneumatic ram arrangement could deliver a nice blast of air, isolated from the compressor air. You could have a small diameter piston in a cylinder. This would be connected to the compressor via a trigger, and would drive forward a large diameter piston in another cylinder, which would exhaust through a pipe to a hand held Lance. Squeeze the trigger and high pressure compressor air drives the small ram quickly along its cylinder. This small piston drives the big piston which forces a large volume of lower pressure air (which could have been filtered on entry via a one way valve and filter) out of its cylinder and out of the Lance. Hey presto you get a nice blast of clean air that hasn't been through a compressor.
  23. And I breathe a sigh of relief knowing that you're sorting the place out! Now we just need £100k to reinstate the theatre safely!
  24. Thank you everyone for your replies, sorry it's taken a while to get back to you. The start of the resource page went live on Friday, and can be seen here https://www.guiseleytheatre.org/learninghub My sound design one is on there, but no lighting one as yet. It's more filming logistics than anything else at the minute. If there's a reasonable uptake then we'll be asking someone far more qualified than me to do an intro, and ask them to introduce a challenge based on some of the ideas above. We're going to ask them to share a photo of a toy, lit in a dramatic way. Might be an action figure, or a doll or teddy. They will have to tell us what effect they were hoping to achieve. We'll have introduced the use of shadow, of light source position, and of colour. We're hoping that keeping the brief as loose as that will allow everyone to have a go. It's more about getting them thinking and engaging than necessarily what they produce. To be completely honest, one of the main reasons is because they desperately need donations, so need community engagement. Electrics are unsafe and all stage rigging has been removed for similar reasons. Very little funding out there for projects like this at the minute (they don't meet the requirements of cultural recovery fund or anything like that). Thanks for all your suggestions.
  25. Hi all I work a lot with a local community arts group. They run pay-what-you-can drama classes, craft groups for the elderly, community choirs etc. Lovely people, amazing passion for the arts and our local community. They are obviously struggling at the minute with running any of the above. They've done loads in terms of online content, and over Christmas did a few walking trails around the town with an audio book to follow as you went, essentially creating a piece of theatre. They are now wanting to create an online resource covering different facets of theatre and encouraging children to have a go at some sort of project or challenge at home, then send in their results. There might be one on mime, or scriptwriting, or putting together a costume etc. They have asked me to come up with one for sound design and lighting design. There will be a 2 minute introduction video posted on their website with some basic insight, then a challenge and whatever downloadable resources might be needed for said challenge. We are assuming some sort of access to a smartphone to record their work, plus internet access. Aside from that the materials need to be stuff they can find around the home. The community they work with is incredibly varied - some kids will have every luxury under the sun. For some the smartphone and internet access is already a stretch. We're assuming age range 6 to 10 years old. I've got the sound design one sorted. We're going to give them a scene, sans sound effects, and ask them to embellish it using the sounds from things they found around the home (radio play style). Lighting design is more difficult. I'd wondered about giving them character puppets to cut out and colour in, then light a freeze frame from a scene using torches etc. but it will be a bit unfair on the kids who don't have access to things like coloured light. I still want to make it exciting and practical if I can. Colouring or drawing could form a part of it. I think "download this visualiser and plot this scene" is asking a little much. Has anybody got any ideas at all? I'm stumped!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.