Welcome
Username or Email:

Password:


Missing Code




[ ]
[ ]
Online
  • Guests: 14
  • Members: 0
  • Newest Member: omjtest
  • Most ever online: 396
    Guests: 396, Members: 0 on 12 Jan : 12:51
Members Birthdays:
One birthday today, congrats!
Vaxian (17)


Next birthdays
05/21 Dalus (34)
05/21 Kizmo (37)
05/22 Skynet (32)
Contact
If you need assistance, please send an email to forum at 4hv dot org. To ensure your email is not marked as spam, please include the phrase "4hv help" in the subject line. You can also find assistance via IRC, at irc.shadowworld.net, room #hvcomm.
Support 4hv.org!
Donate:
4hv.org is hosted on a dedicated server. Unfortunately, this server costs and we rely on the help of site members to keep 4hv.org running. Please consider donating. We will place your name on the thanks list and you'll be helping to keep 4hv.org alive and free for everyone. Members whose names appear in red bold have donated recently. Green bold denotes those who have recently donated to keep the server carbon neutral.


Special Thanks To:
  • Aaron Holmes
  • Aaron Wheeler
  • Adam Horden
  • Alan Scrimgeour
  • Andre
  • Andrew Haynes
  • Anonymous000
  • asabase
  • Austin Weil
  • barney
  • Barry
  • Bert Hickman
  • Bill Kukowski
  • Blitzorn
  • Brandon Paradelas
  • Bruce Bowling
  • BubeeMike
  • Byong Park
  • Cesiumsponge
  • Chris F.
  • Chris Hooper
  • Corey Worthington
  • Derek Woodroffe
  • Dalus
  • Dan Strother
  • Daniel Davis
  • Daniel Uhrenholt
  • datasheetarchive
  • Dave Billington
  • Dave Marshall
  • David F.
  • Dennis Rogers
  • drelectrix
  • Dr. John Gudenas
  • Dr. Spark
  • E.TexasTesla
  • eastvoltresearch
  • Eirik Taylor
  • Erik Dyakov
  • Erlend^SE
  • Finn Hammer
  • Firebug24k
  • GalliumMan
  • Gary Peterson
  • George Slade
  • GhostNull
  • Gordon Mcknight
  • Graham Armitage
  • Grant
  • GreySoul
  • Henry H
  • IamSmooth
  • In memory of Leo Powning
  • Jacob Cash
  • James Howells
  • James Pawson
  • Jeff Greenfield
  • Jeff Thomas
  • Jesse Frost
  • Jim Mitchell
  • jlr134
  • Joe Mastroianni
  • John Forcina
  • John Oberg
  • John Willcutt
  • Jon Newcomb
  • klugesmith
  • Leslie Wright
  • Lutz Hoffman
  • Mads Barnkob
  • Martin King
  • Mats Karlsson
  • Matt Gibson
  • Matthew Guidry
  • mbd
  • Michael D'Angelo
  • Mikkel
  • mileswaldron
  • mister_rf
  • Neil Foster
  • Nick de Smith
  • Nick Soroka
  • nicklenorp
  • Nik
  • Norman Stanley
  • Patrick Coleman
  • Paul Brodie
  • Paul Jordan
  • Paul Montgomery
  • Ped
  • Peter Krogen
  • Peter Terren
  • PhilGood
  • Richard Feldman
  • Robert Bush
  • Royce Bailey
  • Scott Fusare
  • Scott Newman
  • smiffy
  • Stella
  • Steven Busic
  • Steve Conner
  • Steve Jones
  • Steve Ward
  • Sulaiman
  • Thomas Coyle
  • Thomas A. Wallace
  • Thomas W
  • Timo
  • Torch
  • Ulf Jonsson
  • vasil
  • Vaxian
  • vladi mazzilli
  • wastehl
  • Weston
  • William Kim
  • William N.
  • William Stehl
  • Wesley Venis
The aforementioned have contributed financially to the continuing triumph of 4hv.org. They are deserving of my most heartfelt thanks.
Forums
4hv.org :: Forums :: Tesla Coils
« Previous topic | Next topic »   

Non-MIDI / Non-Micro Controller DRSSTC Polyphonic Audio Interrupter

Move Thread LAN_403
zzz_julian_zzz
Thu Mar 10 2016, 07:16AM Print
zzz_julian_zzz Registered Member #3964 Joined: Thu Jun 23 2011, 03:23AM
Location: Valenzuela City
Posts: 332
Hi Guys,

Just wondering if you have some thoughts on a DRSSTC Pholyphonic audio modulating project.

Grounds:
-Not using MCU
-Not MIDI based audio input

I already tried doing this by just using OPAMP, 555 timers, logic gates and flip-flop (to create a certain OFF-time period after the ON-time pulse) thus limiting the Max PRF (<500 hz) and duty cycle (~5%)

The result is an automatic octave shifting Audio Interrupter, I tried using it on my non-midi based keyboard and guitar (not bass)
It is working great - polyphonic ~ 2 notes at a time. Though I am not very convinced on the quality when playing a whole chord (> = 3 notes )

I still admire the ones on a polyphonic MIdi Audio Interrupter Structure though I don't know what is happening there during poly notes at a time, does it limits PW when on Poly?

Can someone give an idea or even draw a draft waveform of the pulse during a POLY notes.. I want to convert it on a more conventional way even though I am hearing that this is not a good path to run to.. Still I want to try..

I will try to post my the vid later.. Thanks in advance!


Julian :)






Back to top
loneoceans
Thu Mar 10 2016, 09:10PM
loneoceans Registered Member #4098 Joined: Fri Sept 16 2011, 09:26PM
Location:
Posts: 236
zzz_julian_zzz wrote ...

Hi Guys,

Just wondering if you have some thoughts on a DRSSTC Pholyphonic audio modulating project.

Grounds:
-Not using MCU
-Not MIDI based audio input

I already tried doing this by just using OPAMP, 555 timers, logic gates and flip-flop (to create a certain OFF-time period after the ON-time pulse) thus limiting the Max PRF (<500 hz) and duty cycle (~5%)

The result is an automatic octave shifting Audio Interrupter, I tried using it on my non-midi based keyboard and guitar (not bass)
It is working great - polyphonic ~ 2 notes at a time. Though I am not very convinced on the quality when playing a whole chord (> = 3 notes )

I still admire the ones on a polyphonic MIdi Audio Interrupter Structure though I don't know what is happening there during poly notes at a time, does it limits PW when on Poly?

Can someone give an idea or even draw a draft waveform of the pulse during a POLY notes.. I want to convert it on a more conventional way even though I am hearing that this is not a good path to run to.. Still I want to try..

I will try to post my the vid later.. Thanks in advance!


Julian :)


Hello Julian,

I made a musical controller like what you described in the past as well, probably a similar implementation, with polyphony too. However, the results were not quite as clean as I would like and required a good stereo/audio input signal, and also conditioned properly (e.g. it played MIDI files via stereo just fine, but only on certain instruments which had a clear fundamental freq). I didn't see any additional cost-benefit ratio in adding extra filters etc. As a result I've since switched to a digital MIDI input since they are far more general purpose, essentially 100% clean, and turned out to be about the same amount of development work.

MIDI input also allowed a lot of additional features in the controller which was a lot more work to implement otherwise, so I shifted to using a microcontroller. The total cost also turns out to be less, along with less board space required.

For polyphony, I thought about a few methods to 'overlay' the pulse trains on top of each other, though with the caveat that constraints on pulse-width and duty cycle need to be adhered, Usually, when two notes are played, the overall duty cycle is sufficiently low such that the ‘pulse trains’ do not overlap. The problem is when they do, or when polytone is >2.

There are a few abstractions that can be done, e.g. a note creates a pulse width followed immediately by some sort of delay usually equal to the pulse of the note or the maximum pulse allowed. This caps the instantaneous duty cycle at 50% max. Pulse collision then can be decided based on some rules (e.g. direct collision = choose lower note or higher note):

1. Drop the note – if a second note plays when one is playing, the second one is dropped for that pulse.

2. Random shift – if a second note plays when one is playing, the second note is randomly shifted by a small amount, similar to packet avoidance in digital communications.

3. Counter delay – if a second note plays when one is playing, the second note is given a hold for a fixed delay after the first note ends, before playing the second note pulse

4. Counter priority - Each note is assigned a counter. If a second note plays when one is playing, the second pulse only begin after the hold-off period of the first note, but the counter that triggered the second note is allowed to run (vs 3 where the counter is paused). This is what I implement in my controllers.

5. Note Combination - if a second note plays when one is playing, the second pulse is ORed together but capped to some max pulse width. This can however lead to erratic spark formation, though was the simple method I used for my analog controller - simply OR the outputs from the channels and send it into a max pulse-width block limiter after.

6. Do nothing - For a regular SSTC, this may not be such a bad thing especially if the coil can run continuously

A few other abstractions also apply, such as by limiting a overall max duty cycle and pulsewidth in software which is very straightforward to implement in a microcontroller.

Obviously once the duty cycle gets up to a certain point, the notes will start to sound mashed up. I know a fried who did some basic audio simulations with various methods of polytone handling including the above mentioned, and in general, they really don't make a big deal in terms of sound quality, except for notes which might be close together or harmonics, which perhaps isn't frequently encountered in interesting sounding music pieces.

[Edit]

I didn't have a youtube account at that time but I found a video of probably my first iteration of the analog controller (single tone though) via stereo input from my computer, with my first SSTC: Link2
Back to top
zzz_julian_zzz
Fri Mar 11 2016, 07:32AM
zzz_julian_zzz Registered Member #3964 Joined: Thu Jun 23 2011, 03:23AM
Location: Valenzuela City
Posts: 332
Hi Guangyan,

Thanks for the great reply! Learn lots to this post!

But I was a bit puzzled on your point 4. Do you mean you have 4 counters? and does these counters hold certain period of time?

Back to top
loneoceans
Fri Mar 11 2016, 07:57PM
loneoceans Registered Member #4098 Joined: Fri Sept 16 2011, 09:26PM
Location:
Posts: 236
zzz_julian_zzz wrote ...

Hi Guangyan,

Thanks for the great reply! Learn lots to this post!

But I was a bit puzzled on your point 4. Do you mean you have 4 counters? and does these counters hold certain period of time?



When I refer to counter I mean in how someone might implement it in a microcontroller when the counter counts up, and generates a note when it rolls over or similar. In this way, each note playing will require one counter configured to generate the correct pulse train. So each note requires one counter. In Counter delay, the counter is paused until the pulse from note 1 completes (with some fixed hold-off to prevent PW for exceeding too much) before starting (the counter) again. This is opposite to what happens in Counter priority, where the counter is allowed to continue to run, and each note is given some priority (maybe higher = higher priority or something) and the note plays thereafter, and you don't get a small shift associated with each collision in Counter delay. As with all methods, there are end-cases (PW > some number or note freq > some freq) which need to be adhered to to avoid odd behavior.

In practice, I think most of these methods work fine and don't really sound bad in the whole scheme of things with usual varying music. I think the concern I had when starting with a microcontroller interrupter was that it was a very daunting task, but in the end it turned out to not be too much work, especially with a lot of good midi libraries you can get for different controller platforms these days which allow you to just focus on pulse generation and not worry about the MIDI handling. However, I hope I didn't discourage you to work on the analog interrupter, since I think that could be a nice controller as well, especially for a SSTC, and certainly more general purpose. :)


Back to top

Moderator(s): Chris Russell, Noelle, Alex, Tesladownunder, Dave Marshall, Dave Billington, Bjørn, Steve Conner, Wolfram, Kizmo, Mads Barnkob

Go to:

Powered by e107 Forum System
 
Legal Information
This site is powered by e107, which is released under the GNU GPL License. All work on this site, except where otherwise noted, is licensed under a Creative Commons Attribution-ShareAlike 2.5 License. By submitting any information to this site, you agree that anything submitted will be so licensed. Please read our Disclaimer and Policies page for information on your rights and responsibilities regarding this site.