Felix Hummel (born 7 August 1986 in Erlangen) is a German IT entrepreneur, author and influencer. His work is focussed on Marketing & Web Video. Since 2013, Hummel has published several worldwide viral videos through his YouTube channel “CopyCatChannel” and the YouTube Original Channel “Onkel Berni’s Welt”. Hummel published a book showcasing a selection of successful Facebook posts with publisher Wilhelm Heyne Verlag, a subsidiary of Penguin Random House. Hummel is considered a
Digitalization Expert.
Life
Hummel earned his A-level diploma (“Abitur”) from the Steigerwald-Landschulheim school in Wiesentheid/Bavaria. From 2009 to 2011, he studied Digital Film & Animation at the SAE Institute Munich. In 2016, Hummel launched his first company, BuzzBird, focussing on Influencer Marketing. His father was the German chemist and university professor Hans-Ulrich Hummel. Hummel lives and works in Berlin.
YouTube career
In November 2012, Hummel produced the YouTube Original Channel “Onkel Berni’s Welt” in collaboration with Munich-based TV production company First Entertainment GmbH and Berlin-based band Onkel Berni. The channel was inspired by US American Late-night talkshows and created several viral videos, including a music rap video parody on famous German rappers Shindy & Bushido: “Stress ohne Grund”, being covered by media outlets such as Germany’s best-selling tabloid Bild.
Hummel also produced the viral video “Streetmusician sings - Original singer comes along and joins him“ in collaboration with Jimmy Somerville from Bronski Beat.
In June 2013, Hummel launched a YouTube channel named “CopyCatChannel”, gaining worldwide recognition with the viral video series called “How German Sounds Compared To Other Languages” with more than 100 million views.
BuzzBird
Together with his co-founders Andreas Türck and Klaus Breyer, Felix built his first business in 2016: BuzzBird GmbH, serving as its CEO. This agency-type company focusses on building software solutions and services in the area of Influencer Marketing. In November 2017, mass media company ProSiebenSat.1 Media bought a 42 percent stake in BuzzBird.
Digitalization Expert.
Life
Hummel earned his A-level diploma (“Abitur”) from the Steigerwald-Landschulheim school in Wiesentheid/Bavaria. From 2009 to 2011, he studied Digital Film & Animation at the SAE Institute Munich. In 2016, Hummel launched his first company, BuzzBird, focussing on Influencer Marketing. His father was the German chemist and university professor Hans-Ulrich Hummel. Hummel lives and works in Berlin.
YouTube career
In November 2012, Hummel produced the YouTube Original Channel “Onkel Berni’s Welt” in collaboration with Munich-based TV production company First Entertainment GmbH and Berlin-based band Onkel Berni. The channel was inspired by US American Late-night talkshows and created several viral videos, including a music rap video parody on famous German rappers Shindy & Bushido: “Stress ohne Grund”, being covered by media outlets such as Germany’s best-selling tabloid Bild.
Hummel also produced the viral video “Streetmusician sings - Original singer comes along and joins him“ in collaboration with Jimmy Somerville from Bronski Beat.
In June 2013, Hummel launched a YouTube channel named “CopyCatChannel”, gaining worldwide recognition with the viral video series called “How German Sounds Compared To Other Languages” with more than 100 million views.
BuzzBird
Together with his co-founders Andreas Türck and Klaus Breyer, Felix built his first business in 2016: BuzzBird GmbH, serving as its CEO. This agency-type company focusses on building software solutions and services in the area of Influencer Marketing. In November 2017, mass media company ProSiebenSat.1 Media bought a 42 percent stake in BuzzBird.
A Variable cycle three-stroke engine is a type of internal combustion engine, patented by Michael A. V. Ward, US patent 5454352 dated Oct 3, 1995. Although the engine runs on the four-stroke cycle, the cycle is completed in one revolution of the crankshaft, as in the Atkinson cycle engine. However, this is achieved by the use of an elliptical cam instead of the jointed linkage used in the Atkinson engine.The three stroke engine does not exist in reality but according to the patent this cycle can be termed as 3 stroke. In reality it is a 2 stroke engine. The term "three-stroke" indicates that, to quote from the patent, "total cycle displacement (of) the engine equals approximately three expansion ratios".
Thermal engine wherein the firing of gases is provided by controlled ignition, by compression up to the self ignition temperature, by compression under controlled pressure comprising a head-cylinder, a cylinder and a crankcase of the same type as the two stroke engine
Overview
The aim of the invention is to improve the emissions characteristics and efficiency of the internal combustion engine by reducing throttling and pumping losses. The patent states: "Other methods of reducing pumping loss rely on variable valve timing, as in the Miller cycle...these are only partially successful because they still employ a full intake and compression stroke with the accompanying mechanical frictional losses". In the engine proposed by Ward, the intake stroke is physically shorter than the expansion stroke.
Summary of the patent
The abstract reads: "A virtual three-stroke engine with intake and compression strokes approximately one half of the power stroke of approximately 12 to one expansion ratio and with total firing cycle stroke lengths equal to approximately three expansion strokes to minimize engine throttling and frictional losses over the real world drive cycle and provide high torque from a one-to-one drive shaft RPM to engine firing cycle RPM provided by a cam type driver for controlling the piston motions and extracting the power from the piston".
Thermal engine wherein the firing of gases is provided by controlled ignition, by compression up to the self ignition temperature, by compression under controlled pressure comprising a head-cylinder, a cylinder and a crankcase of the same type as the two stroke engine
Overview
The aim of the invention is to improve the emissions characteristics and efficiency of the internal combustion engine by reducing throttling and pumping losses. The patent states: "Other methods of reducing pumping loss rely on variable valve timing, as in the Miller cycle...these are only partially successful because they still employ a full intake and compression stroke with the accompanying mechanical frictional losses". In the engine proposed by Ward, the intake stroke is physically shorter than the expansion stroke.
Summary of the patent
The abstract reads: "A virtual three-stroke engine with intake and compression strokes approximately one half of the power stroke of approximately 12 to one expansion ratio and with total firing cycle stroke lengths equal to approximately three expansion strokes to minimize engine throttling and frictional losses over the real world drive cycle and provide high torque from a one-to-one drive shaft RPM to engine firing cycle RPM provided by a cam type driver for controlling the piston motions and extracting the power from the piston".
The ADSR Online Midi Editor and Player is a complete online MIDI editor and player that was created in 2017 by MidiPro.org. The program requires no downloading, since it runs in the Google Chrome, Firefox, and Microsoft Edge browsers.
Features
*An unlimited number of Tracks can be created.
*Notes are added by clicking keys on a virtual synth keyboard.
*View and edit the exact Pitch, Velocity, and Duration of every Midi Event.
*Each track may contain two types of ADSR Envelopes (Amplitude and Low-pass Filter), and an LFO Modulator..
*Delete, Transpose, Insert Blank Space, Change Durations, or Change Velocities for notes in any selected time range.
*Select the Start and End of a Range of notes, and click Copy Range to copy those notes to the same Track, or to any other Track.
*The Midi Player lets you start playing at any position in the song, and Solo and Mute any Tracks. The event list will scroll to show the next event that will be played.
*The Midi Editor lets your sound card or synth play 48 Microtones per octave, each separated by 1/8 step.
*After you create a new Midi File, or edit an existing Midi File, you may Download the Midi File to your computer.
*To match the Tempo of any Drum Sample, you may Split or Double the Tempo without altering the pitch. For example, if your Midi File is 240 bps, splitting the Tempo will cause all Durations to be split in half, so the Tempo will become 120 bps.
Compatibility
This online program uses the WebMidi API and Web Audio API, which are now compatible with the Google Chrome, Firefox, and Microsoft Edge browsers.
Microtonality
'Normal' music contains 12 chromatic tones in each octave, and each tone is separated by 1/2 step. MidiPro.org allows your sound card or synth to play 48 Microtones per octave, each separated by 1/8 step. You don't have to create custom scales (which can't be transposed), or make any other modifications to your synth. Click the button on any Track, and add plus signs to raise a pitch by 1/8 steps. For example, G++ is 1/4 step higher than G. The three possible microtones for each note (+, ++, and +++) are sent to three separate midi channels that are raised in pitch by 1/8, 1/4, and 3/8 steps.
ADSR Envelopes
Each track may contain separate ADSR Envelopes for Amplitude, and for Low-pass Filters. Each track has eight controls which determine the shape of the overall volume and tone of each note.
LFO Modulation
If the Waveform is set to sine, LFO Modulation will produce a vibrato effect. A ring modulation effect can be achieved by setting the LFO Frequency to above 20.
Features
*An unlimited number of Tracks can be created.
*Notes are added by clicking keys on a virtual synth keyboard.
*View and edit the exact Pitch, Velocity, and Duration of every Midi Event.
*Each track may contain two types of ADSR Envelopes (Amplitude and Low-pass Filter), and an LFO Modulator..
*Delete, Transpose, Insert Blank Space, Change Durations, or Change Velocities for notes in any selected time range.
*Select the Start and End of a Range of notes, and click Copy Range to copy those notes to the same Track, or to any other Track.
*The Midi Player lets you start playing at any position in the song, and Solo and Mute any Tracks. The event list will scroll to show the next event that will be played.
*The Midi Editor lets your sound card or synth play 48 Microtones per octave, each separated by 1/8 step.
*After you create a new Midi File, or edit an existing Midi File, you may Download the Midi File to your computer.
*To match the Tempo of any Drum Sample, you may Split or Double the Tempo without altering the pitch. For example, if your Midi File is 240 bps, splitting the Tempo will cause all Durations to be split in half, so the Tempo will become 120 bps.
Compatibility
This online program uses the WebMidi API and Web Audio API, which are now compatible with the Google Chrome, Firefox, and Microsoft Edge browsers.
Microtonality
'Normal' music contains 12 chromatic tones in each octave, and each tone is separated by 1/2 step. MidiPro.org allows your sound card or synth to play 48 Microtones per octave, each separated by 1/8 step. You don't have to create custom scales (which can't be transposed), or make any other modifications to your synth. Click the button on any Track, and add plus signs to raise a pitch by 1/8 steps. For example, G++ is 1/4 step higher than G. The three possible microtones for each note (+, ++, and +++) are sent to three separate midi channels that are raised in pitch by 1/8, 1/4, and 3/8 steps.
ADSR Envelopes
Each track may contain separate ADSR Envelopes for Amplitude, and for Low-pass Filters. Each track has eight controls which determine the shape of the overall volume and tone of each note.
LFO Modulation
If the Waveform is set to sine, LFO Modulation will produce a vibrato effect. A ring modulation effect can be achieved by setting the LFO Frequency to above 20.
CookXml is a unique XML data binding engine in Java. It is capable of mapping XML documents of desired format directly onto the corresponding object-oriented classes, essentially treating XML as a programming language rather than merely a data storage format. Therefore, it is ideal to use CookXml to write any programs that interpret XML. The tag library of CookXml is constructed dynamically at run time, and thus allows dynamic XML schema. The current implementation has unmarshalling part done.
CookXml is free software, distributed under a permissive, X11 style, licence.
Unmarshalling
CookXml offers the ability to directly map XML documents onto existing classes by breaking down the process into three general steps. Then use a set of delegates, together forming a tag library, to handle actions performed at these steps.
# Object creation. Each element tag corresponds to an object instance. The action to create the object instance corresponds to a creator in CookXml.
# Property setting. Each attribute of the XML element corresponds to setting a property of the object instance. This property can be handled by a setter in CookXml. For languages that offer reflection, such as Java and , such property setting can be automatically detected using reflection. In these cases, to match the string attribute value to the target property class type, a converter is necessary.
# Add action. When CookXml obtains an object corresponding to an element tag, it is "added" to the parent object corresponding to the parent element tag. The specific add action is handled by an adder in CookXml.
Except for CDATA nodes, the three above types of actions can handle all elements in an XML document. CDATA in general can be handled either in the creator function or the adder function.
Creators, setters, adders, and converters together form a tag library which is used by the CookXml engine to perform the XML data binding.
Dynamic Tag Library Construction
Because the CookXml tag library uses delegates, its tag library needs to be dynamically constructed. This feature is both good and bad. It is bad because there will be a slight initiation cost when the tag library is constructed, and its integrity may not be verified until runtime. It is good because it allows developers to easily extend an existing tag library at runtime.
Preorder and Postorder Addition
Like any trees that can be traversed in preorder and postorder, the object corresponding to an XML element can be added to the parent object in preorder or postorder. In the preorder addition, the object is added to the parent before descendant XML elements get processed. In the postorder addition, the object is added to the parent after descendant XML elements get processed.
XML Tag Inheritance
One discovery made while writing CookXml was that class inheritance of Object-oriented languages can be mirrored into XML element tag inheritance. Semantically, tag inheritance means that the derived tag will inherit the setters and adders of the inherited tags.
For example, javax.swing.JMenu is a child class of javax.swing.JMenuItem. Assuming that javax.swing.JMenu is mapped to <menu> tag and javax.swing.JMenuItem is mapped to <menuitem> tag, then we can declare in CookXml that <menu> tag inherits <menuitem> tag. <menu> tag then inherits the setters for attributes such as "text" and "icon" of the <menuitem> tag.
Polymorphism of OOP can be mirrored in XML tag inheritance as well. Class casting is similar to dynamically renaming the current namespace and the tag of the element being processed.
XML tag inheritance is a methodology not present in any other XML data binding tools. This feature is immensely useful in mapping XML documents to classes with a deep inheritance hierarchy, typically found in GUI API. Thus CookXml is useful in writing XUL motors. CookSwing and CookSwt are two such examples for mapping XML documents to Swing and SWT classes.
Namespace Handling
Since version 3.0, CookXml is capable of dealing with XML documents with multiple namespaces. For backward compatibility, CookXml also parse XML documents without namespaces or partially utilizing namespaces.
Other Implementation Details
As of version 3.0, CookXml operates on top of the XML DOM tree to map an XML document to objects. This feature allows developers to utilize XML schema if such exists to verify the incoming XML documents. On the other hand, the memory consumption for a large XML document can be problematic.
Schema and Documentation Generation
Since a tag library for CookXml contains all the mappings between an XML element and its corresponding object classes, it is entirely possible to use this map to generate documentations from this feature. The documentation output can be HTML documents, or XML Schemas.
CookXmlDoc, a doclet API for CookXml can extract Javadoc tags and comments from the tag library source code. The resulting information can in turn be used by an HTML doclet to generate the appropriate tag documentation. See CookSwing Tag Documentation for an example.
Future Work
Streaming is a key feature that is under consideration. Such capability would reduce the memory consumption due to the construction of the DOM tree as well as improving the overall performance.
CookXml is free software, distributed under a permissive, X11 style, licence.
Unmarshalling
CookXml offers the ability to directly map XML documents onto existing classes by breaking down the process into three general steps. Then use a set of delegates, together forming a tag library, to handle actions performed at these steps.
# Object creation. Each element tag corresponds to an object instance. The action to create the object instance corresponds to a creator in CookXml.
# Property setting. Each attribute of the XML element corresponds to setting a property of the object instance. This property can be handled by a setter in CookXml. For languages that offer reflection, such as Java and , such property setting can be automatically detected using reflection. In these cases, to match the string attribute value to the target property class type, a converter is necessary.
# Add action. When CookXml obtains an object corresponding to an element tag, it is "added" to the parent object corresponding to the parent element tag. The specific add action is handled by an adder in CookXml.
Except for CDATA nodes, the three above types of actions can handle all elements in an XML document. CDATA in general can be handled either in the creator function or the adder function.
Creators, setters, adders, and converters together form a tag library which is used by the CookXml engine to perform the XML data binding.
Dynamic Tag Library Construction
Because the CookXml tag library uses delegates, its tag library needs to be dynamically constructed. This feature is both good and bad. It is bad because there will be a slight initiation cost when the tag library is constructed, and its integrity may not be verified until runtime. It is good because it allows developers to easily extend an existing tag library at runtime.
Preorder and Postorder Addition
Like any trees that can be traversed in preorder and postorder, the object corresponding to an XML element can be added to the parent object in preorder or postorder. In the preorder addition, the object is added to the parent before descendant XML elements get processed. In the postorder addition, the object is added to the parent after descendant XML elements get processed.
XML Tag Inheritance
One discovery made while writing CookXml was that class inheritance of Object-oriented languages can be mirrored into XML element tag inheritance. Semantically, tag inheritance means that the derived tag will inherit the setters and adders of the inherited tags.
For example, javax.swing.JMenu is a child class of javax.swing.JMenuItem. Assuming that javax.swing.JMenu is mapped to <menu> tag and javax.swing.JMenuItem is mapped to <menuitem> tag, then we can declare in CookXml that <menu> tag inherits <menuitem> tag. <menu> tag then inherits the setters for attributes such as "text" and "icon" of the <menuitem> tag.
Polymorphism of OOP can be mirrored in XML tag inheritance as well. Class casting is similar to dynamically renaming the current namespace and the tag of the element being processed.
XML tag inheritance is a methodology not present in any other XML data binding tools. This feature is immensely useful in mapping XML documents to classes with a deep inheritance hierarchy, typically found in GUI API. Thus CookXml is useful in writing XUL motors. CookSwing and CookSwt are two such examples for mapping XML documents to Swing and SWT classes.
Namespace Handling
Since version 3.0, CookXml is capable of dealing with XML documents with multiple namespaces. For backward compatibility, CookXml also parse XML documents without namespaces or partially utilizing namespaces.
Other Implementation Details
As of version 3.0, CookXml operates on top of the XML DOM tree to map an XML document to objects. This feature allows developers to utilize XML schema if such exists to verify the incoming XML documents. On the other hand, the memory consumption for a large XML document can be problematic.
Schema and Documentation Generation
Since a tag library for CookXml contains all the mappings between an XML element and its corresponding object classes, it is entirely possible to use this map to generate documentations from this feature. The documentation output can be HTML documents, or XML Schemas.
CookXmlDoc, a doclet API for CookXml can extract Javadoc tags and comments from the tag library source code. The resulting information can in turn be used by an HTML doclet to generate the appropriate tag documentation. See CookSwing Tag Documentation for an example.
Future Work
Streaming is a key feature that is under consideration. Such capability would reduce the memory consumption due to the construction of the DOM tree as well as improving the overall performance.